Replies: 3 comments 5 replies
-
Here is a sample changelog generated by JReleaser for the future 3.39.2 release. |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
Release from CI has been added, and the first release 3.39.2.0 was released ! 🎉 There were a few hiccups, but I managed to solve it (mostly):
All in all it worked quite well, and should work flawlessly for the next times (🤞🏻 ). I have also updated the documentation to mention that new process, and added some comments in the workflow file to explain what's going on. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I am looking at publishing releases automatically from CI, so that we get a reliable, repeatable process to perform releases.
I will try to summarize the high level process, and then how we can apply that using the existing tooling.
Version management
Versioning explained
Versioning of
sqlite-jdbc
is tied to the version of sqlite we are bundling with the jar, to which we add an optional suffix that increments for every fix we do on our side.For example the version of sqlite in our last release is
3.36.0
, so we released a version3.36.0
of the jar. After a fix on our side, but keeping the same version of sqlite, we would release a3.36.0.1
.If we upgrade to the latest SQLite (
3.39.2
), we would release3.39.2
.How version change
Version can be changed by 2 processes:
1 is done manually, as it needs updating the
VERSION
file as well as the version inpom.xml
, a recompile of the native libs, and sometimes other changes in themakefile
. This is out of scope of automation for the moment.2 is done using the
maven-release-plugin
, which would prepare a release from the SNAPSHOT version, then increment for the next release. For example if we are at3.36.0.3
, thepom.xml
would have3.36.0.3-SNAPSHOT
, and after the release it would be3.36.0.4-SNAPSHOT
.Tooling
maven-release-plugin
The
maven-release-plugin
performs various actions:pom.xml
before release, and commit a change with the release versionIt doesn't do:
In order to perform a release from CI, we would need:
maven-release-plugin
to prepare the release🎯 Proposals
➡️ I think we should always include the suffix, to make the versioning consistent. For example we should release
3.39.2.0
, and not3.39.2
. That will also make the versioning usingmaven-release-plugin
easier, as the next snapshot will always be computed by increasing the last digit, thus it would compute3.39.2.1-SNAPSHOT
instead of3.39.3-SNAPSHOT
.➡️ To trigger CI, given the
maven-release-plugin
will already handle the tagging, we could run a workflow manually. This is a handy way to trigger a release from Github. I use this in a few projects already.➡️ To push the commits/tags upstream, I think we can pass
pushChanges
astrue
to themaven-release-plugin
during the release on CI, so that the changes will be pushed upstream. Else we could perform a git push in the CI steps.➡️ To create a Github release, we can either:
@xerial when you have time, can you provide some feedback on this ? Thanks
Beta Was this translation helpful? Give feedback.
All reactions