# Contributing to re-frame :+1::tada: First off, thanks for taking the time to contribute! :tada::+1: The following is a set of guidelines for contributing to re-frame which is hosted on [Github](https://github.com/Day8/re-frame). These are just guidelines, not rules, use your best judgment and feel free to propose changes to this document in a pull request. ## Support questions **The Github issues for re-frame are for bug reports and feature requests. Support requests and usage questions should go to the [Clojure Slack channel](http://clojurians.net), the [ClojureScript mailing list](https://groups.google.com/forum/#!forum/clojurescript), or the [Reagent mailing list](https://groups.google.com/forum/#!forum/reagent-project).** ## Creating issues for bugs Check if the issue has already been reported. If possible provide: * Version of re-frame being used * Minimal reproduction steps ## Creating issues for features Use your best judgement on what is needed here. ## Pull requests **Create pull requests to the develop branch**, work will merged onto master when it is ready to be released. ## Running the tests To run the tests, you must have recent versions of node, npm, Leiningen, and a C++ compiler toolchain installed. If you're on Linux or Mac OS X then you will be fine, if you're on Windows then you need to install Visual Studio Community Edition, and the C++ compiler dependencies. ``` lein deps # will run lein-npm and install Karma and other node dependencies. Only needed the first time. lein once # or lein auto # to build re-frame karma start # to run the tests with an auto watcher ``` ## Pull requests for bugs If possible provide: * Code that fixes the bug * Failing tests which pass with the new changes * Improvements to documentation to make it less likely that others will run into issues (if relevant). * Add the change to the Unreleased section of [CHANGES.md](CHANGES.md) ## Pull requests for features If possible provide: * Code that implements the new feature * Tests to cover the new feature including all of the code paths * Docstrings for functions * Documentation examples * Add the change to the Unreleased section of [CHANGES.md](CHANGES.md)