Hi all Some more throughs about versioning:
Out of a user perspective it is really nice if all artifacts of a project do use the same version. However OSGI puts a lot of semantic into versioning [1] [2] so increasing lets say the version of the Enhancer from 0.11.0 to 0.12.0 indicated that there were some methods added to the Enhancer APIs and so all implementing modules need to be adapted. However there is not need to keep Maven versions in sync with the OSGI versions. This is only the case because we currently use `version=${project.version}` in the Export-Package declaration. Here an example: <Export-Package> org.apache.stanbol.enhancer.servicesapi; version=${project.version} </Export-Package> Generally OSGI versions and Maven versions do anyway not fit very well, as Maven versions whole modules while OSGI is based on packages. There are also some example of other modules that use different version for Maven and OSGI. `commons-io:commons-ii:2.4` export [3] packages that where already present in version 1.4 with the OSGI version `version=1.4.9999` and only newly added packages with `version=${project.version}`. This allows to use - the fully backward compatible - 2.+ versions of the module with OSGI components that import a version 1.+ of those packages. So my suggestion would be to: * update everything to 0.12.0 in the release-0.12 branch * keep everything with 1.0.0 in the trunk * add maven properties with the version of interfaces to the parent pom.xml files of Stanbol components (enhancer, entityhub, commons.solr, ...) and use those instead of the project.version for exporting interfaces. Those properties will allow to decouple maven versions with interface version what should allow use to have both: (a) correct semantic versioning for OSGI and (b) consistent Maven module versions that are intuitive for Stanbol users. WDYT Rupert [1] http://www.aqute.biz/Bnd/Versioning [2] http://www.osgi.org/wiki/uploads/Links/SemanticVersioning.pdf [3] http://search.maven.org/#artifactdetails|commons-io|commons-io|2.4|jar On Fri, Dec 6, 2013 at 8:09 AM, Fabian Christ <christ.fab...@googlemail.com> wrote: > Hi, > > first a big sorry that this release got delayed so much. I wanted to have > it out in the summer but different responsibilities made it hard for me to > find enough time. > > So +1 for the release and thanks for pushing it. I will try to be more > present and help to finally cut the release. > > Best, > - Fabian > Am 05.12.2013 20:51 schrieb "Enrico Daga" <enricod...@gmail.com>: > >> Hi Rupert, >> thank you for boosting this. >> >> >> On 5 December 2013 06:39, Rupert Westenthaler < >> rupert.westentha...@gmail.com >> > wrote: >> >> > Hi all, >> > >> > In the last few weeks there was not much progress on this.Starting >> > with next week I should have time to work on that and hopefully get it >> > out before Christmas! >> > >> > But before continuing I would like to ask for opinions on some >> > decisions we need to take: >> > >> > 1. Module Versions: Currently different Stanbol Component do use >> > different module versions: Commons: 0.12.0-SNAPSHOT; Enhancer: >> > 0.11.0-SNAPSHOT; Enhancement Engines: 0.10.1-SNAPSHOT; Entityhub: >> > 0.12.0-SNAPSHOT; all others components: 0.11.0-SNAPSHOT and finally >> > all launchers and Bundlelists use 0.10.0-SNAPSHOT >> > >> > IMO we should update all those versions to 0.12.0 before the release. >> > Even that this will require to manually set the OSGI version ranges >> > for a lot of modules. >> > >> +1 to have all in the same major and intermediate versions. >> >> >> > A light weight variant would be to only update the version numbers of >> > the bundle lists and launchers and keep the current version numbers >> > for all the other modules. >> > >> > 2. Add release-able Launchers: As most will know, we can not make >> > binary releases of the current launchers, as they would include >> > artifacts that are not compatible with the ASL (e..g the OpenNLP Model >> > files). Because of that I would suggest to add Launchers that do not >> > include such modules (meaning that they do not include a default >> > configuration) and provide binary releases of Stanbol Launchers with >> > the 0.12.0 release. >> > >> Make sense to me >> >> > >> > 3. IMO we should keep the 0.12.0 branch active even after a release >> > and back port compatible features and bug fixes. This is mainly >> > because there will be several major changes in the trunk version and >> > so it will mostly be good to provide fixes and improvements for users >> > that require a more stable version. >> > >> Big +1 >> >> I strongly think that having an active branch from the released version to >> work on bugfixes (towards minor releases, X.X.*) is the right way of doing >> it. >> We use the trunk to work on the next Major release (we are working on 1.0.0 >> there). >> About the versioning policy, we should definitely decide one. >> My opinion is that all artifacts should have the same major and >> intermediate version, and we should keep the minor version to change when >> this make sense. But others may have better ideas. >> >> my 2 cents >> >> Enrico >> >> >> > I have done this already for a lot of uIssues in the last few weeks >> > and IMO the overhead of doing so is reasonable. >> > >> > 4. Set up a Jenkins build for the 0.12.0 branch: As this is considered >> > the "stable" version it would be good to have Jenkins builds for this. >> > >> > best >> > Rupert >> > >> > -- >> > | Rupert Westenthaler rupert.westentha...@gmail.com >> > | Bodenlehenstraße 11 ++43-699-11108907 >> > | A-5500 Bischofshofen >> > >> >> >> >> -- >> Enrico Daga >> >> -- >> http://www.enridaga.net >> skype: enri-pan >> -- | Rupert Westenthaler rupert.westentha...@gmail.com | Bodenlehenstraße 11 ++43-699-11108907 | A-5500 Bischofshofen