All interest in ga-clj, as a user or contributor, is greatly appreciated! This document will go into detail on how to contribute to the development of ga-clj.
Before reading further we ask that you read our Code of Conduct which will be enforced by the maintainers in order to ensure that development of ga-clj stays focused and productive.
If you are new to contributing to open source, or GitHub, the following links may be helpful starting places:
This means that all code and documentation changes happen through pull requests. We actively welcome your pull requests. We highly recommend the following workflow.
- Fork the repo and create your branch from
master
. - If you've added code that should be tested, add tests.
- If you've changed APIs, update the documentation.
- Ensure the test suite passes.
- Create the pull request.
In short, when you submit code changes, your submissions are understood to be under the same MIT License that covers the project. Feel free to contact the maintainers if that's a concern.
We use GitHub issues to track public bugs. Report a bug by opening a new issue.
Great Bug Reports tend to have at least the following:
- A quick summary and/or background
- The steps to reproduce.
- When possible, minimal code that reproduces the bug.
- A description of what you expected versus what actually happens.
We like to hear in all feature requests and discussion around the direction of the project. The best place to discuss future features is the project's discussion page under the ga-clj category.
We welcome contribution to the codebase via pull requests. In most cases, it is beneficial to discuss your change with the community via a GitHub issue or discussion before working on a pull request. Once you decide to work on a pull request, please follow the workflow outlined in the above sections.
Once you open the pull request, it will be tested with by CI and reviewed by other contributors (including at least one project maintainer). After all iterations of review are finished, one of the project maintainers will merge your pull request.
When working on a code change or addition to ga-clj, it is expected that all changes pass existing tests and probably introduce new tests to ensure stability of future changes. To run the test suite against Clojure, run the following command in the project root directory using the Clojure CLI.
clj -T:build test-clj
The ga-clj library supports both Clojure and Clojurscript, and thus the test suite is expected to pass on both platforms. To run the test suite against Clojurescript, first install node.js and then use the following command.
clj -T:build test-cljs
The project contains a number of example files as a form of executable documentation. After making a change, we check the example files have not been broken with the following command.
clj -T:build examples
For convenience, we often run the test suite on both Clojure and Clojurescript, as well as the examples, using a single command:
clj -T:build ci