The first step in the contribution process is to open a ticket. Please do so through JIRA and not through GitHub. This ticket can be created by anyone with or without a CA. It is OK to create a ticket and submit a patch at the same time, but please be aware, if the ticket is later rejected, the time spend developing the patch will be lost. Therefore it is recommended that coding on non-trivial patches should be postponed until after the vetting process. One possible advantage to submitting a patch before the ticket is vetted, is that it might be vetted and screened all at once by the screener, if they choose to do that, saving some time.
If you have questions about whether some behavior of Clojure is a bug, or submitting bug reports or enhancement requests, please ask on the clojure Google group.
You need an account on dev.clojure.org in order to create a ticket. Click on the "Sign up" link near the top right of this page to do so. If you don't see one, but instead your name, you've already got an account and you are logged in.
Qualities of a Great Ticket
All tickets should have:
- Concise title
- Summary of exactly one problem or enhancement
- Enhancements should have a statement of a problem they solve
- Correct categorization (Bug/Enhancement)
- Links to relevant prior discussion on clojure-dev, IRC, or email thread as appropriate
- Name of current patch under consideration
Bugs should have:
- Reproducible demonstration of problem (repl output is preferred, but test or benchmark may also be ok)
Tickets ready for screening should have:
- An accurate description of the approach being pursued to solve the problem
- A patch implementing that approach
- Tests demonstrating the patch
Tend Your Ticket
As work progresses on a ticket, it is common for it to accumulate discussion between submitter, screeners, and patch developers. As this occurs, it is essential to edit the ticket description to stay up to date. This most commonly means listing the current patch under consideration and a concise summary of the problem and solution. It may also be useful to list considered alternative solutions and why they were rejected.