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]