"Philippe Marschall" philippe.marschall@gmail.com writes:
23 Aug 2007 17:39:48 -0400, Lex Spoon lex@lexspoon.org:
I would like there to be an easy way to post to both indexes in addition to others. That's why I emailed the SqueakSource maintainer with code that posts a release to a package universe, in the same way SqueakSource used to do this to SqueakMap.
Exactly whom did you mail this code? Neither Adrian nor Lukas nor me did receive any mails.
March of 2005. :) There's nothing private in it, so I'll append it, although really the best place to go is the wiki page that has been made since then:
http://wiki.squeak.org/squeak/5899
I got no reply, and last I heard the SqueakMap button didn't work any longer.
It doesn't work because HTTPSocket is broken a bit more than it was before.
Right, I didn't mean to point fingers anywhere. It is simply unfortunate that nobody has bothered to get this working again. I used it all the time when it worked.
I seem to recall some mailing-list discussion on this issue, and what I recall is that it has something to do with redirects in response to a POST. I'm not sure, though. A little googling over the mailing list would probably turn it up.
-Lex
X-Mailer: Celeste 2.0..6599 Date: Wed, 9 Mar 2005 21:19:11 -0400 Subject: posting packages to a Universes server To: renggli@student.unibe.ch From: "Lex Spoon" lex@cc.gatech.edu
Hey, Lukas,
SqueakSource rocks! One of the niceties about it is that you have added a button for publishing to SqueakMap. If you would like to do the same for Universes, I have appended the code. Just load YAXO and Universes from SqueakMap, and the below code should work.
Ideally, the code should not have this hack about "m class == UMAddPackage". Instead, you should ideally add a #applyToSqueakSource: method to appropriate classes in the UMessage hierarchy, and then use polymorphism on the resulting classes. However, this simple hack should show how to get started.
The basic outline of the code is:
1. create the package object 2. create a universes client 3. send an "add package" message using the client 4. wait for a response from the server
The client will handle all of the networking for you.
Regards,
Lex Spoon
======== newPackage _ UPackage new. newPackage name: 'BBBPackage'. 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 ifTrue: [ ^self ] ]. (Delay forSeconds: 1) wait. ].