Contributing

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

Get Started!

Ready to contribute? Here’s how to set up image_slicer for local development.

  1. Fork the image_slicer repo on GitHub.

  2. Clone your fork locally:

    git clone git@github.com:{your_name_here}/image_slicer.git
    
  3. Install the project in editable mode. (It is also recommended to work in a virtualenv or anaconda environment):

    cd image_slicer/
    pip install -e .[dev]
    
  4. 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\ :raw-html-m2r:`<br>`
    Now you can make your changes locally.
    
  5. When you’re done making changes, check that your changes pass linting and tests, including testing other Python versions with make:

    make build
    
  6. Commit your changes and push your branch to GitHub:

    git add .
    git commit -m "Resolves gh-###. Your detailed description of your changes."
    git push origin {your_development_type}/short-description
    
  7. Submit a pull request.

The Four Commands You Need To Know

  1. pip install -e .[dev]

    This will install your package in editable mode with all the required development dependencies (i.e. tox).

  2. make build

    This will run tox which will run all your tests in both Python 3.7 and Python 3.8 as well as linting your code.

  3. make clean

    This will clean up various Python and build generated files so that you can ensure that you are working in a clean environment.

  4. make docs

    This will generate and launch a web browser to view the most up-to-date documentation.

Deploying

Once your change has been approved it will be merged into master. Periodically, the maintainer will run the following to release a new package version on GitHub and publish to PyPI:

$ bumpversion patch # possible: major / minor / patch
$ git push
$ git push --tags
git branch -D stable
git checkout -b stable
git push --set-upstream origin stable -f