+1

Op 12-12-2012 8:54, Dan Haywood schreef:
> I raised this topic in a recent discussion thread, but would like to have
> it formally voted on because I think it's pretty important.
>
> The proposal is to adopt semantic versioning [1] for both Isis core and the
> components.  More detail below on this.
>
> The vote will be open for 72 hours.
>
> [ ] +1
> [ ]  0
> [ ] -1   ... please explain why
>
> ~~~~~
> More detail on the proposal:
>
> Version numbers are in the form x.y.z :
> - x is bumped up whenever there a breaking API change
> - y is bumped up whenever there is a new feature that does not break API
> - z is bumped up for minor bug fixes.
>
> This scheme would be adopted for both core and components.  Version numbers
> would not be kept in sync.  Version ranges may not be used (*)
>
> For example
>
> * core 1.0.0 is released
> * isis-objectstore-jdo 1.0.0 is released, dependent on core 1.0.0
> * isis-viewer-wicket 1.0.0 is released, dependent on core 1.0.0
> * core 1.0.1 is released.  This is NOT picked up by either of the above
> components.
> * isis-objectstore-jdo 1.0.1 is released, dependent on core 1.0.1.  This
> also incorporates a number of its own bug fixes
> * core 1.1.0 is released, providing a new feature
> * isis-viewer-wicket 1.1.0 is released, using the new feature provided by
> core 1.1.0
> * isis-viewer-wicket 1.2.0 is released, offering its own new feature.  It
> still depends on core 1.1.0.
> * isis-objectstore-jdo 1.0.2 is released.  This has some bug fixes and
> depends on core 1.1.0 (even though it does require the new feature
> introduced in core 1.1.0)
> * core 2.0.0 is released, making breaking changes to the objectstore API
> * isis-objectstore-jdo 2.0.0 is released, dependent on core 2.0.0
> * isis-objectstore-jdo 2.1.0 is released, providing a new feature.  It
> depends on core 2.0.0.
> * isis-viewer-wicket 1.2.1 is released.  This has some bug fixes, and also
> updates to run against core 2.0.0
>
> At the end of this sequence we have:
> - core 2.0.0
> - isis-objectstore-jdo 2.1.0, dependent upon core 2.0.0
> - isis-wicket-viewer 1.2.1, dependent upon core 2.0.0
>
> To avoid "jar hell" (components having conflicting dependencies of core)
> our recommendation to end-users would be to configure the
> maven-enforcer-plugin and its DependencyConvergence rule (good practice for
> all maven projects) [2]
>
>
> (*) with semantic versioning it might make sense to allow for version
> ranges for the "z" and perhaps "y" components.  HOWEVER, I recall that one
> of the plugins we use for release - can't remember which one just now - has
> a bug meaning that we cannot do this even if we wanted to.
>
> [1] http://semver.org.
> [2]
> http://maven.apache.org/enforcer/enforcer-rules/dependencyConvergence.html
>


-- 
ir. ing. Minto van der Sluis
Software innovator / renovator
Xup BV

Mobiel: +31 (0) 626 014541

Reply via email to