Skip to content

Latest commit

 

History

History
46 lines (34 loc) · 2.45 KB

File metadata and controls

46 lines (34 loc) · 2.45 KB

Contributing

Issues and pull requests are welcome! If a question, defect, or improvement is identified, please create an issue in the issue tracker with relevant tags. To address any raised issue, please create a branch, commit changes, and submit a PR. The goal of the following notes is to outline general standards and processes for contributing.

Workflow

The steps below describe how to get a patch into a main development branch. The steps are exactly the same for everyone involved in the project.

  1. Create a feature-branch for your work, from which you'll be able to submit a pull request.
  2. Once your feature is complete, prepare the commit following Conventional Commits.
  3. If it's a new feature, or a change of behavior, test and document it.
  4. Submit a pull request and request a review.
  5. After the review you should fix the issues as needed, iterating until the reviewers give their thumbs up.
  6. Squash and merge!

Pull requests

A pull request should meet the following requirements before squashing and merging:

  1. If the code introduces new features or fixes bugs or regressions, it must have comprehensive tests.
  2. The code must be well documented.
  3. The commit messages must properly describe the changes.
  4. A pull request must indicate (link to) the issue it is aimed to resolve in the description (or comments) of the PR, in order to establish a link between PR and Issue. This can be achieved by writing "Fixes #1234" or similar in PR description.

Setup

To begin developing, testing, and/or documenting, we recommend installing the dev dependencies in a virtual environment:

python -m venv venv
source venv/bin/activate
pip install pyisic[dev]
pre-commit install

Testing

Pyisic uses pytest as a testing framework. New functionality must be fully tested. New standards and/or concordances should extend existing tests.

Documenting

Pyisic uses Sphinx for documentation. New functionallity must be fully documented. Docstrings must follow the Google Python Style Guide. For additional reference, see examples provided by napolean.