adobe / aem-core-wcm-components

Standardized components to build websites with AEM.
https://docs.adobe.com/content/help/en/experience-manager-core-components/using/introduction.html
Apache License 2.0
730 stars 736 forks source link

Describe versioning schema for the component parts in the repository #11

Closed kwin closed 7 years ago

kwin commented 7 years ago

All components below https://github.com/Adobe-Marketing-Cloud/aem-core-wcm-components/tree/master/content/src/content/jcr_root/apps/core/wcm/components have a version in their path.

Unfortunately it is nowhere documented how stable those versions are (for future upgrades). While semantic versioning is quite well documented for Java Code (namely by https://docs.oracle.com/javase/specs/jls/se7/html/jls-13.html) this is not documented for scripts or dialog definitions. If someone now derives from those components, how stable are those? What would increase the version: Adding a new feature (backwards compatible) and new properties or just change the behaviour (non-backwards compatible). What about renaming of HTL templates? It is also important for overriding TouchUI dialog definitions, can we rely on stable identifiers here?

raducotescu commented 7 years ago

I've documented the components' versioning policy at https://github.com/Adobe-Marketing-Cloud/aem-core-wcm-components/wiki/Versioning-policies.

kwin commented 7 years ago

Thanks @raducotescu, that looks very good. The only aspect which is not covered is dialog definitions. Especially when being used with the http://sling.staging.apache.org/documentation/bundles/resource-merger.html it is important to have stable identifiers. Could you elaborate on the stability of the elements order and names? The other thing not being mentioned is Java Script.

kwin commented 7 years ago

@raducotescu Could you reopen this issue (for the missing dialog definition and js policy) or do you want me to open a new issue for that?

raducotescu commented 7 years ago

@kwin, we're actively working on the JavaScript client libraries versioning. The dialog structures will follow.