On Jan 5, 2007, at 5:03 PM, Slava Imeshev wrote:


--- Jeremy Boynes <[EMAIL PROTECTED]> wrote:

We ran into scalability issues in the past trying to build everything
together all the time and have migrated away to a more modular
structure.

I'd say that the system should be able to be re-build
from scratches, whether it is a monolithic script or
a set of modules. That's what is called a clean build.

The thing is, a clean build of what?

Up until now (including M2) we had a monolithic build based on mvn - the only way someone could build any part of the tree was to check out the root (tuscany/java) and build everything. This gave us two big problems: Firstly, there were periods of time when, due to circumstances outside our control, parts of the build failed which prevented anyone from working on bits after the failures. Secondly, people making changes to one part would need to make sure they were tested (and any issue fixed) across the entire tree even in areas that they had no real experience with. It became very clear in the M2 timeframe that we could not scale if we continued with this monolithic approach. We made the decision to modularize the project build.

The key thing here is that each module should be buildable independently based on published dependencies. A clean build of a module should work even if no other modules have been built locally first.


Rather than put it all back together like this, would it
be possible to have separate modules in Parabuild for the different
areas? For example, modules for:
* spec
* sdo
* das
* sca kernel
* sca standalone runtime
* and individual sca services (e.g. axis2 based ones)

Yes, why not. But isn't it what the quoted script does?

Not quite. The script passes context from one module to another in the form of artifacts installed in the local maven repository.


Each of these modules should build on their own but for that to work
we need to be more diligent about publishing SNAPSHOTs - e.g. we
should consider republishing the SNAPSHOT of spec.

Is it possible to build it w/o publishing snapshots?

Yes but that does not reflect the end-user experience we want to ensure works. For example, Toni's build should have worked based purely on building the "sca kernel" module. The build failed because the online snapshots it would have used were out of date - which is a real failure because the spec jars were changed and not republished.


Also, what do you think about the aforementioned build script?

I think it takes us back to a couple, monolithic build. One fix would be to clean out the local maven repo between modules, but I think it would be preferable to split it into modules.

FWIW, the modules I think are important are those we would expect a user to build. In terms of SVN these are:
https://svn.apache.org/repos/asf/incubator/tuscany/java/
  spec
  sdo
  das
  sca/kernel
  sca/runtime/standalone

plus others as we finish re-orging the services tree

--
Jeremy


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

Reply via email to