You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by "Alan D. Cabrera" <li...@toolazydogs.com> on 2006/07/01 23:05:17 UTC

Re: Geronimo Repository (was Re: Unable to build using m2)

Jason, who are you replying to?  You accidentally cut out the person's name.


Regards,
Alan

Jason Dillon wrote:
>> 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 would expect that most of the localized changes would be to pom's 
> only and to install the correct version of the dependency in a 
> repository for our build to work.
>
> While I think that we may need to have a few cases where some code is 
> required to change, but in order for that to work, there must be 
> someone who is actively working with the external community to get the 
> changes in.  Otherwise, as you suggested it would turn into a private 
> fork... and IMO that is not acceptable.
>
> I believe that it would be the responsibility of the developer who 
> introduces the new version of the dependency to create a JIRA (in our 
> project) to manage the state of the dependency... AND be active about 
> getting the changes introduced in the target communities codebase.
>
> Peer review will also be used to help ensure that we keep things 
> moving smoothly.  Like, if a custom version of a dependency exists for 
> months and months and goes no where, then we need to react and either 
> help the developer get the changes moved or reevaluate the need for 
> those changes, etc.
>
>
>> 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.
>
> Um, did it take 6 months because he was a committer?  Meaning it would 
> have taken more than 6 months if he was not?  Yikes!
>
>
>> 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
>
> Well...  I'm not sure I know of all of the scenarios, but mostly I do 
> not see that we will have custom forked versions of others work in our 
> repository, though on some occasions yes, we will... but only for a 
> very limited and controlled period.
>
> For example, I have been using the RetroTranslator m2 plugin in GShell 
> for many weeks now.  I have been very active about creating patches 
> for the Mojo team, getting changes needed into this plugin so that it 
> can be more useful.  But, it takes the Mojo team time (some times a 
> long time) to pull in those changes... or as is the current case, to 
> publish the plugin with those changes already accepted and committed.
>
> So we have already gotten the code in the target communities 
> codebase... but it is taking a long time to get a new release (or 
> SNAPSHOT) pushed out to a repo so that we can actually use it.
>
> This is where our repository comes in.  We publish a SNAPSHOT of the 
> plugin to our repository so that we can continue to move forward using 
> the plugin, and in the background keep on the Mojo peeps to get the 
> thing official.
>
>  * * *
>
> There is also the other-side of the repository, which is to allow 
> builds to be reproducible in future months, years.  To have 100% build 
> reproducibility we need to have much more control over the repository 
> which dependencies are pulled from.
>
> The reliance on so many external repositories is a build anti-pattern 
> and make is very difficult (some times impossible) to ensure that 
> builds will just work in future days, months, years.  Machines crash, 
> data gets lost, which we have recently seen and suffered from.  Having 
> a repository that is controlled by the same system as our sources will 
> generally mean that at any point in time when when have a valid scm 
> codebase, then we also have the valid dependencies.  Then when the 
> Codehaus disks die again, or a worm eats thought all of Ibiblio, then 
> we can still function and continue to work.
>
>  * * *
>
> I believe that both of these reasons (staging w/external groups and 
> build reproduction and isolation from external failure) warrant the 
> creation of an internal SVN-backed repository that exists solely for 
> the use by Geronimo, and its child projects.
>
> --jason


Re: Geronimo Repository (was Re: Unable to build using m2)

Posted by Jason Dillon <ja...@planet57.com>.
Ooops... I got trim happy.  This was a reply to Matt.

--jason


On Jul 1, 2006, at 2:05 PM, Alan D. Cabrera wrote:

> Jason, who are you replying to?  You accidentally cut out the  
> person's name.
>
>
> Regards,
> Alan
>
> Jason Dillon wrote:
>>> 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 would expect that most of the localized changes would be to  
>> pom's only and to install the correct version of the dependency in  
>> a repository for our build to work.
>>
>> While I think that we may need to have a few cases where some code  
>> is required to change, but in order for that to work, there must  
>> be someone who is actively working with the external community to  
>> get the changes in.  Otherwise, as you suggested it would turn  
>> into a private fork... and IMO that is not acceptable.
>>
>> I believe that it would be the responsibility of the developer who  
>> introduces the new version of the dependency to create a JIRA (in  
>> our project) to manage the state of the dependency... AND be  
>> active about getting the changes introduced in the target  
>> communities codebase.
>>
>> Peer review will also be used to help ensure that we keep things  
>> moving smoothly.  Like, if a custom version of a dependency exists  
>> for months and months and goes no where, then we need to react and  
>> either help the developer get the changes moved or reevaluate the  
>> need for those changes, etc.
>>
>>
>>> 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.
>>
>> Um, did it take 6 months because he was a committer?  Meaning it  
>> would have taken more than 6 months if he was not?  Yikes!
>>
>>
>>> 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
>>
>> Well...  I'm not sure I know of all of the scenarios, but mostly I  
>> do not see that we will have custom forked versions of others work  
>> in our repository, though on some occasions yes, we will... but  
>> only for a very limited and controlled period.
>>
>> For example, I have been using the RetroTranslator m2 plugin in  
>> GShell for many weeks now.  I have been very active about creating  
>> patches for the Mojo team, getting changes needed into this plugin  
>> so that it can be more useful.  But, it takes the Mojo team time  
>> (some times a long time) to pull in those changes... or as is the  
>> current case, to publish the plugin with those changes already  
>> accepted and committed.
>>
>> So we have already gotten the code in the target communities  
>> codebase... but it is taking a long time to get a new release (or  
>> SNAPSHOT) pushed out to a repo so that we can actually use it.
>>
>> This is where our repository comes in.  We publish a SNAPSHOT of  
>> the plugin to our repository so that we can continue to move  
>> forward using the plugin, and in the background keep on the Mojo  
>> peeps to get the thing official.
>>
>>  * * *
>>
>> There is also the other-side of the repository, which is to allow  
>> builds to be reproducible in future months, years.  To have 100%  
>> build reproducibility we need to have much more control over the  
>> repository which dependencies are pulled from.
>>
>> The reliance on so many external repositories is a build anti- 
>> pattern and make is very difficult (some times impossible) to  
>> ensure that builds will just work in future days, months, years.   
>> Machines crash, data gets lost, which we have recently seen and  
>> suffered from.  Having a repository that is controlled by the same  
>> system as our sources will generally mean that at any point in  
>> time when when have a valid scm codebase, then we also have the  
>> valid dependencies.  Then when the Codehaus disks die again, or a  
>> worm eats thought all of Ibiblio, then we can still function and  
>> continue to work.
>>
>>  * * *
>>
>> I believe that both of these reasons (staging w/external groups  
>> and build reproduction and isolation from external failure)  
>> warrant the creation of an internal SVN-backed repository that  
>> exists solely for the use by Geronimo, and its child projects.
>>
>> --jason
>