-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Mon, 9 Jan 2006, Daniel Fagerstrom wrote:
Date: Mon, 09 Jan 2006 21:55:37 +0100
From: Daniel Fagerstrom <[EMAIL PROTECTED]>
Reply-To: [email protected]
To: [email protected]
Subject: Re: Versioning of blocks
Giacomo Pati skrev:
On Sun, 8 Jan 2006, Jorg Heymans wrote:
> Carsten Ziegeler wrote:
>
> > Hmm, yes, like I wrote in my latest answer to Daniels post, I'm not
> > sure
> > if this is the right approach. I think, blocks will be totally
> > independent wrt to releases/versioning from the core in the future.
> > And
>
> Yes the release cycle of blocks will be totally independent of the core
> release cycle. The actual versioning is independent as well.
>
> The fact that my suggestion copies ./trunk to ./branch does not mean
> that we tie the release or versioning of blocks in ./branch to that
> core. It just means that we explicitly state that those blocks are only
> guaranteed to be working with that particular core. The branch would
> effectively be in maintenance mode, meaning you'ld only backport
> *critical* bugfixes.
Hmm.. it seems we get a complicated thing here:
What about if I write a block that depends on
1. block A 1.0 which depends on cocoon-core-2.2
2. block B 1.1 which depends on cocoon-core-2.3
than?
Does this mean I have to make sure that my block A only depends on blocks
that all depend on the very same version of the same dependant block?
In the general case, yes. But that is a fact of life rather than something
that has to do with the particular build system.
Yes, but the impression M2 is giving make it sometimes hard to see the
transient dependency conflicts.
What we can and should do about it is:
* Split the core and large blocks into smaller blocks. This reduces
interdependencies as you don't suffer from changes of a block that didn't
have to do with what you used from it.
* Strenghten and respect contracts of blocks. If all blocks has well defined
external apis (and the user only depend on them) and we keep the apis back
compatible, a block can use newer versions of the dependent block than it was
designed with.
Let's hope so, by goodness!
M2 have a transitive dependency resolution system. In the case above it will
find out that the dependency set of your block contains two versions of the
cocoon-core block. In this case it will try to compile it with the latest
version. This automatic behaviour can in turn be overided by explicitly
depend on a specific version of cocoon-core in your blocks pom.
Good to make everybody know of it.
With OSGi we will get classloader isolation and more advanced handling of
dependencies on different versions,
Yes, I knew that but I didn't mention it as it is not clear when that
will be available (and things ATM are not in 2.2.0 IIRC).
but we should get the M2 build in a
stable state first ;)
Yes, but than everybodyd need to be aware of the mechanisms M2 will
follow t resolve dependencies which sometime wasn't clear as some
said that "M2 will handle dependencies automa(gt)ically" ;-)
- --
Giacomo Pati
Otego AG, Switzerland - http://www.otego.com
Orixo, the XML business alliance - http://www.orixo.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
iD8DBQFDwte3LNdJvZjjVZARAg9LAKCCdN+xnso1PtBAz5fwiOYkS75rpgCggFNi
hNLxt4uolGh8X5c2TFDTaTs=
=Yjdi
-----END PGP SIGNATURE-----