• Contributing
Reporting Bugs / Requesting Features
For questions, reporting bugs, or asking for new features to be put on the development roadmap, you can submit your request by creating a new ticket on Github.
Assisting with Implementations
If you would like to contribute code in an effort to bring the client API into feature parity with the CMR services API, here are the steps you need to follow:
- Identify the API call you’d like to implement
- Update the protocol, e.g.,
cljc/cmr/client/search/protocol.cljc
- Add the new protocol method to the
import-vars
in the Clojure client, e.g.,clj/cmr/client/search.clj
- Add the new protocol method to the
import-vars
in the ClojureScript client, e.g.,cljs/cmr/client/search.clj
- Create an implementation of the new function, e.g.,
cljc/cmr/client/search/impl.cljc
(note that Clojure and ClojureScript CMR clients share implementations, so you’ll have to write code that’s compatible with both) - Update the
extend-type
in the ClojureScript client, e.g.,cljs/cmr/client/search.clj
(this step isn’t needed for the Clojure client; it’s needed in ClojureScript because it doesn’t support theextend
macro) - Try out the new function in the Clojure REPL
- Try it out in the ClojureScript (figwheel) REPL
- Try it out in the dev console at http://localhost:3449/dev.html
- For any support functions you’ve created, add some unit tests
- Add integration tests for the new function
- Make sure you’ve included docstrings for all your additions