Fantastic work Sean,

Thanks again! Wish you were out here so I could buy dinner or something :-)

TTFN,

-bd-

On Jun 28, 2005, at 9:19 AM, Sean Schofield wrote:

Bill,

Making progress on the reorg.  Share is its own subproject now.  It
doesn't have a build directory of its own though since that doesn't
make sense.  I removed RSS Ticker and ISBN Validator for now so there
are no more compile issues with the jars you get with
download-dependencies.

Also I create svn:externals for "core" and "tomahawk-only."  The build
file is working ok but the resulting WARs do not yet work perfectly.
You can run dist-all from current/build and build everything (javadoc,
jars and wars.)  You can run dist from each of the subprojects and
that works too (as long as you build in the correct order.)

sean

On 6/25/05, Sean Schofield <[EMAIL PROTECTED]> wrote:

Bill,

I've been thinking more about your proposal.  The one problem I have
is that we don't really want to treat the share stuff as an
independent project.  We also agreed that it would be confusing to
have a share.jar.

Of course there are several ways around this, the trick is choosing
the right one.  In my OBRTA ("one build rules them all" ) scenario, I
build jars for each of the subprojects. I do have properties for each
of the subprojects, so maybe we could have a flag to skip jar
generation.

Plus OBRTA can just skip the share project all together.  I think the
combination of these approaches might work.

Let me know if you have any other ideas.  I'm taking the day off from
open source and heading to the Chesapeake Bay fir a little R&R.  I'll
try moving the shared stuff out to its own subproject as you suggest
on Sunday.

sean

On 6/24/05, Sean Schofield <[EMAIL PROTECTED]> wrote:

Bill,

Interesting proposal.  I suppose its possible to link an external
*directly* to another external.  I hadn't thought of that.

Its possible this back and forth may be converging on a nice solution.
 BTW, LOL at your "one build to rule them all reference"

A couple of thoughts ...

You forgot sandbox.  No big deal that can just be part of the
"current" link.  I would also suggest "tomahawk-standalone" or
something like that as the shortcut for the tomahawk plus dependency
source (instead of extensions.)  Just so we don't muddle the names
extensions and tomahawk.

The beauty of SVN is that its possible to copy and move things around easily. I think I will try move things around the way you suggest and see how that works. I think that sharing build and entity stuff is no
big deal but I agree with what you are trying to do as far as the
shared source.

I've been able to come up with several tricks to get ant to
recursively go through the subprojects.  We may end up needing two
build files but I hope that the top level one can be lite as possible
(if necessary.)

As for the requirement of building one subproject before the other, I am currently doing something like that now with the impl and tomahawk
subprojects.

I am currently working on the examples.  If I get time later on
tonight I will try moving things around. For now I want to finish up this current phase of the build and figure out what challenges remain
for either approach.

Thanks for the input.

sean

On 6/24/05, Bill Dudney <[EMAIL PROTECTED]> wrote:

Sean,

My thoughts;

5 sub-projects, the main spot to live for our stuff

api
     src/java
     ...

share
     src/java
     ...

impl
     src/java
     ...

tomahawk/
     src/java
     ...

examples
     src/java
     ...

3 projects with externals
core/
     api/
     share/
     impl/

current
     core/
     tomahawk/
     examples/

extensions <-- not sure this is needed but it would be useful for
people working just on the tomahawk stuff
     core/
     tomahawk/


I really like the idea of a common set of targets in each of the
projects. I'm not sure we can make it so that they are all the same
though but here are my initial thoughts, assume the download- depends
has already happened;

'ant dist' <-- build the product from this project (i.e. api.jar,
share.jar, examples.war etc)

We define a property for each of the sub-projects products
myfaces.api.jar
myfaces.share.jar
myfaces.impl.jar
myfaces.tomahawak.jar
myfaces.examples.jar

Any dependency to the other sub-projects would be meet with these
properties.

so from tomahawk or examples (the sub-projects with the most
dependencies) you'd have to run 'ant dist' in each of the 3 sub-
projects before you could build either. From impl you'd have to have
run 'ant dist' in both api & share.

In the 3 projects (core, current & extensions) you could run ant dist
to get a .tar.gz file for distribution.

I don't think this lends its self well to one build file to rule them all. but I think that is ok as long as we have 2 build files, one for
the sub-projects and one for the projects.

Also we should have a default set of properties that is set assuming
the 'download-dependencies' was called. If someone wants to do
something else they can  with the build.local.properties file.

Thoughts?

-bd-

On Jun 24, 2005, at 9:37 AM, Sean Schofield wrote:


Bill,

I see your point. I've been grappling with some of these issues as I work on the build for the entire project and each of the subprojects.

Here is what I am thinking. If you can check out current and run 'ant download-dependencies dist-all' you get all of the jars and javadoc. Also if you checkout tomahawk *only* and run the same command you get
the same thing but for tomahawk only.  Finally, as a developer you
should be able to work in any one of three setups: current
(everything), core (api + impl), or just tomahawk.

If you are working in tomahawk you should be able to make and commit changes to the share code. Impl does need api but its not really a stand alone subproject. In fact, I had initially made it part of the same subproject core. Compiling them seperately, etc got to be a pain
though.

I'm thinking of creating a "core" external that would checkout these
two projects.  Like current but minus tomahawk and examples.

Thoughts?

sean

On 6/24/05, Bill Dudney <[EMAIL PROTECTED]> wrote:


Hi Sean,

On Jun 24, 2005, at 9:11 AM, Sean Schofield wrote:



No the share code is right. Tomahawk needs it too. This way you
can
check out the tomahawk subproject by itself and compile it (without
downloading the impl subproject.)




Well, impl needs api but its not linked in via a share. I was
thinking that if you get all three of the 'subprojects' (api, impl & tomahawk) you would have to build api, copy the jar into impl, build impl and copy api & impl jar files into tomahawk. That would avoid the duplication wouldn't it? Share would have everything linked in
(once) and you can make the build smart enough to do all that for
you.

I think this manual process when using the sub-projects is consistent with the idea of having a current project. The 3 subproj's are for people who know and only want to work on the pieces. current is for
people who want to work on the whole thing or who want to work on
tomahawk without having to thinking about the other sub- projects etc.



When you check out current, you do get two copies of the share code but they are linked. So if you make a change to impl/share/ src and
check in you will see it in tomahawk/share/src after you update.




OK for people who know but IMO this will be a constant point of
confusion for new people trying to get started with developing
MyFaces.

TTFN,

-bd-



sean

On 6/24/05, Bill Dudney <[EMAIL PROTECTED]> wrote:



Hi Sean,

So far so good!

I've tried the 'download-dependencies' and it works fine except for the 1.2 version of commons-validator.jar which is to be expected
until that is released.

The myfaces-current looks good except for getting multiple
copies of
the share code, is that expected?

myfaces-current/
     api/
         src/java
     build/
     examples/
     forest/
     impl/
         share/src  <-- share src, this is where it belongs
correct?
The 'home' of share if I'm reading the svn:externals correctly.
         src <-- impl src
     sandbox/
     tomahawk/
         share/src <-- share src, I did not expect this
         src <-- tomahawk src

If this is just noise for you now please feel free to let me
know, I
don't want to make it more difficult for you.

Thanks again,

-bd-


On Jun 24, 2005, at 8:00 AM, Sean Schofield wrote:




errr....

https://svn.apache.org/repos/asf/myfaces/current



On 6/24/05, Sean Schofield <[EMAIL PROTECTED]> wrote:




Martin,

I'm still working on the build so I haven't had a chance to post
instructions yet.

Try https://svn.apache.org/asf/repos/myfaces/current

It takes a little while but that has nothing to do with the
reorg,
just the volume of files. If its hanging on you there might be a
problem with the SVN server or on your end.

Keep me posted.

sean

On 6/24/05, Martin Marinschek <[EMAIL PROTECTED]>
wrote:




Hi everyone,

how do you guys handle the checkout of the newly laid out
subversion
tree? I am trying to checkout all at once, but both Tortoise
SVN and
the subversion command line client (on my windows box) stop dead
sometime during the process (it seems to be that there is
just too
much to checkout if all the branches are coming out as well?).

What to do instead? I don't want to checkout only trunk in every subdirectory of MyFaces, that would take to long I think, and I
couldn't do a single update anymore.

Does anyone have suggestions to solve this problem?

regards,

Martin

































Reply via email to