[ANN] stable package universe for 3.9
lex at cc.gatech.edu
Tue Nov 21 10:14:59 UTC 2006
"J J" <azreal1977 at hotmail.com> writes:
> >Pier and Seaside can be just loaded from Monticello, as it should be.
> >Nothing else is possible since they are developed using Monticello.
> >- They get updated regularly, sometimes several times a week.
> >- The loading might include some gui interaction (asking for passwords
> >and stuff)
> >- They have a large list of depencies, that's what the scripts are for.
> It is this last one that made me think these packages could benefit
> greatly from being part of the universe system. Then instead of
> having to keep your dependencies up to date with a script you could do
> it in the universe system and perhaps that system could help manage it
> a bit. It's not that I think the current method is broken, just that
> it could be easier.
Yes, if there are a lot of dependencies, then I would think setting up
a package universe would really help you. You can either use the main
public universe, or you could set up a server of your own. Note that
universes combine nicely: you can very well pull packages from the
union of a private universe and a public one.
Back on the original question, let me mention two things that make it
easier to post new releases than you might think.
First, once you post a package the first time, you do not have to fill
in all the fields again. There is a button "new package version"
which lets you just change the parts that have changed. Usually, you
can simply change the version number and the download URL.
Second, it is only a little bit of code to post, so you can automate
it if you like. Here is the relevant code (I'll go post this on the
newPackage _ UPackage new.
newPackage name: 'FFFPackage'.
newPackage depends: #('dependency1' 'dependency2').
newPackage description: 'here''s an example package'.
newPackage homepage: 'http://www.squeak.org' asUrl.
newPackage url: 'http://www.squeaksource.com/whatever' asUrl.
newPackage version: (UVersion readFromString: '1.0').
newPackage maintainer: 'Joe Blow <joe at blow.net>'.
client _ UUniverseClient forUniverse: UUniverse developmentUniverse.
client sendMessage: (UMAddPackage username: 'USERNAME' password: 'PASSWORD' package: newPackage).
[true] whileTrue: [ client receivedMessagesDo: [ :m | m inspect. (m class == UMPackageAdded or: [ m class == UMError ]) ifTrue: [ ^self ] ]. (Delay forSeconds: 1) wait. ].
You can put this in a workspace, or in a class method somewhere, so
that you can invoke it whenever you are ready to make a release.
Stepping back, I don't see how it can be much easier. I mean, even
during heavy development, is there not a difference between a
release and a Monticello commit?
More information about the Squeak-dev