Skip to content

Contibuting & Development

Contributing to Valor

We welcome all contributions, bug reports, bug fixes, documentation improvements, enhancements, and ideas aimed at improving Valor. This doc describes the high-level process for how to contribute to this repository. If you have any questions or comments about this process, please feel free to reach out to us on Slack.

On GitHub

We use Git on GitHub to manage this repo, which means you will need to sign up for a free GitHub account to submit issues, ideas, and pull requests. We use Git for version control to allow contributors from all over the world to work together on this project.

If you are new to Git, these official resources can help bring you up to speed:

Contribution Workflow

Generally, the high-level workflow for contributing to this repo includes:

  1. Submitting an issue or enhancement request using the appropriate template on GitHub Issues.
  2. Gathering feedback from devs and the broader community in your issue before starting to code.
  3. Forking the Valor repo, making your proposed changes, and submitting a pull request (PR). When submitting a PR, please be sure to:
    1. Update the README.md and/or any relevant docstrings with details of your change.
    2. Add tests where necessary.
    3. Run pre-commit install on your local repo before your last commit to ensure your changes follow our formatting guidelines.
    4. Double-check that your code passes all of the tests that are automated via GitHub Actions.
    5. Ping us on Slack to ensure timely review.
  4. Working with repo maintainers to review and improve your PR before it is merged into the official repo.

For questions or comments on this process, please reach out to us at any time on Slack.

Development

Setting Up Your Environment

Creating a Valor-specific Python environment at the start of development can help you avoid dependency and versioning issues later on. To start, we'd recommend activating a new Python environment:

# venv
python3 -m venv .env-valor
source .env-valor/bin/activate

# conda
conda create --name valor python=3.10
conda activate valor

Install the valor-lite module from source:

make install

Running Tests

All of our tests are run automatically via GitHub Actions on every push, so it's important to double-check that your code passes all local tests before committing your code.

For linting and code formatting use:

make pre-commit

Run all tests using:

make test