Hi folks,

Jukka wrote:
> The main problem I see with going with component releases is that
> using Jira for release management becomes a bit tricky. So far the
> "Fix version" tags in Jira have been one of my key tools in tracking
> which issues go into which release. To solve that we could either
> split JCR into multiple separate Jira projects, or use the component
> tags to scope the release numbers.

You'll have to use separate JIRA projects. Versions are not scoped
per component, and you can only change between "unreleased", "released",
and "archived" on the version level. Infra is aware of this and grants
you a JIRA project for each separately releasable package [1].
As an added bonus, you'll see in the subject of the JIRA mails
to which JIRA project they belong.

> Either way we'll end up with problems if we have an issue that
> affects more than one component at a time.

You'll create separate issues and link them. Either as subtasks,
or "depends on" or "blocks". Plenty of options there.

However, I strongly suggest that you don't put 22 artifacts on
separate release cycles. Every release comes with some overhead
in preparing release notes, reviewing the artifacts, voting on
the release, performing the release, sending the release mail,
and updating the web page. That may not seem much while you're
dealing with one release for all artifacts, but if you multiply
that overhead twentyfold, you'll feel the pain. It will also
get you and your users into dependency hell. Felix should be
able to tell you a story or two about that from Apache Felix.
IIRC, the next release of the maven-bundle-plugin depends on
several other releases that have to be done first. I recommend
to shoot for a manageable 5 or 6 independent release cycles.
Without knowing the internals of Jackrabbit, for example:
- base/common/util classes used almost everywhere
- repository API and SPI
- repository implementation(s)
- remoting
- WebDAV
- ?
I hope you get the idea. I know that the WebDAV component
itself has a base, client and server section. Likewise, the
remoting stuff surely has a client and a server section.
But releasing one without the other is not likely, right?
Splitting the code into components and packaging it into
separate JARs is still possible if they are on the same
release cycle. That's what JIRA components are good for.

cheers,
  Roland

[1] http://www.apache.org/dev/project-creation-tasks.html

Reply via email to