Jason Dillon wrote:
Urg... this is another thing about Maven that really bothers me... we are SO completely dependent on other projects for our own project to succeed.

This would not be a problem if we had our own repo that we had complete ownership of. We could fix any poms and install fixed plugins.

How would we get these fixes back into the community? I worry that having our own repo would make it harder to assure that we are using generally available versions of other projects, and make it harder to contribute our fixes back to those projects. For instance, it took me some time to get an m2 build of howl working and find out how to get it published, but the result is IMO much better for both howl and us than if we simply said "we'll just stick a pom for howl in our private repo".

We could use JIRA to manage any customizations that we have been forced to make to get _our_ build working, and then work with the external groups to merge the changes and ultimately get sync'd up with more official drops.

BUT, I still believe that it is in our communities best interest to maintain our own repository.


And... the build would be completely repeatable. Chances are that in a year or two, if anyone tries to build anything with Maven off of an old branch it will fail miserably. IMO this is not acceptable.

Future build failures should only result from someone trashing the supposedly permanent ibiblio repo. As far as your other points, any time we decide to use software written by some other community, we are depending on them to do some work for us. I think we need to adopt a process that assures our contributions to their project in fact get back to their project in a timely fashion.

I agree completely. What I am suggesting is that we use our own repo to facilitate this process while letting our project move forward. The alternative is that we must work in lock step with every other community... where a trivial change to a pom takes weeks to get implemented and pushed.


I really don't like to have to go and check out a bunch of external tools or libraries and then go step by step, configure and build them... and hope like heck that their builds work all of the time, and pray that Maven does not freak-out halfway through a long build due to a missing dependency or repository timeout... just to get the right bits in place to maybe get our build moving forward,

Seems to me the alternative is to not use anyone elses code, which I find unacceptable.

I don't believe that not using thirdparty code is an option. We just need to find and implement a better way of dealing with them.

I do believe that for a large project like Geronimo, that the central remote repository model breaks down and is not very functional for current builds or for repeatable builds of older code.


I surely don't have all the answers, but I'd prefer that anything we adopt doesn't result in our having all sorts of private changes that are not accepted by projects we use.

I do not believe that this will be the case. The repo would mostly exist to support the longevity of our builds and for short-term fixes while we wait the term and lobby external groups to get changes pushed back into their community.


So, some kind of geronimo repo that has a subset of publically available stuff is ok with me, but putting private patches that aren't from the originating project seems like asking for trouble.


I agree, though as mentioned above, some artifacts may be custom in the short-term. For example, we could "fix" the xmlbeans artifacts and poms, deploy them to our repo and then track the progress of integrating them back into the main xmlbeans community with JIRA. This is a case where we have a private version in the repo, but it will only live there (with a specialized version of course) until the time is passed when the xmlbeans team can work in the changes.

"In theory there is no difference in theory and practice.  In practice there 
is."

I agree with your comments but I also recognize that it is a slippery slope. Who is responsible for tracking the changes and lobbying the other groups? My limited experience tells me that this will likely end up being a set of forked code from other projects that will be very difficult to manage. for instance...say a quick change is made to XMLBeans and it get's put into our "local" copy. 4 months later the XMLBeans folks have not done anything with the patch and now after discussing it further decide that it doens't fit with their direction. During that time Geronimo has relied on the patch and changing direction is going to be painful.

I realize this is a worse case scenario but we had a similar situation with the Axis guys in cutting a 1.4 release for us. It took about 6 months and I think was only done because David Blevins was made a committer.

In order to consider this it would be great if you could flush out the different scenarios as you see them and how we would handle them. I'm not the most administrative person on the planet and what you are proposing sounds great and scare the heck out of me at the same time ;-0


--jason



Reply via email to