Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update PR and Release Docs #21

Merged
merged 1 commit into from
Feb 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
## Code changes will send a PR to the following users
* @medley56
12 changes: 12 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Title of PR

Brief description of changes. If you write good commit messages, put the concatenated list of messages here.


## Checklist
- [ ] Changes are fully implemented without dangling issues or TODO items
- [ ] Deprecated/superseded code is removed or marked with deprecation warning
- [ ] Current dependencies have been properly specified and old dependencies removed
- [ ] New code/functionality has accompanying tests and any old tests have been updated to match any new assumptions
- [ ] The changelog.md has been updated
- [ ] Code has been reviewed by a code owner and/or trusted contributor
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ Thumbs.db
# Virtual environment #
#######################
venv
.venv

# Configurations #
##################
Expand Down
26 changes: 16 additions & 10 deletions docs/source/developers.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,19 @@ To run all tests in docker containers (tests against many versions of python), r
docker-compose up --build && docker-compose down
```

## Making a Pull Request
Feel free to fork this repo and submit a PR! We do trunk-based development so all PRs should be destined for the
`main` branch. Reviews are required before merging and our automated tests must pass. Please see the following
checklist for a basic set of requirements before we will merge a PR.

Please use the PR template when submitting a PR.

## Release Process
Reference: [https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow)

1. Create a release candidate branch named according to the version to be released. This branch is used to polish
the release while work continues on dev (towards the next release). The naming convention is `release/X.Y.Z`
the release but is fundamentally not different from any other feature branch in trunk-based development.
The naming convention is `release/X.Y.Z`.

2. Bump the version of the package to the version you are about to release, either manually by editing `pyproject.toml`
or by running `poetry version X.Y.Z` or bumping according to a valid bump rule like `poetry version minor`
Expand All @@ -31,32 +39,30 @@ Reference: [https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-

4. Update `changelog.md` to reflect that the version is now "released" and revisit `README.md` to keep it up to date.

5. Open a PR to merge the release branch into master. This informs the rest of the team how the release
process is progressing as you polish the release branch.
5. Open a PR to merge the release branch into main. This informs the rest of the team how the release
process is progressing as you polish the release branch. You may need to rebase the release branch onto
any recent changes to `main` and resolve any conflicts on a regular basis.

6. When you are satisfied that the release branch is ready, merge the PR into `master`.
6. When you are satisfied that the release branch is ready, merge the PR into `main`.

7. Check out the `master` branch, pull the merged changes, and tag the newly created merge commit with the
7. Check out the `main` branch, pull the merged changes, and tag the newly created merge commit with the
desired version `X.Y.Z` and push the tag upstream.

```bash
git tag -a X.Y.Z -m "version release X.Y.Z"
git push origin X.Y.Z
```

8. Ensure that you have `master` checked out and build the package (see below).
8. Ensure that you have `main` checked out and build the package (see below).
Check that the version of the built artifacts is as you expect (should match the version git tag and the
output from `poetry version --short`).

9. Optionally distribute the artifacts to PyPI/Nexus if desired (see below).

10. Open a PR to merge `master` back into `dev` so that any changes made during the release process are also captured
in `dev`.


## Building and Distribution
1. Ensure that `poetry` is installed by running `poetry --version`.

2. To build the distribution archives, run `poetry build`.

3. To upload the wheel to Nexus, run `poetry publish`. You will need credentials to sign into PyPI.
3. To upload the wheel to Nexus, run `poetry publish`. You will need credentials to sign in to PyPI.
Loading