How do you make a Squeak "package" that can be distributed?
There are several steps to it.
First, you need to produce a package to begin with. There are a variety of ways to do this:
If your code is simply a bunch of standalone classes, then you can use the "file out" menu item from the browser to produce a ".st" file.
If you have learned to use ChangeSets you can file it out using a ChangeSorter to get a ".cs" file. Ideally, gzip the file after you have filed it out. Note that the Update Stream uses change sets, so this is the format you should use if you want to post something as an update.
For long-running projects, you should probably learn and use Monticello, which will create ".mcz" files for you containing your code.
For publishing Squeak objects, instead of code, you probably want to create a project and save it to a ".pr" file. The "save project on file" menu item of the world menu will do this for you.
If you want to distribute multiple files simultaneausly, then you can use SARInstaller to build a SAR file. A SAR file can include files of any kind... including other SAR's!
Once you've exported your package, you should test it by loading it into a new image and verifying that it works. This is a good way to make sure that you got everything into the package. It's also a good way to learn about anything your package depends on being loaded before it.
Next, you might want to make your software publically available. There are many good ways to do this:
Create a page describing it on this swiki. You can make a page for your project and then use the upload button to attach your package file to it. Create links from other pages. Of course any other web page will do as well.
Register it SqueakMap and provide the web link to there to the package.
Any web site or ftp site that you can post to.
Finally, you might want to advertise your package, in various ways:
Send an email to the Squeak developers list with an [ANN] (announcement) tag.
Mark Schwenk: You really should use Monticello to organize your packages and maintain your source code. Monticello doesn't support the concept of "bundles" yet, so you might still distribute as SAR files.
Also see:
FAQs should contain generally agreed information. For discussing the pros and cons of package groups (Lex Spoon calls them "Universes" and is using this FAQ as a mean of propagating his view) see the discussion on the mailing list.
It is generally agreed that universes are a place that packages may be posted to achieve visibility. People disagree on whether they are a good place to post things, but that is a different issue and is not what I posted. It is reprehensible to delete the factual information I have posted and then smear it. If you have an argument to make then make it; don't try to make uncomfortable information disappear. And why is it uncomfortable anyway? It's working code that helps out the community! -Lex Spoon