Simon Nash wrote:
Jeremy Boynes wrote:
On Jan 10, 2007, at 4:45 AM, Simon Nash wrote:
Jeremy Boynes wrote:
On Jan 9, 2007, at 1:27 AM, Jim Marino wrote:
I know very little about Maven except to follow how it expects
projects to be structured and behave or it will inflict untold
amounts of pain (which is probably fair given its goal of trying
to standardize project build structures) :-) Here is how I
picture things will work:
+1 on the general description (snipped for brevity).
+1 on Jim's general description as well. I see the key points as:
1) Downstream modules (including the current HEAD versions) will
normally depend on released versions of upstream modules, not
on SNAPSHOTs.
2) Upstream modules will release often, so that downstream modules
don't normally need to create a SNAPSHOT dependency to get
important
new function.
3) Where a downstream module does introduce a SNAPSHOT dependency,
it becomes responsible for tracking that dependency and adjusting
as necessary to keep up with updated SNAPSHOT versions of the
upstream module.
4) We will use classloader isolation and multiple version support
to manage the issue of incompatible dependencies, where possible.
This won't deal with all cases, such as kernel SPI changes,
where only one copy (I presume) can be loaded.
I'd add an addition point:
5) Upstream modules should avoid incompatible changes between SPI
versions. When they are needed, some heads-up should be provided so
that downstream users are not unduly impacted. This really applies to
inter-SNAPSHOT changes - we'd want to avoid such changes between
releases as much as possible but within a release cycle you may want
to refactor things a couple times.
+1
Sorry, I pressed Send a bit hastily.
A refinement of this principle is that when making "incompatible"
changes, it is sometimes possible to make them in a way that provides
some level of backwards compatibility. For example, if renaming a
method or adding a new parameter, the old method name or signature
can be kept around for a while rather than deleting it immediately.
Simon
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]