On Sun, Feb 22, 2015 at 7:43 AM, Lennart Jörelid
<lennart.jore...@gmail.com> wrote:
> Well ... actually, Benson, the project I'm thinking of had 398 maven
> projects within one deliverable.
> Roughly divide by 3 to get the number of APIs there - implying the number
> of API projects are at the 130+ level.
>
> However - just throw into the mix that you are creating a 100% uptime
> project where parts must be upgradeable at all times.
> That implies something like OSGi - which means that all Implementation, SPI
> and Model projects must *also* adhere to semver.
> Otherwise you cannot simply replace an implementation with a bugfixed one
> while the app is running....
>
> ... so I would claim that there are scenarios where semver is required for
> all the project parts.
> And that the release plugin in its current state is close to unuseable in
> catering for these scenarios.

Yow! ok, point taken.

>
>
> 2015-02-22 12:44 GMT+01:00 Benson Margulies <bimargul...@gmail.com>:
>
>> On Sun, Feb 22, 2015 at 6:26 AM, Lennart Jörelid
>> <lennart.jore...@gmail.com> wrote:
>> > 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?
>>
>> I would be somewhat in awe of a project that included 74 components
>> that all (or even most) published an API that needed SemVer. My point
>> here is commentary on yours, not an argument. In my experiment,
>> typically a multi-module monster has one 'api', and then a complex
>> internal structure. To the outside world, SemVer applies to the API,
>> not to all the insides. Or, it applies to the union. If the pieces are
>> so independent that your scenario applies, I would wonder if a
>> multi-module structure is really appropriate.
>>
>>
>> > 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
>> > +==============================+
>>
>> ---------------------------------------------------------------------
>> 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
> +==============================+

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to