lein sub install
If you want to try out the latest and greatest, you’ll need to build and install snapshot jars locally:
lein sub install
All the code is in one repository, with subprojects for the different modules. Just clone https://github.com/pedestal/pedestal and you are good to go.
If you’re working on Pedestal itself, you can either test everything:
lein sub test
Or just run
lein test in the directory for the module you are
Thanks for your interest in helping out with Pedestal! Let this document serve as your guide. (This is a copy of CONTRIBUTING.md in the main Pedestal repo. If you ever see a discrepancy, it’s probably because this document is out of date relative to that one.)
If you’re looking for a task to work on, check out the primed label in our issues.
Less defined tasks will be marked with the discuss label. Jump in here if you want to be a part of something big.
Pedestal is the thinking persons framework, so every contribution starts with some deep thought. Finished?
Alright, your next step is to start a discussion.
Create an issue to start a conversation. Tell us what you’re trying to accomplish and how you think you might do it. If all is well, we’ll probably give you the thumbs up to start developing.
Of course, if you run into any straight-up bugs or weirdness feel free to skip the thinking (or at least too much of it) and immediately submit an issue.
We have an issue template in place that will ask you some details about the platform you are running and how to reproduce the bug. (If you can reproduce it reliably. If not, go ahead and file the issue anyway so we can start looking at it.)
Some of the usual stuff we’ll want to know:
"I manifested a being from the outer dimensions."
What did you expect to happen?
How can you reproduce it?
"I created a new Pedestal service with the template, then installed some code that Bob Howard gave me."
What operating system and version are you using?
e.g. "OS X 10.8"
What version of Clojure, Java, and Leiningen or Boot are you using?
e.g. "Leiningen 2.5.2 on Java 1.8.0_u40 Java HotSpot™ 64-Bit Server VM"
What Pedestal version are you using?
or, for a SNAPSHOT: "0.5.1-SNAPSHOT at d0cf2b4"
Even better, include a link to a gist or repository where we can jump straight to the problem.
We love well-tested code. We won’t accept pull requests unless they’re either well tested or sufficiently trivial (think docstring changes). All of our code is tested on Travis CI and any pull requests you submit will be too.
Pedestal is broken up into several pieces. You’ll usually be working on just one of these pieces at a time, but you will want to test everything. Here is the workflow we recommend:
Fork the repo and clone your fork.
Create a branch for your feature/bugfix.
From the top level of the repo, run
lein sub install to put snapshots in your local Maven repository.
Make your changes and add tests under the appropriate project.
lein test under the subproject as needed, and make small commits as you go.
When you’re done,
lein sub test from the top-level directory.
Submit a pull request.
When it comes to code contributions there is one more thing we need from you: a signed contributor’s agreement.
We know that a contributor’s agreement can be a pain, but we want everyone to be able to use Pedestal, including developers working on projects for very large companies. Many of these big organizations care a lot about the provenance of the code they use — that is they need to know where the code came from and who owns it. The contributor’s agreement simply puts down in writing what we think is the standard open source arrangement: Mostly it says that you are donating code that you wrote to the project. By submitting a signed contributor’s agreement, you are helping to ensure that your work will be available to the largest possible audience.
It is an extra step, but there really is not much to executing the Pedestal contributor’s agreement: You just need to complete the following online agreement to assign copyright to Cognitect.