+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