Skip to end of metadata
Go to start of metadata

The first release of a contributed library with a major version number of "1" requires approval by Clojure/core.

In order to be approved for a 1.0.0 release, a contrib library must satisfy the following criteria (work in progress, original list by Stuart Halloway):

  • Stability and production use.
  • Some amount of time in #1 to get community feedback. (How long?)
    • Time and number of installations both factor in here - wide usage seems important to me (Sean).
  • Conformance with Clojure idioms.
    • In particular: Library Coding Standards.
    • Current discussion on ML about 'foo' function / macro delegating to 'foo*' implementation and whether that is idiomatic.
  • Careful review to avoid unnecessary dependencies.
    • Consensus from previous discussions seems to be:
      • Dependence on core is fine.
      • Dependence on new contrib is OK if really necessary.
      • Dependence on anything else is subject to intense review and challenge.
  • Simplicity / Power / Focus.
    • This is a bit wooly and will need refinement to help contrib library developers.
    • Composability seems a common theme in discussions:
      • Prefer functions over macros.
      • Prefer explicit arguments over bindings.
    • On macros, the Library Coding Standards says to expose a function first and add a macro only where it provides ease-of-use.
  • Avoid AOT requirement if at all possible.
  • Motivated maintainer.