= Contributing

== Issues

Report issues and suggest features and improvements on the
link:https://github.com/nrepl/nrepl/issues[GitHub issue tracker]. Don't ask
questions on the issue tracker - use the <<about/support.adoc#,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 link:https://github.com/nrepl/nrepl/blob/master/.github/CONTRIBUTING.md[contribution guidelines].

== Documentation

Good documentation is just as important as good code.

Consider improving and extending this manual.

=== Working on the Manual

The manual is generated from the asciidoc files in the link:https://github.com/nrepl/nrepl/tree/master/doc[doc] folder of nREPL's GitHub repo and is published to https://nrepl.org.
link:https://antora.org[Antora] is used to convert the manual into HTML.
The filesystem layout is described at https://docs.antora.org/antora/1.1/component-structure/

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

You can build the documentation locally from the link:https://github.com/nrepl/nrepl.org[nrepl.org] repo.

[source,shell]
----
$ cd nREPL.org
$ npm install
$ ./antora site.yml
----

TIP: If `npm install` fails, see link:https://docs.antora.org/antora/1.1/install/troubleshoot-nodegit/[Antora's troubleshooting documentation].

If you want to make changes to the manual's page structure you'll have to edit
link:https://github.com/nrepl/nrepl/blob/master/doc/modules/ROOT/nav.adoc[nav.adoc].

== 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 link:https://opencollective.com/nrepl[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, link:https://github.com/clojure-emacs/clojure-mode[clojure-mode] and link:https://github.com/clojure-emacs/inf-clojure[inf-clojure] via
link:https://opencollective.com/nrepl[Open Collective],
link:https://www.patreon.com/bbatsov[Patreon],
link:https://liberapay.com/bbatsov/donate[Liberapay] and
link:https://www.paypal.me/bbatsov[PayPal].

=== Open Collective

* [link:https://opencollective.com/nrepl#backer[Become a backer]] (for individuals)
* [link:https://opencollective.com/nrepl#sponsor[Become a sponsor]] (for companies)
