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

Create Release.md #791

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
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
10 changes: 10 additions & 0 deletions Release.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# To release a new version to the Python Packaging Index (PyPI)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can add more context

# Releasing

This document explains the release strategy for the `django-celery-beat` package.

## Versioning

We adhere to [Semantic Versioning](https://semver.org/) for our releases, following the `MAJOR.MINOR.PATCH` format.

## Branching

The project maintain the following active branches:
* **main**: This branch represents the next release and is where all merges take place.

## Continuous Delivery

We use [Github Actions](https://docs.github.com/en/actions) to automate the release process. When a new tag is pushed, the CI pipeline automatically triggers a publication of the wheels on **GitHub** and the **Python Packaging Index (PyPI)**.

## Steps to release a new version

1. Ensure all are ready for release
    - Review the `publish-to-pypi` job in `.github/workflows/build.yml`.
    - Type `pre-commit.ci run` in an open or closed pull request that was created by @pre-commit.ci to ensure pre-commit is up to date and all tests pass.
    - Go to https://github.com/celery/django-celery-beat/releases and click the `Draft a new release` button.
    - Use that text or something similar to update `Changelog` and ensure releaser information and release date are correct.
    - Run `bump2version` as discussed in #790 and ensure the four files have the new version.
    - Merge all `pre-commit`, `Changelog`, and `bump2version` changes.
2. Push the new tag version
3. Make sure everything has been done correctly
    - Return to https://github.com/celery/django-celery-beat/releases and convert the Draft to a Release.
    - Go to https://github.com/celery/django-celery-beat/actions to ensure all tests and publish to PyPI are green.
    - Go to https://pypi.org/project/django-celery-beat and ensure the new version is present.

And normally, these steps :

- Go to https://github.com/celery/django-celery-beat/releases and click the `Draft a new release` button.
- Return to https://github.com/celery/django-celery-beat/releases and convert the Draft to a Release.

are done by the github-release job

Review the `publish-to-pypi` job in `.github/workflows/build.yml`.
* [ ] Type `pre-commit.ci run` in an open or closed pull request that was created by @pre-commit.ci to ensure pre-commit is up to date and all tests pass.
* [ ] Go to https://github.com/celery/django-celery-beat/releases and click the `Draft a new release` button.
* [ ] Use that text or something similar to update `Changelog` and ensure releaser information and release date are correct.
* [ ] Run `bump2version` as discussed in #790 and ensure the four files have the new version.
* [ ] Merge all `pre-commit`, `Changelog`, and `bump2version` changes.
* [ ] Return to https://github.com/celery/django-celery-beat/releases and convert the Draft to a Release.
* [ ] Go to https://github.com/celery/django-celery-beat/actions to ensure all tests and publish to PyPI are green.
* [ ] Go to https://pypi.org/project/django-celery-beat and ensure the new version is present.