Contributing

Issues

Report issues and suggest features and improvements on the GitHub issue tracker. Don’t ask questions on the issue tracker - use the support channels instead.

If you want to file a bug, please provide all the necessary info listed in our issue reporting template (it’s loaded automatically when you create a new GitHub issue).

Patches

Patches in any form are always welcome! GitHub pull requests are even better! :-)

Before submitting a patch or a pull request make sure all tests are passing and that your patch is in line with the contribution guidelines.

Documentation

Good documentation is just as important as good code.

Consider improving and extending this manual.

Working on the Docs Site

The documentation site is generated from the AsciiDoc files in the doc folder of nREPL’s GitHub repo and is published to https://nrepl.org. Antora is used to convert the manual into HTML. The filesystem layout is described at https://docs.antora.org/antora/2.0/component-structure/.

To make changes to the manual you simply have to change the files under doc. The site will be regenerated manually periodically.

Installing Antora

The instructions here assume you already have (the right version of) node.js installed.

Installing the Antora is super simple:

$ npm i -g @antora/cli@2.3 @antora/site-generator-default@2.3

Check out the detailed installation instructions if you run into any problems.

Building the Site

You can build the documentation locally from the nrepl.org repo.

$ cd nrepl.org
$ antora --pull antora-playbook.yml

After you’re done with the initial setup you can use the deploy script to push changes to the site:

./deploy
You’ll need commit access to the repository for this to work.

To check the generated site you can simply open docs/index.html in your favourite browser.

If you want to make changes to the manual’s page structure you’ll have to edit nav.adoc.

Testing Local Changes

By default Antora will build the documentation for nREPL’s master branch and all recent stable releases by fetching the data from nREPL main GitHub repository.

If you want to check changes you’ve made locally you’ll have to update the antora-playbook.yml file in the nrepl.org repository. There you should instruct Antora to build the docs from your local git repo instead of the main repo on GitHub:

# you have to change this
content:
   sources:
   - url: https://github.com/nrepl/nrepl.git
     branches: ['master']
     tags: ['0.5.3', '0.6.0', '0.7.0', '0.9.0']

# to something like
content:
   sources:
   - url: /path/to/local/nrepl/clone
     branches: ['issues/207']
     start_path: doc

Funding

While nREPL is free software and will always be, the project would benefit immensely from some funding. Raising a monthly budget of a couple of thousand dollars would make it possible to pay people to work on certain complex features, fund other development related stuff (e.g. hardware, conference trips) and so on. Raising a monthly budget of over $5000 would open the possibility of someone working full-time on the project which would speed up the pace of development significantly.

We welcome both individual and corporate sponsors! We also offer a wide array of funding channels to account for your preferences (although currently Open Collective is our preferred funding platform).

If you’re working in a company that’s making significant use of nREPL we’d appreciate it if you suggest to your company to become a nREPL sponsor.

You can support the development of nREPL, CIDER, clojure-mode and inf-clojure via Open Collective, GitHub Sponsors Patreon and PayPal.

Open Collective