How to contribute to Squeak
Last updated at 4:19 am UTC on 8 June 2018
Squeak is maintained by volunteers around the world using a simple community driven process known as the Development Process
Contributions may take different forms.
See section below for detailed steps.
- One may fix a defect in code or help text,
- create new graphical elements like icons or fonts,
- extend the base system with new frameworks
- or even build a whole application package.
Squeak has a built-in package management tool called Monticello that makes it very easy to gather and upload ChangeSet to repositories.
Many packages also use Monticello for version control. It started with http://www.squeaksource.com/ as the repository which is still in use. Newer projects are hosted at SmalltalkHub and SqueakSource3.
Contributing to the Base system
If you want to contribute an improvement you can submit it to the Inbox repository. Developers on the squeak-dev mailing list will be notified and the change might be discussed there. Accepted changesets are merged into the main trunk by Core Developers and the rest are moved to Treated repository.
Contributing Bug Fixes
- Commenting Bugs and Fixes is where you can help even if you're completely new to Squeak. For example, if you had a problem, asked on the mailing list, and someone more experienced fixed it, you could help out by commenting bugs and fixes.
- Reporting Bugs and Fixes explains what to do if you find or fix a problem, or want to improve functionality in the image.
Contributing a package
SqueakMap If you write a cool package, this is where you should place it. This catalog allows anyone to install your code easily from Squeak.
Detailed steps for submitting a changeset
... adapted from Dave Lewis post in squeak-dev mailing list
- Create an account on source.squeak.org
- Using a web browser, go to http://source.squeak.org.
- On the left side of the web page, click on "Register Member".
- Fill in the information on the form. In the "Initials:" field, use your regular author initials, same as for method stamps.
- Click "Save".
- Remember the password that you just defined, because you will use it in the next step below.
- Open the inbox repository
- In your Squeak 5+ image, open a Monticello Browser.
- If you don't see http://source.squeak.org/inbox as a repository in the right hand pane of your Monticello browser, add it:
- Click on +Repository
- In the dialog, change "http://source.squeak.org/inbox" in the location, put your author initials in the "user" field, and put your new password in the "password" field.
- Click "Accept"
- Verify that http://source.squeak.org/inbox now appears as a repository.
- Verify the differences between your image and the latest version in the trunk repository:
- Update to latest version (world -> help... -> update code from server)
- In the Monticello browser, highlight your package on the left, and repository "http://source.squeak.org/trunk" on the right.
- Click the "Changes" button on the top.
- Verify that these are the changes that you want to submit, no more and no less. Use Change Sorters to split or merge changes into different sets. If something looks wrong, stop and ask for tips on the squeak-dev list.
- Submit your changes to the inbox
- Now highlight the "http://source.squeak.org/inbox" repository on the right pane of the Monticello browser, and your package on the left.
- Click the "Save" button on the top of the Monticello browser.
- In the dialog that opens now, find the "empty log message" text. Replace it with your description of what you are changing. This would be the same kind of description that you would put into the preamble of a change set.
- Click "Accept"
- Wait for the changes to be sent to the inbox repository.
- Follow ups
- Your new update should now appear in the inbox. In the Monticello browser, highlight the inbox repository and click the "Open" button at the top. A Repository Browser will open. Click the "Refresh" button, and you should see your new entry listed. You can also find in through the web interface for http://source.squeak.org.
- On the squeak-dev list, a mail notification should appear within a few minutes to notify the list about your new submission.
- You can reply to that notification on the list, or to your earlier mail thread to offer any other explanations or to ask someone to look at your inbox submission and move it to trunk (or to "treated inbox" if it is not suitable for trunk for some reason).
Handling Commits from the Inbox by Core Developers
If a change in the inbox is accepted the following should be done by a core developer to merge it:
In case there are no new commits in the trunk repository, core developers can also simply use the "Move to Trunk" button on http://source.squeak.org/inbox.
- Merge the commit in an up-to-date trunk image
- Make sure the commit works with the up-to-date image
- Commit the merged state
- The merge commit has now two ancestors: the previous head of the trunk repository and the commit from the inbox. To provide a consistent history, we have to move the inbox commit to the trunk repository. Therefore go to http://source.squeak.org/inbox and look for the commit under versions. After clicking on the version you see details of the version and two buttons which allow you to move the version either to trunk or the treated inbox. Use the move to trunk button to move the change to the trunk.