pfirmstone / JGDMS

Infrastructure for providing secured micro services, that are dynamically discoverable and searchable over ipv6 networks
https://pfirmstone.github.io/JGDMS/
Apache License 2.0
14 stars 4 forks source link

Manage pom versions/release process #78

Closed bhamail closed 5 years ago

bhamail commented 5 years ago

I noticed some recent build failures in my CI system due to the top level JGDMS pom getting a new (3.1.0) version while child poms still refer to the prior (3.0-SNAPSHOT) version. Since the CI system builds in a clean environment every time (to avoid unexpected side effects), this version change at the top pom causes the child poms to fail during resolution because the old 3.0-SNAPSHOT version is not available on a clean build machine.

e.g.:

 The project au.net.zeus.jgdms:jgdms-collections:[unknown-version] (/Users/bhamail/javadev/github/bhamail/JGDMS/JGDMS/jgdms-collections/pom.xml) has 1 error
[ERROR]     Non-resolvable parent POM for au.net.zeus.jgdms:jgdms-collections:[unknown-version]: Could not find artifact au.net.zeus:jgdms:pom:3.0-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 20, column 13 -> [Help 2]

I see a couple solutions to this, and I'd like to hammer on them a bit before recommending a path forward.

  1. Use the maven-release-plugin to update all the versions at once auto-magically. This process (see: Using the Maven Release plugin) has its own complexities, but I'd like to try this out first with my own fork to see how it goes.

  2. We could use the versions-maven-plugin to manually update all the child pom versions to match the parent, via: update-child-modules.

    mvn versions:update-child-modules

    This is less complex, but requires human memory to do it each time (which I consider less optimal than approach 1).

If you have other courses charted, please don't hesitate to steer me in a different direction.

For the curious, my experiments are happening here: https://github.com/bhamail/JGDMS

pfirmstone commented 5 years ago

Approach 1. was chosen and the version number updated.