Commit 0b271b95 authored by Stauff, Nicolas Emile's avatar Stauff, Nicolas Emile
Browse files

Merge branch 'contrib' into 'main'

Adding contribution guide.

See merge request nstauff/PyGriffin!5
parents ee06b88b c81d4e36
Loading
Loading
Loading
Loading

CONTRIBUTING.md

0 → 100644
+61 −0
Original line number Diff line number Diff line

# Contributing


## Governance

Contributions to PyGriffin must be made through a merge request (MR) at
https://git-out.gss.anl.gov/nstauff/pygriffin. Even long-term members and
developers must submit changes via MRs to provide a consistent record of the
purpose of contributions as well as to allow other maintainers/developers to
provide feedback on code changes and design decisions.

No merge request should be merged to the `main` branch without independent
review.

If objections to certain merge requests are raised, the author of the merge
request and reviewers should seek to arrive at a consensus before the MR is
either merged or closed (rejected).

## Code Review Criteria

In order to be considered suitable for inclusion in the PyGriffin repository, the
following criteria must be satisfied for all proposed changes:

  - Changes have a clear purpose and are useful.

  - All continuous integration tests pass in gitlab's CI.

  - If appropriate, test cases are added to regression or unit test suites.

  - Conforms to the [PEP8](https://www.python.org/dev/peps/pep-0008/) style guide where possible.

  - New features/input are documented.

  - No unnecessary external software dependencies are introduced.

## Workflow

We currently encourage a forking workflow for contributions to PyGrifin. This
workflow involves the following steps:

  1. Fork the main PyGriffin repository under your user account at
     https://git-oug.gss.anl.gov. You can reach out to nstauff@anl.gov about
     creating an account.
  2. Clone your fork of PyGriffin locally to make changes to the code.
  ```shell
  $ git clone https://git-out.gss.anl.gov/your_username/pygriffin
  $ cd pygriffin
  $ git checkout -b new_branch main
  ```
  3. Make your changes in your local branch and push the branch to your fork
     when ready.

  4. Open a merge request on gitlab to the main PyGriffin repository with a
     description of the changes along with motivation for these changes if they
     aren't adressing an open issue in PyGriffin.
  5. Another maintainer/developer will review your merge request based on the
     criteria above. Any issues with the merge request can be discussed directly
     on in the MR.
  6. When the merge request has been approved, it will be merged into the main
     branch of PyGriffin.
 No newline at end of file