Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


  • maintain your library and respond to questions/issues that arise.
  • do your work on the master branch, or (if you are working on a significant chunk you want to keep temporarily separate) on a feature-specific branch that you create yourself.
  • use the Maven Release option on to make releases.
  • coordinate with other committers before making changes to their libraries.
  • accept contributions from others only if they have signed the CA (see for the list) and if they submit a patch. 


  • please do not push to the release branches (names like 1.2.x). The Clojure/core team uses these to make the official, tested release.
  • do not take non-contributor patches.
  • please do not take pull requests from contributors. Patches only. Yes, it is inconvenient. Sorry.
  • do not change the version number in pom.xml - use the Maven Release process mentioned above.
  • do not make a 1.0.0 release without full review and approval from Clojure/core!

Here's the process outline for what it takes to become a committer:

  • Get your CA on file
  • Join the clojure-dev mailing list
  • Create a JIRA account
  • Create a Confluence account as well if necessary (with the same login details; in theory they are linked and creating one should create the other but it practice it doesn't seem to work all the time)
  • Let Clojure/core know your github username and JIRA username so they can set up the correct permissions
  • Clojure/core need to create your account on as well - see below

Setting up a new contrib repo on github (thanks to Fogus for documenting this; project:

  • Create a new GitHub repo (requires Clojure organization admin privileges):
    Create a new GitHub repo
    • Specify project name (must be approved by Clojure/core)
    • Specify description
    • Team: Contrib Commit
    • Add Post-Receive URL Service Hook: 

CA, clojure-dev ML, JIRA, Confluence,

# How I set up core.cache



    • Disable Issues tab


  • Create a new


Yes, please. Just follow the format in the rest of that file. I've

already done it for core.memoize and core.cache.

There are 3 more step after that, which require an admin account in



  • JIRA project (requires JIRA admin privileges):
    • Specify name (same as GitHub project name)
    • Specify key (approved by Clojure/core, derived from project name)
    • Specify project lead's JIRA account
  • Setting up builds (requires Hudson admin privileges, except step 2):
    • Create Hudson user account for authors
    • Edit ci_data.clj in the repo add the new project / update authors (so they can run builds / cut releases)
    • Run Hudson job
    • Force Hudson to reload its configuration files