On Thu, 21 Feb 2019 at 20:46, Vladimir Sitnikov <[email protected]> wrote: > > Felix> Something like mvn release plugin > Felix> http://maven.apache.org/maven-release/maven-release-plugin/ > > Please, friends, never use maven-release-plugin.
Agreed. > It works for a trivial single-module project, and it is a great pain for > multi-module setup. I learned that the hard way. IMO it has a fundamental design fault which affects single module builds as well: it updates trunk to the new snapshot version before the RC is voted on and agreed. So if the vote fails - which is not all that unusual - trunk has to be reverted. Furthermore, whilst the release vote is in progress, any CI builds will start populating the snapshot repo with a new version. If the release is cancelled, these stale snapshots hang around and may have to be manually removed. Even worse - it does not use a clean workspace for the build. > I think we should just identify the set of actions we need and script it. > For instance, see https://github.com/pgjdbc/pgjdbc/issues/1256 behind the > lines of "Rework release procedure". The safest approach is to create a tag for the RC from trunk. Checkout that tag in a clean workspace (so there can be no spurious files) and build the RC there. Others can also checkout the same tag and should get a repeatable build. Anything else is error prone - it's far too easy for un-versioned files to creep into a build. > Vladimir
