4
 Followers
34
 Likes

Forge - Separate the "Component" from the "Demo"

Community Forge
On our radar

The Demos in Forge projects take up a TON of SUs/AOs. But if you delete the demos after installing, the next time you upgrade the component you get the demo code again.

Solution: have the component author upload a demo (OAP, OML, or OSP) separately from the component itself (OAP, OML, OSP, or XIF). Then allow the Forge user a choice of "Download Component Only" or "Download Component + Demo".

To make this better, add a "Project" that is similar to an OSP, but can contain Applications as well. That way, the Demo can be a separate Application from the Component, and they can be delivered together in one download. A level above "Application" has been requested a few times already.

J.Ja

Created on 3 Aug 2017
Comments (16)

Must have

Agreed.


I would like to keep the "external" components untocuhed, so you can upgared far more easily (instead of force installs etc)

so, yes, demo-stuff should be somewhere else

Merged this idea with 'In the Forge, for a Component, allow for a separate download only for a Demo of the component' (created on 2017-08-25 15:23:28 by Tiago Bernardo)

With this discussion (link) about having a separate Demo component for the SortRecordList component, it would be very helpful if OutSystems would implement the functionality to have in the a component:

1) one download for the component itself,

2) and a second download only for a demo on how to use the component.

Cheers,

Tiago Bernardo



Merged from 'In the Forge, for a Component, allow for a separate download only for a Demo of the component' (idea created on 2017-08-25 15:23:28 by Tiago Bernardo), on 2017-08-26 13:37:18 by Justin James

I agree, not sure how it should be implemented correctly, but we really need components as is and some demo-site




Merged from 'In the Forge, for a Component, allow for a separate download only for a Demo of the component' (idea created on 2017-08-25 15:23:28 by Tiago Bernardo), on 2017-08-26 13:37:18 by Justin James
Merged this idea with '[Best Practice] Separate Demo eSpaces from the Main Application on the Forge' (created on 01 Mar 2018 12:14:07 by Pedro Delgado)

Having the Demo example eSpace on the same application it will lead to the demo espace to be moved from one environment (QA, PRD) whenever the application is promoted. 

Removing the eSapce on DEV does not go the trick since when a new version is uploaded the eSpace will be there again.



This comment was:
- originally posted on idea '[Best Practice] Separate Demo eSpaces from the Main Application on the Forge' (created on 01 Mar 2018 by Pedro Delgado)
- merged to idea 'Forge - Separate the "Component" from the "Demo"' on 25 Aug 2018 13:35:02 by Justin James

Agreed,

this should be better in all ways.

we like the demos, but do not like them in our environments :)




This comment was:
- originally posted on idea '[Best Practice] Separate Demo eSpaces from the Main Application on the Forge' (created on 01 Mar 2018 by Pedro Delgado)
- merged to idea 'Forge - Separate the "Component" from the "Demo"' on 25 Aug 2018 13:35:02 by Justin James

I agree with this to some extent. 

Having demo eSpaces out of the application is a good idea, but I'm not seeing people downloading two different apps/modules just to see how it works. For this, I believe that there is a simple and a complex solution.

The simple? When deploying via lifetime, do a custom deployment and check only non-demo eSpaces.

The complex? Allow an eSpace-level configuration like "Is Demo eSpace". This would mean that deployments won't consider these eSpaces as well as Service Studio would not allow these eSpaces to appear on the References pane (to be referenced, of course).

Still a good idea, though.



This comment was:
- originally posted on idea '[Best Practice] Separate Demo eSpaces from the Main Application on the Forge' (created on 01 Mar 2018 by Pedro Delgado)
- merged to idea 'Forge - Separate the "Component" from the "Demo"' on 25 Aug 2018 13:35:02 by Justin James

I agreed.

Also demo screen should not be counted in AOs.



This comment was:
- originally posted on idea '[Best Practice] Separate Demo eSpaces from the Main Application on the Forge' (created on 01 Mar 2018 by Pedro Delgado)
- merged to idea 'Forge - Separate the "Component" from the "Demo"' on 25 Aug 2018 13:35:02 by Justin James

Agreed, this is a pain.

IMO the best practice push should be:

  • If you provide a Forge Component, you also need to provide a Demo Application that shows how it is used.
  • As part of the description of the Forge Component reinforce that you should install instead the Demo Application through Service Studio (it will automatically install the Forge Component). This way the user only has to explicitly install one app (answering part of Armando Gomes' concerns.

I'd actually go further and do a slight overhaul of the Forge by simply:

  • Add a new Demo Application attribute to the info of Forge Projects, where you can specify another Forge Project.
  • Any Forge Project that is not marked as Application, Template or How-tos would be in a Pending state until the Demo Application attribute is filled (not available on the Forge for users to browse, download and/or install).
  • Any Forge Project that depends on a Pending Forge Project would also not be available on the forge for users to browse, download and/or install.
  • Redesign the Forge Project page itself to guide/reinforce that users should check/install the Demo Application instead if the Demo Application attribute is filled (or if project is not Application, Template or How-tos?).
  • Provide guidelines for developers of Component/Demo Applications to:
    • create simple, one-module applications, with no public elements (so that they don't clutter the Producers list in the Manage Dependencies like Armando Gomes' mentions).

This way we don't need to change anything in the concept of an eSpace Module, just on the Forge itself (and educating the community).

If the Demo is a different Application altogether, I wouldn't be too concerned with AOs, as IIRC they are not enforced on the Development environment 



This comment was:
- originally posted on idea '[Best Practice] Separate Demo eSpaces from the Main Application on the Forge' (created on 01 Mar 2018 by Pedro Delgado)
- merged to idea 'Forge - Separate the "Component" from the "Demo"' on 25 Aug 2018 13:35:02 by Justin James
Changed the status to
Working on it
expected delivery in Q3 2018


Hi Pedro and Followers, 

During this and next quarter, we will work hard to grow the forge into a marketplace of high-quality components.

We will:

  • Review supported components based on usage and criticality
  • Provide an additional trusted level, for open-source components curated by OutSystems
  • Clean low-quality components from the forge, either improving or dropping

So I have set the status to “Working on it”. We expect it to be ready during Q3. I’ll post an update once it’s done!

Cheers 

Ana Sequeira



This comment was:
- originally posted on idea '[Best Practice] Separate Demo eSpaces from the Main Application on the Forge' (created on 01 Mar 2018 by Pedro Delgado)
- merged to idea 'Forge - Separate the "Component" from the "Demo"' on 25 Aug 2018 13:35:02 by Justin James

I know this is already being worked on but an alternative way to do this is to allow an espace to be flagged as do not move or migrate past a certain environment. Often we create demo and test espaces which would be nice to keep together in the correct application but have the publish between environments ignore the espace if the flag is set. Extra points if the flag could be set so that publishing worked between environments flagged as development but not production.



This comment was:
- originally posted on idea '[Best Practice] Separate Demo eSpaces from the Main Application on the Forge' (created on 01 Mar 2018 by Pedro Delgado)
- merged to idea 'Forge - Separate the "Component" from the "Demo"' on 25 Aug 2018 13:35:02 by Justin James
Merged this idea with 'Module Property to not Publish on PROD anyway' (created on 23 Aug 2018 09:45:10 by Tiago Bojikian Costa Vital)

This comment was:
- originally posted on idea '[Best Practice] Separate Demo eSpaces from the Main Application on the Forge' (created on 01 Mar 2018 by Pedro Delgado)
- merged to idea 'Forge - Separate the "Component" from the "Demo"' on 25 Aug 2018 13:35:02 by Justin James

I have seen many projects in which we need to pay special attention to the applications consumed by the applications.

Usually, we add many applications / components from forge where some modules are just example, or sometime we create some modules to be a sandbox only and we do not want to publish it on PROD.

If we have a new property in the module to indicate that we do not want to publish it in PROD anyway, could be really usefully to help us manger better the consumed objects applications.



This comment was:
- originally posted on idea 'Module Property to not Publish on PROD anyway' (created on 23 Aug 2018 by Tiago Bojikian Costa Vital)
- merged to idea '[Best Practice] Separate Demo eSpaces from the Main Application on the Forge' on 25 Aug 2018 13:33:41 by Justin James


This comment was:
- originally posted on idea '[Best Practice] Separate Demo eSpaces from the Main Application on the Forge' (created on 01 Mar 2018 by Pedro Delgado)
- merged to idea 'Forge - Separate the "Component" from the "Demo"' on 25 Aug 2018 13:35:02 by Justin James

The underlying problem is that the Component maker is forced to include the samples in the same package as the actual code. The solution is to have the examples separated from the component itself.

J.Ja



This comment was:
- originally posted on idea 'Module Property to not Publish on PROD anyway' (created on 23 Aug 2018 by Tiago Bojikian Costa Vital)
- merged to idea '[Best Practice] Separate Demo eSpaces from the Main Application on the Forge' on 25 Aug 2018 13:33:41 by Justin James


This comment was:
- originally posted on idea '[Best Practice] Separate Demo eSpaces from the Main Application on the Forge' (created on 01 Mar 2018 by Pedro Delgado)
- merged to idea 'Forge - Separate the "Component" from the "Demo"' on 25 Aug 2018 13:35:02 by Justin James
views
766
Followers
4