= History

== There and Back Again

nREPL has had an unusual history, which seems worthwhile documenting here.

nREPL started as a personal project of mine @ https://github.com/cemerick/nREPL
in 2010. After an initial period of interest from various downstream tool
authors, it was invited to be one of the initial three projects in the "new"
Clojure Contrib family of projects later that year, and thus moved to
https://github.com/clojure/tools.nrepl.

nREPL grew and stabilized under the Contrib umbrella for years. Various
collaboration and process challenges, differences of opinion, and changing work
priorities eventually led to work on nREPL slowing significantly, to the
frustration of its most active users.

Eventually, I proposed migrating nREPL out of Clojure Contrib in the summer of
2017 (https://github.com/nrepl/nrepl/issues/1), with the objective of
reconstituting an environment where the people most interested in and impacted
by nREPL could participate in its development as easily as possible.

Cheers, +
Chas

== To Infinity and Beyond

In the spring of 2018 Chas decided to hand over the development of
nREPL (and key middleware like `piggieback` and `drawbridge`) to the
team behind CIDER and the efforts to build awesome Clojure dev tools
powered by editor-independent nREPL middleware (e.g. `cider-nrepl`,
`refactor-nrepl`). Important milestones achieved afterwards were the
release of the transitional release nREPL 0.3, which simply changed
the deployment coordinates to `nrepl/nrepl`, but is otherwise
identical to `tools.nrepl` 0.2.3, and the subsequent release of nREPL
0.4 which switched the namespaces of the project to `nrepl.*` and
started delivering on the promise to fix long-standing problems.

We're really excited to advance nREPL
forward and to build many sweet REPLs on top of it!

Looking forward to seeing you around! We need all the help we can get!

Cheers, +
Bozhidar (a.k.a. Bug)

== Notable Milestones

* 21 Sep 2011 - Initial commit by Chas Emerick.
* 11 Oct 2011 - 0.0.1 release.
* Spring 2012 - Work begins on a bunch of nREPL clients (most notably REPLy and CIDER).
* 13 Jan 2013 - 0.2.0 release brings a massive redesign.
* Spring 2018 - Bozhidar Batsov, the author of CIDER, becomes nREPL's maintainer and vows to revive the project's development and realize its full potential.
* 18 May 2018 - nREPL officially leaves Clojure contrib and version 0.3 is released with the updated coordinates `nrepl/nrepl`.
* 05 Feb 2019 - nREPL 0.6 introduces `nrepl.middleware.print` that replaces `nrepl.middleware.pr-values`.
* 28 Mar 2020 - nREPL 0.7 introduces a built-in EDN transport and the ability to sideload code dynamically into a running nREPL server.
* 01 Aug 2020 - nREPL 0.8 introduces built-in `lookup` and `completions` ops. It's now possible to dynamically load/unload middleware.
* 12 Dec 2021 - nREPL 0.9 introduces support for UNIX domain sockets.
