Hi there! We're delighted that you'd like to contribute to this project. It has been generous collaboration from people all over the world that has made it possible so far, and your help is key to keeping it great.
Contributions to this project are released to the public under the project's open source license.
This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.
Before you can start contributing to Afterglow, you'll need to set up your environment. Fork and clone the repo and install Clojure (for compiling and running the code) and Leiningen (to manage the project dependencies and builds). Both of these rely on having a working Java runtime; if the mechanism you used to install them did not automatically include one, I recommend installing a current version of the OpenJDK.
Starting with version 0.2.5, you also need to have Antora installed because it is used to build the embedded copy of the User Guide when building and running from source. Assuming you have a current version of
node
installed, simply runningnpm i
inside the top level directory of the afterglow project will install Antora for you. If you don't have a node environment and are impatient to get started without getting one, you can temporarily comment out the section ofproject.clj
that builds the user guide. Add#_
to the:prep-tasks
line so that it looks like this:
:prep-tasks [#_["shell" "npx" "antora" "--fetch" "doc/embedded.yml"
But keep in mind that if you do this, the built-in user guide will not work, and you will not be able to create a release-worthy build until you install Antora and restore the line to its un-commented state.
Once you have those in place, you can run Afterglow from source by
opening a terminal window inside your clone of the project, and typing
lein repl
. You will see a bunch of output as the embedded copy of
the User Guide is generated by Antora and the images are copied in,
and then Clojure will start, with output similar to this:
REPL-y 0.5.1, nREPL 0.8.3
Clojure 1.10.3
OpenJDK 64-Bit Server VM 11.0.10+9-LTS
afterglow loaded.
afterglow.examples=>
At that point you can follow along with the example flow on the main project page, and start diving into exploring and changing the source code.
🔧 If you are just building Afterglow to work around the current issue preventing current versions from being available through Clojars, at this point you can run
lein install
, which will build and install the library in your local Maven repository, so other projects can depend on the version that you just built without needing to find it on Clojars.
Of course to do any serious work, you will want some sort of editor with embedded REPL support, and ideally structural editing support for Lisp s-expressions. We find GNU Emacs with CIDER to be an incredibly productive environment for Clojure work, but some of our colleagues swear by IntelliJ IDEA (even the free Community Edition) with Cursive, so use whatever IDE or editor works best for you.
For testing you are going to want to install OLA (as described on the main project page) and have some lighting (and possibly MIDI) hardware to attach.
Once you have something working you’d like to share, you can open a pull request.
Or if you simply have an idea, or something that you wish worked differently, feel free to open an issue if it seems like nobody already has.
Afterglow is primarily maintained by @brunchboy.
Copyright © 2016–2022 Deep Symmetry, LLC
Distributed under the Eclipse Public License 2.0 By using this software in any fashion, you are agreeing to be bound by the terms of this license. You must not remove this notice, or any other, from this software.