iSqueak

stéphane ducasse ducasse at iam.unibe.ch
Sat Jun 18 16:44:30 UTC 2005


Doug

what we should fix is what do we do with the changes that are in  
3.9alpha stream.
I also have some new changes/fixes on my disc ready to be added to  
the stream.

Stef

>> Actually, instead of having "approval flags" I'd recommend having  
>> "release repositories". E.g., consider that we're setting up a 3.9  
>> repository which defines the "latest" package versions for  
>> everything that ought to be in 3.9.
>>
>> Rather than "approving" a package version in their own repository,  
>> a maintainer (or release master) would publish (or copy) package  
>> versions to the release repository. This has a number of extra  
>> advantages - fixes that turn out to be important for a release can  
>> be put into this repository but may never appear in the "master"  
>> repository for the package (because it might have been a last- 
>> minute workaround). Integration fixes can be done for the release  
>> and then fed back to the package owners.
>>
>> Basically, you're defining your own package environment, treating  
>> the repository as a distribution and decide when you want to  
>> update the distribution from the latest package versions developed  
>> by the owner of the package.
>>
>
> I think this sounds good.  It almost seems like the only way to do  
> it, actually.  (For now, at least.)
>
> The other thing I like about this is that it handles the case in  
> which you're making a big change in a release which needs to cut  
> across several packages.  All the packages are in the same  
> repository, and they can be updated at the same time.  It's more  
> cumbersome if they're spread across different repositories,  
> especially if the person making the change only has access to some  
> of the repositories.
>
> Certainly if you're doing package-detangling work, you'll need to  
> make changes to multiple packages at once.
>
>
>>> The initial maintainership model could err on the side of openness,
>>> maybe even having some people with write access to all packages.   
>>> Then
>>> we could restrict it a bit more later.
>>>
>>
>> With the above model you could restrict commit rights for the  
>> release repository to the people actually working on the release,  
>> whereas access to the "master" repository is limited to whatever  
>> the package owner decides. This seems like a good model to me  
>> because it leaves the responsibilities in the right places.
>>
>
> Ok, so a group of release people would have commit rights to the  
> (3.9) release repository.  I wonder if we might also want the  
> package owners to have commit rights to their packages in the  
> release repository as well.  (Although I guess commit rights are  
> repository-specific, not package-specific?)  Because the release  
> repository may end up being the location of the de facto "latest/ 
> bleeding-edge" version of the package, whereas the "master"  
> repository for the package is more for stable versions.
>
> Well, I guess it's up to the package owner whether they want to do  
> major new development in their own master repository, but then  
> they'd have to worry about merging with the release repository  
> version later.  In some cases that might make sense.  I guess it  
> depends on the package... with something like Kernel, probably all  
> development would happen in the release repository.  With something  
> more external like SqueakMap, most development might happen in the  
> owner's master repository, with the latest version being copied  
> over to the release repository occasionally.
>
> So, a typical scenario would be that a package, say Network, goes  
> through a number of new versions in the release repository during  
> 3.9 development, from Network.3 to Network.17 or something.  (My  
> Monticello ignorance is showing here... I assume that every commit  
> to the package results in a bumped version number?  Looks like I  
> will be getting more familiar with MC soon!)
>
> So anyway, 3.9 final contains Network.17.  The Network package  
> owner may decide to not let any of the interim versions into the  
> master repository for Network, and only add the final Network.17  
> version.  Or he/she may decide that Network.12 is stable enough to  
> be generally useful, and include that one in the master repository  
> as well.  But it might be easiest for the package owner to add new  
> enhancements into the one in the release repository, so there's no  
> merging to worry about later.
>
> As far as SqueakMap goes, I'd imagine that the final/stable  
> versions in the master repositories would typically all be  
> available on SqueakMap for people to use, but we probably wouldn't  
> bother with making all of the interim/alpha release repository  
> versions (e.g. Network.4, Network.5, etc) available on SqueakMap.
>
> Just some thoughts.
>
> Are we ready to go ahead with this? :-)

Yes we should try that.

Stef




More information about the Packages mailing list