-
-
Notifications
You must be signed in to change notification settings - Fork 153
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
77 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,58 +1,114 @@ | ||
# Release Procedure | ||
|
||
In the commands below, replace `X.Y.Z` with the release version when needed. | ||
|
||
**Note**: We use `pip` instead of `conda` here even on Conda installs, to ensure we always get the latest upstream versions of the build dependencies. | ||
|
||
|
||
## PyPI | ||
|
||
To release a new version of QtPy on PyPI: | ||
|
||
|
||
## Prepare | ||
### Prepare | ||
|
||
* Close Github milestone and ensure all issues are resolved/moved | ||
* Close [GitHub milestone](https://github.com/spyder-ide/qtpy/milestones) and ensure all issues are resolved/moved | ||
|
||
* `git switch master && git pull upstream master` (assuming `master` is the release branch) | ||
* Update local repo | ||
|
||
* Check `MANIFEST.in` and `setup.cfg` to ensure they are up to date | ||
```bash | ||
git restore . && git switch master && git pull upstream master | ||
``` | ||
|
||
* Clean local repo | ||
|
||
## Commit | ||
```bash | ||
git clean -xfdi | ||
``` | ||
|
||
* `pip install --upgrade loghub` | ||
|
||
* Update `CHANGELOG.md` using `loghub` to generate the list of issues and PRs merged to add at the top of the file: | ||
### Commit | ||
|
||
* Install/upgrade Loghub | ||
|
||
```bash | ||
pip install --upgrade loghub | ||
``` | ||
|
||
* Update `CHANGELOG.md` using Loghub to generate the list of issues and PRs merged to add at the top of the file | ||
|
||
```bash | ||
loghub -m vX.Y.Z spyder-ide/qtpy | ||
``` | ||
|
||
* Update `__version__` in `__init__.py` (set release version, remove `.dev0`) | ||
|
||
* `git commit -am 'Release X.Y.Z'` | ||
* Create release commit | ||
|
||
```bash | ||
git commit -am "Release X.Y.Z" | ||
``` | ||
|
||
## Build | ||
|
||
**Note**: We use `pip` instead of `conda` here even on Conda installs, to ensure we always get the latest upstream versions of the build dependencies. | ||
### Build | ||
|
||
* `git clean -xfdi` | ||
* Update the packaging stack | ||
|
||
* `python -m pip install --upgrade-strategy eager --upgrade build pip setuptools twine wheel` | ||
```bash | ||
python -m pip install --upgrade pip | ||
pip install --upgrade --upgrade-strategy eager build setuptools twine wheel | ||
``` | ||
|
||
* `python -bb -X dev -W error -m build` | ||
* Build source distribution and wheel | ||
|
||
```bash | ||
python -bb -X dev -W error -m build | ||
``` | ||
|
||
## Upload | ||
* Check distribution archives | ||
|
||
* `twine check --strict dist/*` | ||
```bash | ||
twine check --strict dist/* | ||
``` | ||
|
||
|
||
### Release | ||
|
||
* Upload distribution packages to PyPI | ||
|
||
* `twine upload dist/*` | ||
```bash | ||
twine upload dist/* | ||
``` | ||
|
||
* Create release tag | ||
|
||
* `git tag -a vX.Y.Z -m 'Release X.Y.Z'` | ||
```bash | ||
git tag -a vX.Y.Z -m "Release X.Y.Z" | ||
``` | ||
|
||
|
||
## Cleanup | ||
### Finalize | ||
|
||
* Update `__version__` in `__init__.py` (add `.dev0` and increment minor) | ||
|
||
* `git commit -am 'Back to work'` | ||
* Create `Back to work` commit | ||
|
||
```bash | ||
git commit -am "Back to work" | ||
``` | ||
|
||
* Push new release commits and tags to `master` | ||
|
||
```bash | ||
git push upstream master --follow-tags | ||
``` | ||
|
||
* Create a [GitHub release](https://github.com/spyder-ide/qtpy/releases) from the tag | ||
|
||
|
||
## Conda-Forge | ||
|
||
* `git push upstream --follow-tags` | ||
To release a new version of QtPy on Conda-Forge: | ||
|
||
* Create a GitHub release from the tag | ||
* After the release on PyPI, an automatic PR in the [Conda-Forge feedstock repo for QtPy](https://github.com/conda-forge/qtpy-feedstock/pulls) should open. | ||
Merging this PR will update the respective Conda-Forge package. |