"J J" azreal1977@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.
However:
- 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 wiki, too):
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@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?
-Lex