Skip to content

Conversation

@skofgar
Copy link
Contributor

@skofgar skofgar commented Dec 15, 2020

Hey @ericcwlaw

CI Friendly Versioning, based on git tags

I'm proposing to change:

<version>1.2.3</version>

to

<version>${revision}</version>
<properties>
   <revision>1.2-SNAPSHOT</revision>
   ...
</properties>

This will change the behaviour of the software to build jar files as x.x-SNAPSHOT by default, but when you tag the software (or use mvn package -Drevision=1.2.3), then it will create a release. It has the advantage that the git tag and a specific version are tied to each other and you clearly know what are "releases" and what are snapshots.

So you won't actually have to do any manual releases, since the CI pipeline, in my example GitLab, can do these releases for you.

This is based on Maven's "CI Friendly Versioning"

Releasing Maven Artifacts to GitLab Registry

Furthermore I updated the GitLab CI pipeline accompanying these changes and releasing the resulting JAR's into the project's GitLab Maven Registry (in my fork). In the future a release to maven-central is desired, but it is more involved. To not make this pull request/review more complex it is not part of this.

Parent Pom

Additionally I added a parent-pom under system/parent/ to drive deployment configuration.

Next steps

The suggested changes could potentially break some of your builds, depending how you include the jars (version numbers etc). Hence we should discuss and verify that these changes are desired and move the project in the direction you want it to go.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant