Contributing to ClojureScript

Contributing to ClojureScript

Ways to Contribute

There are many ways to make a meaningful contribution to the ClojureScript community:

  • Advocate for the use of ClojureScript in your organization

  • Use ClojureScript and share your experience via talks, blogs, etc

  • Start or join a local meetup

  • Help new ClojureScript users in Slack or other forums

  • Create or provide patches to open source libraries

  • Create or improve ClojureScript tools

  • Write guides or reference documentation for libraries

  • Write intros or getting started guides for tools

  • Create ClojureScript podcasts, screencasts, or videos

  • Give a talk at a conference

  • Write an article or book

  • Start a ClojureScript podcast

  • Test alpha or beta releases of ClojureScript on your code base and provide feedback

Editing this Site

If you are writing a guide, making an event, or creating a resource, please consider contributing to this web site, All of the content is stored in GitHub and pull requests and issues are accepted. For more information on how to contribute, see the page on contributing to the site. Every page has a link to the corresponding source file in the bottom right corner. If you have an idea for a new guide or updated documentation, please file an issue for discussion.

Reporting Problems and Requesting Enhancements

The Clojure team provides a forum where users can ask questions, submit potential problems, and request enhancements to Clojure, ClojureScript, or Clojure contrib libraries. For all of these cases, please ask a question on the forum. Mark the question with tag problem for potential problems and request for enhancements. The community and core team will assess the issue and determine whether to file an issue in the jira tracker. If an issue is filed, the link will be added to the question and it will be tagged with jira.

If you are looking to provide feedback on an issue in jira, please search the forum for the equivalent issue by title and add your feedback there as an "answer" instead.

The development teams for these languages and libs will use the question votes to prioritize their work in jira towards the next release.

Making a contribution

If you have a proposal for ClojureScript, please post it as a question on using the ClojureScript category and label it request. ClojureScript developers will help you determine whether this idea is a good fit for ClojureScript and a patch is wanted. If you would prefer to have a real time discussion before investing in a more considered proposal, the #cljs-dev Clojurians Slack channel is very active.

If the ClojureScript developers indicate this is a useful thing to do, please follow the process to become a contributor. This requires signing the Contributor Agreement and requesting access to the ClojureScript jira account.

Contributor Agreement

Following the lead of other open source projects, the ClojureScript project requires contributors to jointly assign their copyright on contributed code. The Contributor Agreement (CA) gives Rich Hickey and the contributor joint copyright interests in the code: the contributor retains copyrights while also granting those rights to Rich Hickey as the open source project sponsor.

The CA is derived from the Oracle Contributor Agreement (OCA), used for OpenJDK, Netbeans and OpenSolaris projects and others. There is a good OCA FAQ answering many questions.

The CA does not change the rights or responsibilities of the Clojure community under the Eclipse Public License (EPL). By executing the CA, contributors protect the Clojure code base, enable alternative licensing models, and protect the flexibility to adapt the project to the changing demands of the community. In order for the CA to be effective, the Clojure project must obtain an assignment for all contributions. Please review the CA for a complete understanding of its terms and conditions. By contributing source code or other material to Clojure, you represent that you have a CA with Rich Hickey for such contributions. In order to track contributors, you understand that your full name and username may be posted on a web page listing authorized contributors that is accessible via a public URL.

Instructions for submitting the agreement

Fill out and submit the Contributor Agreement (an online e-form)

Please see the Contributing page for a collection of resources on tickets, builds, patches, source, and more. If you’d like to submit a patch, please follow these guidelines on the preferred process for submitting.

Many thanks for your contributions to ClojureScript!