|
1 | 1 | How to create a release
|
2 | 2 | =======================
|
3 | 3 |
|
4 |
| -TODO |
| 4 | +Creating a release is a simple process that involves a few steps: |
| 5 | + |
| 6 | +#. **Prepare the release**: |
| 7 | + #. Create a separate branch for the release. Name the branch ``release-x.y.z`` |
| 8 | + where ``x.y.z`` is the version number. |
| 9 | + #. Update the version number in ``judge0/__init__.py``. |
| 10 | + #. Update the version number in ``judge0/pyproject.toml``. |
| 11 | + #. Sync the branch with any changes from the master branch. |
| 12 | + #. Create a pull request for the release branch. Make sure that all tests pass. |
| 13 | + #. Merge the pull request. |
| 14 | + #. Pull the changes to your local repository and tag the commit (``git tag vX.Y.Z``) with the version number. |
| 15 | + #. Push the tags to the remote repository (``git push origin master --tags``). |
| 16 | +#. **Create release (notes) on GitHub**. |
| 17 | + #. Go to the `releases page <https://github.com/judge0/judge0-python/releases/new>`_ on GitHub. |
| 18 | + #. Release title should be ``Judge0 Python SDK vX.Y.Z``. |
| 19 | + #. Release notes should include a changes from the previous release to the newest release. |
| 20 | + #. Use the `template <https://github.com/judge0/judge0-python/blob/master/RELEASE_NOTES_TEMPLATE.md>`_ from the repo to organize the changes. |
| 21 | + #. Create the release. ("Set as a pre-release" should NOT be checked.) |
| 22 | +#. **Release on PyPI**: |
| 23 | + #. Use the `GitHub Actions workflow <https://github.com/judge0/judge0-python/actions/workflows/publish.yml>`_ to create a release on PyPI. |
| 24 | + #. Select `Run workflow` and as `Target repository` select `pypi`. |
| 25 | + #. Click the `Run workflow` button. |
| 26 | + |
| 27 | +After the release is successfully published on PyPI, create a new pull request |
| 28 | +that updates the working version in ``judge0/__init__.py`` and ``judge0/pyproject.toml`` |
| 29 | +to the minor version. Merge the pull request and you're done! For example, if the |
| 30 | +new release was ``1.2.2``, the working version should be updated to ``1.3.0.dev0``. |
| 31 | + |
| 32 | +You've successfully created a release! Congratulations! 🎉 |
0 commit comments