Skip to content

Latest commit

 

History

History
95 lines (58 loc) · 2.95 KB

CONTRIBUTING.md

File metadata and controls

95 lines (58 loc) · 2.95 KB

Contributing

Thank you for wanting to contribute to Farsante! Here is a guide to get started on your first PR.

If this is your first time working with git, here is a helpful GitHub resource for some of the terminology below like fork, clone, and branch


Workflow

1. Fork Farsante

2. Clone the forked repository to your local environment

3. Create and checkout a new feature branch

in this example, we will be working in a-new-feature

cd path/to/your/cloned/repo
git checkout -b a-new-feature

4. Install project dependencies

Farsante uses python and rust. Below details the current setup needed to work on this repository locally.

Here are links to download python and rust if you don't have them installed on your system:

a. Python

  • Use poetry to create a virtualenv using a version of python on your system. In this example, we are using pyenv to make python version selection easier.

set up environment for the virtualenv install

pyenv install 3.10.9
pyenv shell 3.10.9
pip install poetry

install required dependencies

poetry install

install optional dev dependencies

poetry install --with dev

Now that you have a virtualenv installed with all of the required dependencies, you can run scripts (like unit tests)

using poetry shell

poetry shell
pytest tests/

or with poetry run

poetry run pytest tests/

b. Rust

Farsante uses rust to generate large datasets quickly. You will need to use maturin to create a rust library that can be used by other python functions.

cd h2o-data-rust
maturin develop

5. Work on your changes in a-new-feature

Commit early and often. Working in small chunks makes reviews easier on other collaborators. Ensure that you don't break existing functionality by running unit tests, and add coverage for any new features with a unit test. Once you feel like your changes are ready to be reviewed, navigate to the a-new-feature branch on your GitHub fork and click on "make pull request".

Add additional context detailing what was changed, and reference any issues that this pull request addresses, like "fixes #123".

Other collaborators will review your PR, and those with merge permissions will merge your work into the main branch once no changes need to be made.

After your PR is merged, you can delete the a-new-feature branch from your fork.


Collaboration

We discuss work on all MrPowers projects in the #mrpowers channel in this slack workspace. It's a good way to meet other data engineers and hone your programming skills!