Package Universes

Lex Spoon lex at lexspoon.org
Fri Aug 31 17:02:35 UTC 2007


"Philippe Marschall" <philippe.marschall at gmail.com> writes:
> 23 Aug 2007 17:39:48 -0400, Lex Spoon <lex at 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 at student.unibe.ch
From: "Lex Spoon" <lex at 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 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 ifTrue: [ ^self ] ]. (Delay forSeconds: 1) wait. ].




More information about the Squeak-dev mailing list