Reto Gmür schreef op 8-8-2014 14:02:
> On Thu, Aug 7, 2014 at 2:45 PM, Minto van der Sluis <[email protected]>
> wrote:
>
>> Hi,
>>
>>
>>> Independently of this question I think we should re-discus the release
>>> process. I consider the release process as it is now as problematic
>> for the
>>> following reasons:
>>> 1.    When releasing a module we can either release all dependent modules
>>> as well or move the dependencies back to the last released version. With
>>> the first approach we end up releasing modules that did not change, with
>>> the latter we have to make sure that there was indeed no relevant
>> change in
>>> the module or in any other module reached via this dependency.
>>> 2.    When releasing multiple modules, those modules that are not part of
>>> the release have to be removed from reactor and deleted in the release
>>> branch, otherwise they will be part of the source-zip. As after the
>> release
>>> we want to merge back the changes to the version number to master, we
>> have
>>> to do a complicated selective merge as we don’t want to merge back the
>>> removal of modules nor the downgrading of dependencies.
>>>
>> Looking from a user perspective (as using clerezza components). I'd
>> rather like all components to have the same version number. Like this I
>> don't have to think about which component versions work together. I
>> expect all component with the same version to work together well. In my
>> opinion this is option 1.
>>
> No that's not option A ("1" denotes a problem, not an option in my original
> mail). Option A is that when a module is changed and released all
> /dependent/ modules are released too. Even though I see the benefit from a
> user perspective, releasing all modules on every change is not an option in
> my opinion, because:
> - it would unnecessarily float maven central
Depends on how often you intend to release.
> - releases are ideally small as this massively increases changes they get
> properly reviewed
This remains to be seen. Have a look at DataNucleus which is also a
large project. Except for maybe power users it is easier to upgrade a
single version for everything than multiple version for individual
components.

http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.datanucleus%22%20AND%20v%3A%224.0.1%22
> - it is important for external dependent project to see if the new versions
> actually change something, an important security fix upstream would justify
> an new downstream release
This is what release notes are for.
> - we should release often. It is fast and painless to do a release of
> virtuoso.storage after you fixed a bug there. Releasing everything after
> your bug fix in a module is significantly more work, especially if one of
> the modules depends on an external SNAPSHOT version and thus cannot be
> released as it is in the master branch.
Define release often. Is this after a single fix? Or is this after
grouping a number of fixes. Or maybe based on a time schedule. For
instance once a month. The question then remains: When are fixes
important enough to break this schedule?
> - it doesn't work for the "benign" circular dependecies we have, e.g. the
> pladoc plugin depends on many project that in turn use the plugin, this
> only works by the development version depending on a released version of
> the other.
Seems like there is room for improvement here. ;-)
>
>
>> I don't mind about unchanged components being rebuild with a newer
>> version. Actually I prefer it like this since it gives me confidence for
>> the reason I gave before (everything with the same version works well
>> together).
>>
> Assuming we have reasonable integration tests this confidence is justified.
> Now you would have to check in a tested launcher. Things get easier if you
> use clerezza features as they should provide compatible sets of artifacts.
> We could also provide an pom-project to be used as scope-import dependency
> in the dependency-management section providing compatible versions.
>
>
>> To me its one of the first decisions we have to make.
>> [a] Release the whole with a single version number
>> [b] Release individual component with their own version number.
>>
>> I favour option [a]. Also option [a] makes using the maven versions
>> plugin a lot easier.
>>
> The maven release plugin can be used quite easily on a single module. Try
> it out on virtuoso-storage where I think you recently fixed a bug.
>
> Cheers,
> Reto
>
>
>> Who else?
>>
>> Regards,
>>
>> Minto
>>


-- 
ir. ing. Minto van der Sluis
Software innovator / renovator
Xup BV

Mobiel: +31 (0) 626 014541

Reply via email to