Skip to content

Latest commit

 

History

History
101 lines (74 loc) · 2.95 KB

CONTRIBUTING.md

File metadata and controls

101 lines (74 loc) · 2.95 KB

Contributing

Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given.

Developer Installation

If something goes wrong at any point during installing the library please see how our CI/CD on GitHub Actions installs and builds the project as it will always be the most up-to-date.

Get Started!

Ready to contribute? Here's how to set up simularium_readdy_models for local development.

  1. Fork the simularium_readdy_models repo on GitHub.

  2. Clone your fork locally:

    git clone [email protected]:{your_name_here}/simularium_readdy_models.git
  3. Install just.

    Cargo: cargo install just Windows: scoop install just or choco install just MacOS: brew install just

  4. Install the project in editable mode in an anaconda environment:

    cd readdy-models/
    conda env create -f environment.yml
    conda activate readdy_models
    just install
  5. Create a branch for local development:

    git checkout -b {your_development_type}/short-description

    Ex: feature/read-tiff-files or bugfix/handle-file-not-found
    Now you can make your changes locally.

  6. When you're done making changes, check that your changes pass linting and tests with just:

    just build
  7. Commit your changes and push your branch to GitHub:

    git add .
    git commit -m "Your detailed description of your changes."
    git push origin {your_development_type}/short-description
  8. Submit a pull request through the GitHub website.

Just Commands

For development commands we use just.

just
Available recipes:
    build                    # run lint and then run tests
    clean                    # clean all build, python, and lint files
    default                  # list all available commands
    generate-docs            # generate Sphinx HTML documentation
    install                  # install with all deps
    lint                     # lint, format, and check all files
    release                  # release a new version
    serve-docs               # generate Sphinx HTML documentation and serve to browser
    tag-for-release version  # tag a new version
    test                     # run tests
    update-from-cookiecutter # update this repo using latest cookiecutter-py-package

Deploying

A reminder for the maintainers on how to deploy. Make sure the main branch is checked out and all desired changes are merged. Then run:

just tag-for-release "vX.Y.Z"
just release

The presence of a tag starting with "v" will trigger the publish step in the main github workflow, which will build the package and upload it to PyPI. The version will be injected into the package metadata by setuptools-scm