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

