Return-Path: Delivered-To: apmail-cocoon-dev-archive@www.apache.org Received: (qmail 36163 invoked from network); 9 Jan 2006 21:38:27 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 9 Jan 2006 21:38:27 -0000 Received: (qmail 80714 invoked by uid 500); 9 Jan 2006 21:38:24 -0000 Delivered-To: apmail-cocoon-dev-archive@cocoon.apache.org Received: (qmail 80626 invoked by uid 500); 9 Jan 2006 21:38:23 -0000 Mailing-List: contact dev-help@cocoon.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@cocoon.apache.org List-Id: Delivered-To: mailing list dev@cocoon.apache.org Received: (qmail 80615 invoked by uid 99); 9 Jan 2006 21:38:23 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 09 Jan 2006 13:38:23 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: neutral (asf.osuosl.org: local policy) Received: from [62.2.95.247] (HELO smtp.hispeed.ch) (62.2.95.247) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 09 Jan 2006 13:38:22 -0800 Received: from pati.ch (80-219-16-137.dclient.hispeed.ch [80.219.16.137]) by smtp.hispeed.ch (8.12.6/8.12.6/taifun-1.0) with ESMTP id k09Lc0Xj008300 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=FAIL) for ; Mon, 9 Jan 2006 22:38:01 +0100 Received: (qmail 5518 invoked from network); 9 Jan 2006 22:38:00 +0100 Received: from 10.20.30.1 by simba (envelope-from , uid 201) with qmail-scanner-1.25st (clamdscan: 0.87.1/1235. perlscan: 1.25st. Clear:RC:1(10.20.30.1):. Processed in 0.041601 secs); 09 Jan 2006 21:38:00 -0000 Received: from simba.pati.ch (HELO localhost) (10.20.30.1) by simba.pati.ch with (DHE-RSA-AES256-SHA encrypted) SMTP; 9 Jan 2006 22:38:00 +0100 Date: Mon, 9 Jan 2006 22:37:57 +0100 (CET) From: Giacomo Pati Sender: giacomo@lapgp.otego.com To: dev@cocoon.apache.org Subject: Re: Versioning of blocks In-Reply-To: <43C2CDC9.10802@nada.kth.se> Message-ID: References: <43C145ED.5050908@apache.org> <43C14F7F.1060507@nada.kth.se> <43C17055.2000708@apache.org> <43C188D0.3070006@apache.org> <43C2CDC9.10802@nada.kth.se> X-GPG-FINGRPRINT: 9E66 40E0 0A9C B37F E29E 5816 2CD7 49BD 98E3 5590 X-GPG-PUBLIC_KEY: http://pks.gpg.cz:11371/pks/lookup?op=get&search=0x2CD749BD98E35590 MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Virus-Scanned: ClamAV version 0.87.1, clamav-milter version 0.87 on smtp-01.tornado.cablecom.ch X-Virus-Status: Clean X-DCC-spamcheck-02.tornado.cablecom.ch-Metrics: smtp-01.tornado.cablecom.ch 32701; Body=1 Fuz1=1 Fuz2=1 X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N -----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 > Reply-To: dev@cocoon.apache.org > To: dev@cocoon.apache.org > 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-----