This page will provide a list of all the "old" contrib library namespaces from the 1.2 monolithic contrib, along with a brief explanation of its status and how to migrate code that depends on functions in each namespace. This page is a work in progress and will need input from all maintainers of the "new" contrib modules as well as folks with historical knowledge of the contrib library. If you have suggestions, updates, or comments on this page, feel free to email sean@worldsingles.com so that we can make this into the best possible migration resource!
If a clojure.contrib namespace is listed here but has no migration details, that means no one has volunteered to maintain that namespace. Part of the rationale for modular contrib is that there should be an active maintainer going forward so that the library can be kept compatible with new versions of Clojure. All the new modular contrib libraries are compatible with both Clojure 1.2 and Clojure 1.3 (and are mostly being automatically tested with Clojure 1.4 as it is being developed - as well as being tested with a number of different JDKs!).
If a clojure.contrib namespace is not listed here, it is most likely an old namespace that was either migrated somewhere else or deprecated as part of Clojure 1.2 (e.g., clojure.contrib.duck-streams mostly migrated to clojure.java.io, clojure.contrib.pprint migrated to clojure.pprint, clojure.contrib.shell and clojure.contrib.shell-out migrated to clojure.java.shell, clojure.contrib.string migrated to clojure.string).
If you can't yet switch to the Modular Contrib but you want to migrate to Clojure 1.3, you might want to look at Allen Rohner's unofficial version of Contrib 1.2 compiled against Clojure 1.3 to get you started.
Clojure.Contrib Namespaces
This section aims to document how to migrate from "old" contrib to "new" contrib.
- clojure.contrib.accumulators
- clojure.contrib.agent-utils
- clojure.contrib.base64
- Replaced by clojure.data.codec - lead Alex Taggart.
- Status: latest build status, latest release on Maven, report bugs.
- clojure.contrib.classpath
- Migrated to clojure.java.classpath - lead Stuart Sierra.
- Status: latest build status, latest release on Maven, report bugs.
- clojure.contrib.combinatorics
- Migrated to clojure.math.combinatorics - lead Mark Engelberg.
- Status: latest build status, latest release on Maven, report bugs.
- clojure.contrib.command-line
- Replaced by clojure.tools.cli (based on the clargon library) - lead Gareth Jones.
- Status: latest build status, latest release on Maven, report bugs.
- clojure.contrib.complete
- clojure.contrib.complex-numbers
- clojure.contrib.cond
- clojure.contrib.condition
- Replaced by Slingshot - Lead Steve Gilardi
- clojure.contrib.core
- Partly migrated to clojure.core.incubator - lead Rich Hickey.
- Status: latest build status, latest release on Maven, report bugs.
- clojure.contrib.dataflow
- clojure.contrib.datalog
- clojure.contrib.def
- Partly migrated to clojure.core.incubator - lead Rich Hickey.
- Status: latest build status, latest release on Maven, report bugs.
- Notes:
defvar: as of Clojure 1.3, you can specify a docstring in adefform:(def my-var "This is my docstring" some-value)
- clojure.contrib.error-kit
- Replaced by Slingshot - Lead Steve Gilardi
- clojure.contrib.except
- clojure.contrib.fcase
- clojure.contrib.find-namespaces
- Migrated to clojure.tools.namespace - lead Stuart Sierra.
- Status: latest build status, latest release on Maven, report bugs.
- clojure.contrib.fnmap
- clojure.contrib.gen-html-docs
- clojure.contrib.generic
- Migrated to clojure.algo.generic - lead Konrad Hinsen.
- Status: latest build status, latest release on Maven, report bugs.
- clojure.contrib.graph
- clojure.contrib.greatest-least
- clojure.contrib.import-static
- clojure.contrib.jar
- clojure.contrib.java-utils
- clojure.contrib.jmx
- Migrated to clojure.java.jmx - lead Stuart Halloway.
- Status: latest build status, latest release on Maven, report bugs.
- clojure.contrib.json
- Migrated to clojure.data.json - lead Stuart Sierra.
- Status: latest build status, latest release on Maven, report bugs.
- clojure.contrib.lazy-seqs
- clojure.contrib.lazy-xml
- Migrated to clojure.data.xml (repo is not ready yet!) - lead Alan Malloy.
- Status: latest build status, awaiting releases, report bugs.
- clojure.contrib.load-all
- clojure.contrib.logging
- Migrated to clojure.tools.logging - lead Alex Taggart.
- Status: latest build status, latest release on Maven, report bugs.
- clojure.contrib.macro-utils
- Migrated to clojure.tools.macro - lead Konrad Hinsen.
- Status: latest build status, latest release on Maven, report bugs.
- clojure.contrib.macros
- Migrated to clojure.tools.macro - lead Konrad Hinsen.
- Status: latest build status, latest release on Maven, report bugs.
- clojure.contrib.map-utils
- clojure.contrib.math
- Migrated to clojure.math.numeric-tower - lead Mark Engelberg.
- Status: latest build status, latest release on Maven, report bugs.
- clojure.contrib.miglayout
- clojure.contrib.mmap
- clojure.contrib.mock
- clojure.contrib.monadic-io-streams
- clojure.contrib.monads
- Migrated to clojure.algo.monads - lead Konrad Hinsen.
- Status: latest build status, latest release on Maven, report bugs.
- clojure.contrib.ns-utils
- clojure.contrib.parent
- clojure.contrib.priority-map
- Migrated to clojure.data.priority-map - lead Mark Engelberg.
- Status: latest build status, latest release on Maven, report bugs.
- clojure.contrib.probabilities
- clojure.contrib.profile
- clojure.contrib.prxml
- clojure.contrib.reflect
- clojure.contrib.repl-ln
- clojure.contrib.repl-utils
- clojure.contrib.seq
- clojure.contrib.server-socket
- clojure.contrib.set
- clojure.contrib.singleton
- clojure.contrib.sql
- Migrated to clojure.java.jdbc - lead Sean Corfield.
- Status: latest build status, latest release on Maven, report bugs.
- clojure.contrib.standalone
- clojure.contrib.stream-utils
- clojure.contrib.strint
- Migrated to clojure.core.incubator - lead Rich Hickey.
- Status: latest build status, latest release on Maven, report bugs.
- clojure.contrib.swing-utils
- clojure.contrib.trace
- Migrating to clojure.tools.trace - lead Luc Prefontaine
- Status: latest build status, latest release on Maven, report bugs.
- clojure.contrib.types
- clojure.contrib.with-ns
- clojure.contrib.zip-filter
- Migrated to clojure.data.zip - lead Aaron Bedra.
- Status: latest build status, latest release on Maven, report bugs.
New Contrib Namespaces
This section lists new contrib namespaces that do not correspond to old contrib namespaces (as far as I can tell - Sean!) and is provided for completeness / documentation purposes.
- clojure.core.logic
- Logic programming - lead David Nolen.
- Status: latest build status, latest release on Maven, report bugs.
- clojure.core.match
- Structural pattern matching - lead David Nolen.
- Status: latest build status, latest release on Maven, report bugs.
- clojure.core.unify
- Unification (like Prolog) - lead Michael Fogus.
- Status: latest build status, latest release on Maven, report bugs.
- clojure.data.csv
- Comma-Separated-Value file processing; formerly cljcsv - lead Jonas Enlund.
- Status: latest build status, latest release on Maven, report bugs.
- clojure.data.finger-tree
- Finger tree persistent data structures - lead Chris Houser.
- Status: latest build status, latest release on Maven, report bugs.
- clojure.java.data
- Java Beans and properties support - lead Cosmin Stejerean.
- Status: latest build status, awaiting releases, report bugs.
- clojure.test.benchmark
- Benchmark (and regression) suite for Clojure - lead Stuart Halloway.
- Status: awaiting automated builds, awaiting releases, report bugs.
- clojure.test.generative
- Test data generation - lead Stuart Halloway.
- Status: latest build status, latest release on Maven, report bugs.
- clojure.tools.nrepl
- REPL client and server - lead Chas Emerick.
- Status: latest build status, latest release on Maven, report bugs.