Hello fellow graphytes,

Today I offer for your consideration one of the classic unsolved problems of 
computer science: proper versioning.

Neo4j is a available as individual library components and also pre-packaged 
collections of components. The obvious challenge is to maintain a coherent set 
of tested, known-good and compatible components. As we move towards regular 
milestone releases, what's the best way to control and inform about the various 
versions that are included?

Use cases include:

1. I'm a maven developer, and want coherent dependencies
2. I develop offline, and want to know what combination of libs to download
3. I deploy neo4j as a server, and want to upgrade a component without breaking 
things

Assuming that zip files (or similar) will always use the corresponding release 
version, the versioning of the included components could vary. For a milestone 
release with an overall group version of 1.2-M1, permutations of an individual 
component (the fictional neo4j-foo) version could be:

Opt. | mvn version   | download version 
---------------------------------------
1    | foo-0.7        | foo-0.7
2    | foo-0.7        | foo-1.2-M1
3    | foo-1.2-M1     | foo-1.2-M1
4    | foo-0.7-1.2-M1 | foo-0.7-1.2-M1
5    | foo-0.7        | foo-0.7-1.2-M1

Questions include:
1. Should individual components keep their own versions, or defer to the 
grouped release version?
2. Should the maven version keep in sync with the non-maven version?

Opinions?

Cheers,
Andreas

_______________________________________________
Neo4j mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to