How to contribute to Open Dylan¶
The first thing you’ll need is a source checkout of the Git repository. The Open Dylan sources are hosted on GitHub, along with sources for the opendylan.org web site and many other repositories. If you don’t yet have a GitHub account and ssh keys, now is a good time to get them.
To checkout the main “opendylan” repository:
git clone --recursive email@example.com:dylan-lang/opendylan
You’ll want to fork this repository so you can push changes to your fork and then submit pull requests.
Aside from dylan-lang there are two other GitHub organizations that may be of interest:
dylan-foundry is Bruce Mitchener’s large collection of Dylan libraries.
Looking for Ideas?¶
If you’re looking for ideas on how you can contribute to Open Dylan or what others might find useful, please see our list of projects in the Open Dylan wiki or check out the list of bugs labeled Easy. If you have something in mind that isn’t there, feel free to talk with us or add it to the list.
Fork the repository. You will need to have a GitHub account to do this.
Create a topic branch with
git checkout -t -b your-contribution.
Commit your changes to your branch, putting each distinct fix in a separate commit.
Push your changes to your fork on GitHub.
Submit a pull request with your changes.
You almost always want to branch from the master branch.
Update documentation as necessary. Also, if appropriate, update the release notes, samples and other supporting materials.
We suggest following this note about git commit messages.
Follow the style guide for new code. When working in existing code, follow the existing style.
Do not make a lot of style or whitespace fixes in the same commit as other changes.
Use 2 spaces for indentation, never tabs. If you use emacs, dylan-mode does a decent job of indenting code.
In the near future, we will have our test suites working more reliably. We will also document the processes involved with updating and running tests. In the meantime, each library usually has a “tests” subdirectory with a test suite library named “*-tests”.