How to Contribute to Open Dylan

This document only discusses how to make changes to the opendylan repository. For external libraries (including ones that are pulled into opendylan as submodules) just make your changes, run the test suite, and submit a pull request to the appropriate repository.

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.

  • dylan-hackers contains repositories of historical interest, such as old Harlequin Dylan documents and gwydion, the CMU implementation of Dylan which is no longer maintained.

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.

Making Changes

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 https://github.com/dylan-lang/opendylan

You’ll want to fork this repository so you can push changes to your fork and then submit pull requests.

In general, when making changes to the compiler and core libraries you’ll use the Makefile to build and test your changes. See BUILDING.rst in the top-level directory of your checkout for details on how to install required software and build the compiler.

  • Fork the repository. You will need to have a GitHub account to do this.

  • Create a topic branch with git checkout -t -b my-branch.

  • Build and test with make and make check.

  • Commit 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.

Guidelines

  • 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.

Licensing

All materials in this repository are licensed under the terms expressed in the current License.txt file.

We are not interested in incorporating any source code using proprietary or copyleft-style licenses.

Open Dylan is under the collective ownership of the Dylan Hackers.