Contributing to the Chapel Project
- 1. Where to start
- Everyone interested in contributing to the Chapel project should start from a user's perspective. If you aren't already familiar with the Chapel language, see How Can I Learn Chapel? If you don't already have access to a Chapel compiler, download and install a copy, ensuring that you can compile and run example programs.
- 2. Write a Chapel program of your own
- Now that you have a working installation of Chapel, try writing your favorite benchmark, test case, or homework assignment in Chapel. This experience may cause you to run into something you find poorly documented, a bug, or a performance surprise. Filing these as GitHub Issues is a great starting point for contributing to the project. Sometimes this process will lead you to find issues that you can fix yourself, since you're already familiar with the problem.
- 3. Learn the mechanics of contributing
- Now that you've written your own Chapel program, familiarize yourself with Chapel's contributor guidelines. If you want to observe how the development process works, browse (and optionally subscribe to) GitHub issues and pull requests.
- 4. Find a task to work on
- Now that you're familiar with Chapel and the process for contributing, see if you can find a GitHub issue with the good first issue label that you think you can make progress on. Alternatively, if you have a feature or improvement to Chapel that you'd like to propose (e.g., a new library you'd like to provide), open a GitHub issue doing so to get buy-in for the effort. It's OK to ask for help with issues, but please see the "Dos and Don'ts" section below first.
- "I want to contribute a library to Chapel, should I open a PR?"
- No, you should start your library as a mason package. Introducing a new standard library to be distributed with Chapel is an effort that requires significant community discussion.
Dos and Don'ts of Early Interactions with the Community
Do:- Read and follow our Code of Conduct
- Brag about cool uses of Chapel on the Chapel Discourse site or Gitter channel
- Comment on an existing issue that is relevant to what you are working on
- Make new issues for problems you find
- Contribute a PR fixing documentation (see Building Chapel Documentation for tips)
- Ask questions whose answers would be of interest to others on Stack Overflow
- Discuss any large development effort as a GitHub issue, such as modification to the language, a new standard library, or a new feature in the compiler.
- Directly message developers via email or IRC to introduce yourself or ask technical questions. Initial interactions should be public.
- Introduce yourself and ask how you can contribute on chapel-users. You will just be pointed to this page.