This page documents rules for adding third-party Clojure code to //piper/third_party.

IMPORTANT: Read go/thirdparty and go/clojure first.


Before trying to add any Clojure code to third_party please reach out to emailremoved@. Clojure and ClojureScript, are not supported languages by the languages team. Please see go/newlanguages for a list of approved languages, some for general purpose usage.

The emailremoved@ maintains both tool chains. They can only be used for approved use cases and evaluation. If you are here because you think your effort may benefit from using Clojure and ClojureScript in Google3, please reach out to emailremoved@.

General requirements

Third-party Clojure goes in //piper/third_party/unsupported_toolchains/clojure. Please keep in mind the following constraints.

  1. If you are not a member of emailremoved@ please reach out before attempting to do anything.
  2. The Clojure tree only accept sources.
  3. No jar or clojars files with compile code are allowed.
  4. Only one version of a package can exist in the tree (yes, this may require work).

How do I import a package?

IMPORTANT: Due to the limited current scope only the emailremoved@ imports new packages.

The main rule to import a package is never do it manually. The emailremoved@ has put together the updater tool to import the package sources and all the required dependencies. You can read more about it at http://linkremoved/ The current dependencies supported are listed below.

To import or update the version of a given package follow the steps below:

  1. Modify //third_party/unsupported_toolchains/clojure/supported_deps.edn with the desired new package or dependency.
  2. Run //third_party/unsupported_toolchains/updater.
  3. The updater imports the code with the proper layout. However you need to include manually the new packages to //third_party/unsupported_toolchains/clojure:clojure target and update the BUILD, LICENSE and METADATA files to the adde packages.
  4. Send resulting CL for review to emailremoved@.
  5. Please make sure you get the LGTM from **************@ before submitting. ******************** for approval will be automatically added when needed; if added, assume third party owners will need to review the change.