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
- releases are ideally small as this massively increases changes they get
properly reviewed
- 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
- 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.
- 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.


>
> 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
>

Reply via email to