Actually, Dennis, I would argue that your problem is the smaller one of the
two main problems with the release plugin.

The bigger problem is that the release plugin requires too much manual
fiddling to apply in a big maven reactor. For example; given a reactor with
250+ maven projects you want to make a new release since 74 of these 250+
projects now contain changes following 4 refactorings. The question now is
not one of which semantic versioning principle I'm applying but simply one
of practicality:

Which of the 74 projects should now receive a major, minor or micro version
upgrade?
As deliverables scale, the burden of using a proper versioning scheme is
simply that there is no tooling support in figuring out if a change in
project X should yield a major, minor or micro version bump - and doing
this manually is simply not a scalable task at all.

The release plugin seems fine to use when it comes to smaller projects such
as most of the maven plugins, but it has distinct usability problems for
bigger reactors. Release managers in most of my later projects simply
decided that the only sensible solution was to (re-)release all projects in
the reactor with new versions. This implies that most of the maven
component projects misuse semver, but that the release process works.... at
all.

I believe that we need a plugin which could calculate a suggested version
for a project given the last release's binary API and changes since the
last release (in the style of clirr + something else). Such a plugin would
also be really useful in a continuous delivery scenario where semver is
needed but largely ignored due to technical difficulties in calculating
version numbers.



2015-02-21 23:05 GMT+01:00 Dennis Lundberg <denn...@apache.org>:

> Hi,
>
> Although I strongly feel that SemVer [1] is the way to go when it
> comes to versioning, I still haven't started using it though. That got
> me thinking about why that is the case. I've come to the conclusion
> that I'm lazy :)
>
> It all comes down to tooling. Being accustomed to, and spoiled by,
> using the Release Plugin, I don't want to do anything manually any
> more. That includes as simple a thing as changing the "next version"
> (or developmentVersion) manually during the interactive command line
> session when using the Release Plugin. I want it to be the guessed
> correctly for me. Let me outline an example to show you what I mean.
> The vast majority of releases I make, both here and at my day job, are
> minor releases. So I want the Release Plugin to work for me, and not
> against me.
>
>
> Not using SemVer
>
> 1.0-SNAPSHOT --> 1.0 --> 1.1-SNAPSHOT
>
> No problems here, the Release Plugin will correctly guess that
> 1.1-SNAPSHOT is the next version that I want to use. Just hit <enter>
> a couple of times during the release process.
>
>
> Using SemVer
>
> 1.0.0-SNAPSHOT --> 1.0.0 --> 1.0.1-SNAPSHOT
>
> This is not what I want. The Release Plugin will guess that the next
> version should be 1.0.1-SNAPSHOT. To change it I have to type in the
> value that I want on the command line. I'm too lazy for that. Instead
> I want the Release Plugin to do this:
>
> 1.0.0-SNAPSHOT --> 1.0.0 --> 1.1.0-SNAPSHOT
>
>
> How can we solve this? The solution that I have come up with is a new
> parameter for release:prepare tentatively called "versionIncrement"
> that can take the values "major", "minor" and "patch", with "patch"
> being the default value for backwards compatibility.
>
> In my use case above I would simply set versionIncrement=minor and the
> Release Plugin would then do things my way.
>
> What are your thoughts on this?
>
> I would like for us to start using SemVer for all releases in the
> Maven project, not just in core. What do you think?
>
>
> [1] http://semver.org/
>
> --
> Dennis Lundberg
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org
>
>


-- 

--
+==============================+
| Bästa hälsningar,
| [sw. "Best regards"]
|
| Lennart Jörelid
| EAI Architect & Integrator
|
| jGuru Europe AB
| Mölnlycke - Kista
|
| Email: l...@jguru.se
| URL:   www.jguru.se
| Phone
| (skype):    jgurueurope
| (intl):     +46 708 507 603
| (domestic): 0708 - 507 603
+==============================+

Reply via email to