On Nov 17, 2006, at 9:36 AM, Cliff Schmidt wrote:
The Qpid community has been debating whether or not they should
include an unreleased snapshot version of MINA within their upcoming
Qpid release, and whether they would even be allowed to do so by
"Apache rules".
(...)
Interested in hearing everyone's thoughts (especially PMC members).
Ah, interesting and complex subject...
= IMHO =
(0) above and beyond all the below, release management is not
easily encapsulated in rules like this and (P)PMCs SHOULD
spend serious effort in figuring this kind of thing out for
themselves and their specific situation
(1) for any release from an incubating project...
(2) all dependencies SHOULD have a stable/final release
(3) failing that, all dependencies SHOULD have a
project-sanctioned beta/alpha/snapshot release
(4) failing that, custom builds of all dependencies
SHOULD be clearly identified as such and traceable
to their exact origin, eg
qpid-1.1.4-incubating.zip
lib/
mina-r2475690.qpid-1.1.4-incubating.jar
(5) the community whose code you're packaging SHOULD
be notified of this activity and MUST NOT have
any serious objections
(6) custom builds of other incubating projects SHOULD
NOT be included at all
(7) the source, license, and status for all dependencies MUST
be clearly documented
(8) for any release from a non-incubating project...
(9) all dependencies SHOULD have a stable/final release
(10) failing that, all dependencies SHOULD have a
project-sanctioned beta/alpha/snapshot release
(11) failing that, custom builds of all dependencies
SHOULD be clearly identified as such and traceable
to their exact origin, eg
qpid-1.1.4-incubating.zip
lib/
mina-r2475690.qpid-1.1.4-incubating.jar
(12) the community whose code you're packaging SHOULD
be notified of this activity and MUST NOT have
any serious objections
(13) custom builds of other incubating projects MUST
NOT be included at all
(14) dependencies SHOULD NOT be incubating projects
(15) the source, license, and status for all dependencies MUST
be clearly documented
= Some ranting to explain and qualify this further =
(0) really is the only clear and unambiguous "rule" if you ask me.
The difference between (1)-(7) and (8)-(15) is between (6) and
(13,14): projects that are not incubating really MUST NOT ship with
custom builds of incubating projects, and I think having dependencies
on incubating projects should also not happen in general (though
there can be good exceptions to this, in particular when the
incubating project was already an established open source project
with a compatible license, eg a dependency on an incubator release of
activemq or wicket would be just fine).
For java projects that following the maven-style naming mechanism,
one example is having a jar which has "SNAPSHOT" in its name, by
itself that DOES NOT satisfy (7) or (15), and "downloaded from
ibiblio" in terms of "where we got it" is also NOT OK.
Note this is all, explicitly, **IM(NS)HO**. There's quite a few
projects out there that don't follow these rules at all.
(...)
(16) With my incubator PMC hat on, when I vote, I will vote according
to (1)-(7), and I expect[*] that any SHOULDs or SHOULD NOTs that
can't be met are explicitly brought to my attention when asked to vote.
(17) With my member-of-other PMC hat on, when I vote, I will vote
according to (8)-(15).
I will often get (16,17) wrong at least a little bit. Since I try
hard to get it right, you don't see me voting on many podling releases.
With other hats on (like infrastructure when I was active there, or
that of a general opinionist), I will usually refrain from claiming
any MUSTs or SHOULDs, but if I have a vested interest in a project I
will often be rather vocal nonetheless.
= Applying this opinion of mine to qpid/MINA =
- good to see the discussion
- good to see the question asked
== next steps ==
- try and work within the MINA community to get the release
you need
- if that doesn't work out, let the MINA community know you
will build a custom release
- if they object, work to get the objections dealt with
- do a custom branch of the mina tree (you can `svn cp` parts
of the ASF repository into your own svn area easily
enough)
- change (project|pom).xml and similar files to have a
sensible artifact version
- create the MINA snapshot from your branch
- do not release or seperately distribute your snapshot, and
add some documentation to discourage others from doing so as
needed
- include the MINA snapshot in your release candidate
- document the MINA's snapshot use and origin
- business as usual
- note the custom-built thingie (by reference probably) on
the VOTE thread for the podling release
- note that doing this properly is often more work than just
doing the needed work within MINA, especially if you have a
good working relationship with that community already
cheers,
/LSD
[*] and this is because of the awkward PMC-member-sometimes-votes-on-
software-he-does-not-work-on thing we have around here
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]