On Mar 23, 2007, at 2:16 PM, Luciano Resende wrote:

Jeremy

So, having these assemblies modules sounded interesting to me until the moment you said you want to base them on deployed artifacts... we have never had a habit of publishing SNAPSHOTS for all possible artifacts, and even the members of the community that are proposing this approach are failing to
deploy the SNAPSHOTS artifacts and Mario's pain is a prove of this.

Ideally the deployed artifacts they would depend on would be stable released ones - this is directly inline with the stability goals expressed by the likes of Dave Booz. In general, aggregations should not depend on SNAPSHOTs or a head revision except where absolutely necessary.

Mario's pain was caused because we had not put together an assembly of the modules needed for the demo. It was the wee hours of the morning, I hope you understand. Once the dust settled, the modular, independent nature of what we had allowed us to put together a very simple assembly for building exactly that (independent of any other activity in trunk). You can see this here: https://svn.apache.org/repos/asf/incubator/tuscany/tags/java/tsss- demo


You also mentioned before that we have M2 experience of a top down build not working, I'm not sure about all the details that comes to your mind when
you say that, but I remember some build brakes (and I think this is
acceptable in trunk, right ?)

No, not really.

and we could set some conventions like,
modules that are "unstable at the moment" would be removed from the maven profile (and maybe a JIRA would be created)... later on, when the module is back to it's stability, whoever fixed the issue would close the JIRA (if
any) and put the module back to the stable profile.

The problem of this approach is that it couples everything together through the parent pom. Even if a separate parent is used, the reactor will attempt to use common dependency versions across the modules. This means that modules get coupled together based on the versions of their dependencies and so we lose the independence between them.

Basically, unless they all use the same version then they won't all build.


Also, this is not about MAVEN PROFILE versus ASSEMBLY. I'm sure both can co-exist together in perfect harmony, and it would definitely be a good solution for members of the community that are interested only in a subset of Tuscany (e.g some embedder that only requires the kernel, and a Spring
extension for example), and these assembly modules could be created as
needed

These profiles would probably make the user experience of someone that comes to evaluate Tuscany trunk much easier, as already mentioned by Mario [1], and help others to be more productive as already expressed on various
other threads [2][3].

This is where we disagree. Doing what you suggest couples all modules at a single monolithic version level. That may be desirable in a commercial product but is not a way to scale an open source community.

One of the problems we have is that the documentation on the build and the pom structure is misleading and confusing users. I wanted to clean that up by removing bad poms such as java/pom.xml but was overruled.


If I understand your concerns, having the convention of moving unstable modules out of the maven profile should help, but maybe you could explain what worries you, that you are fighting so hard not to allow people to build
different modules with a simple mvn command. Nevertheless, it's good
practice to build before committ, right ?

Please can we not make this personal - I am not fighting hard not to allow anything. I am trying to find a middle ground that allows people who need to build groups of modules to do so and at the same time preserve the independence between the modules.

I do not know of a way to make what you want work with independently versioned modules. I have proposed something that people seemed to be able to live with and which I believe works. Let's hear technically viable alternatives.

--
Jeremy


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to