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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

PR: Update README, RELEASE and Announcements files #22183

Merged
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
1 change: 1 addition & 0 deletions Announcements.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@ Spyder 6.0 comes with the following interesting new features and fixes:
* Show Matplotlib backend state in status bar.
* Make kernel restarts be much faster for the current interpreter.
* Turn `runfile`, `debugfile`, `runcell` and related commands into IPython magics.
* Add a new way to manage and establish connections with remote servers/kernels

- Important fixes
* Environment variables declared in `~/.bashrc` or `~/.zhrc` are detected and
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,18 @@

[![license](https://img.shields.io/pypi/l/spyder.svg)](./LICENSE.txt)
[![pypi version](https://img.shields.io/pypi/v/spyder.svg)](https://pypi.org/project/spyder/)
[![conda version](https://img.shields.io/conda/vn/conda-forge/spyder.svg)](https://www.anaconda.com/download/)
[![download count](https://img.shields.io/conda/dn/conda-forge/spyder.svg)](https://www.anaconda.com/download/)
[![conda version](https://img.shields.io/conda/vn/conda-forge/spyder.svg)](https://anaconda.org/conda-forge/spyder)
[![download count](https://img.shields.io/conda/dn/conda-forge/spyder.svg)](https://anaconda.org/conda-forge/spyder)
[![OpenCollective Backers](https://opencollective.com/spyder/backers/badge.svg?color=blue)](#backers)
[![OpenCollective Sponsors](https://opencollective.com/spyder/sponsors/badge.svg?color=blue)](#sponsors)
[![Join the chat at https://gitter.im/spyder-ide/public](https://badges.gitter.im/spyder-ide/spyder.svg)](https://gitter.im/spyder-ide/public)<br>
[![PyPI status](https://img.shields.io/pypi/status/spyder.svg)](https://github.com/spyder-ide/spyder)

## Build status

[![Win](https://github.com/spyder-ide/spyder/workflows/Win%20tests/badge.svg)](https://github.com/spyder-ide/spyder/actions?query=workflow%3A%22Win+tests%22)
[![Mac](https://github.com/spyder-ide/spyder/workflows/Mac%20tests/badge.svg)](https://github.com/spyder-ide/spyder/actions?query=workflow%3A%22Mac+tests%22)
[![Linux](https://github.com/spyder-ide/spyder/workflows/Linux%20tests/badge.svg)](https://github.com/spyder-ide/spyder/actions?query=workflow%3A%Linux+tests%22)
[![Win](https://github.com/spyder-ide/spyder/actions/workflows/test-win.yml/badge.svg)](https://github.com/spyder-ide/spyder/actions/workflows/test-win.yml)
[![Mac](https://github.com/spyder-ide/spyder/actions/workflows/test-mac.yml/badge.svg)](https://github.com/spyder-ide/spyder/actions/workflows/test-mac.yml)
[![Linux](https://github.com/spyder-ide/spyder/actions/workflows/test-linux.yml/badge.svg)](https://github.com/spyder-ide/spyder/actions/workflows/test-linux.yml)
[![Coverage Status](https://coveralls.io/repos/github/spyder-ide/spyder/badge.svg?branch=master)](https://coveralls.io/github/spyder-ide/spyder?branch=master)
[![codecov](https://codecov.io/gh/spyder-ide/spyder/branch/master/graph/badge.svg)](https://codecov.io/gh/spyder-ide/spyder)
[![Crowdin](https://badges.crowdin.net/spyder/localized.svg)](https://crowdin.com/project/spyder)
Expand Down
90 changes: 42 additions & 48 deletions RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,14 +73,14 @@ To release a new version of Spyder you need to follow these steps:

* Don't forget to remove your local checkout of `translate/<branch-name>` because that's going to be outdated for next time.

* Update the `master` branch with
* Update the `master` and `<branch-name>` branches as necessary. For example, if translations were done for the stable branch `6.x`, you could do the update with

git checkout 5.x
git checkout 6.x
git fetch upstream
git merge upstream/5.x
git merge upstream/6.x
git checkout master
git merge 5.x
Merge from 5.x: PR #xxxxx
git merge 6.x
Merge from 6.x: PR #xxxxx
git push upstream master

### Update core dependencies
Expand Down Expand Up @@ -134,100 +134,94 @@ To release a new version of Spyder you need to follow these steps:

git add .
git commit -m "Release X.X.XrcX [ci skip]"
git push upstream 5.x

* Manually activate the following workflows (see [Running a workflow](https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow#running-a-workflow)):
- Create conda-based installers for Windows, macOS, and Linux
* Push changes to the corresponding branch (e.g `6.x` - stable branch or `master` - new major version)

git push upstream <branch-name>

* Manually activate the following workflows (see [Running a workflow](https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow#running-a-workflow)) via the `Run workflow` button:
- [Nightly conda-based installers (`installers-conda.yml` workflow)](https://github.com/spyder-ide/spyder/actions/workflows/installers-conda.yml)

* Download and test the installation of the resulting artifacts.

* If one of the previous steps fail, merge a fix PR and start the process again with an incremented 'rcX' commit.

## To do the release
## To do the PyPI release and version tag

* Close the current milestone on Github

* git pull or git fetch/merge
* git pull or git fetch/merge the respective branch that will be released (e.g `6.x` - stable branch or `master` - alphas or betas of a new major version).

* Update `changelogs/Spyder-6.md` with `loghub spyder-ide/spyder -m vX.X.X`
* Update `changelogs/Spyder-X.md` (`changelogs/Spyder-6.md` for Spyder 6 for example) with `loghub spyder-ide/spyder -m vX.X.X`

- When releasing the first alpha of a new major version (e.g. Spyder 7), you need to add a new file called `changelogs/Spyder-7.md` to the tree.
- After that, add `changelogs/Spyder-7.md` to `MANIFEST.in`, remove `changelogs/Spyder-6.md` from it and add that path to the `check-manifest/ignore` section of `setup.cfg`.
- When releasing the first alpha of a new major version (e.g. Spyder 7), you need to add a new file called `changelogs/Spyder-X+1.md` to the tree (`changelogs/Spyder-7.md` for Spyder 7 for example).
- After that, add `changelogs/Spyder-X+1.md` to `MANIFEST.in`, remove `changelogs/Spyder-X.md` from it and add that path to the `check-manifest/ignore` section of `setup.cfg`.

* Add sections for `New features`, `Important fixes` and `New API features` in `changelogs/Spyder-5.md`. For this take a look at closed issues and PRs for the current milestone.
* Add sections for `New features`, `Important fixes` and `New API features` in `changelogs/Spyder-X.md`. For this take a look at closed issues and PRs for the current milestone.

* `git add .` and `git commit -m "Update Changelog"`

* Update [Announcements.md](Announcements.md) (this goes to our Google group) removing the outdated announcement of the same kind (major, minor, or beta/release candidate)

* `git add .` and `git commit -m "Update Announcements"`

* `git clean -xfdi` and select option `1`.
* `git clean -xfdi` and select option `1`

* Update version in `__init__.py` (set release version, remove 'dev0')

* `git add .` and `git commit -m "Release X.X.X"`

* python setup.py sdist
* `python setup.py sdist`

*Note*: This needs to be done on a Linux machine to prevent getting permission errors on executable files (see https://github.com/spyder-ide/spyder/issues/21892 and https://github.com/spyder-ide/spyder/issues/14494)).
*Note*: This needs to be done on a Linux machine to prevent getting permission errors on executable files (see [#21892](https://github.com/spyder-ide/spyder/issues/21892) and [#14494](https://github.com/spyder-ide/spyder/issues/14494)).

* Activate environment with pip packages only

* pip install -U pip setuptools twine wheel
* `pip install -U pip setuptools twine wheel`

* python setup.py bdist_wheel
* `python setup.py bdist_wheel`

*Note*: This needs to be done on a Linux machine to prevent getting permission errors in executable files (see https://github.com/spyder-ide/spyder/issues/21892 and https://github.com/spyder-ide/spyder/issues/14494)).
*Note*: This needs to be done on a Linux machine to prevent getting permission errors in executable files (see [#21892](https://github.com/spyder-ide/spyder/issues/21892) and [#14494](https://github.com/spyder-ide/spyder/issues/14494)).

* Install generated wheel locally and check for errors

* twine check dist/*
* `twine check --strict dist/*`

* twine upload dist/*
* `twine upload dist/*`

* Check in PyPI that the new release was published correctly

* git tag -a vX.X.X -m 'Release X.X.X'
* `git tag -a vX.X.X -m "Release X.X.X"`

* Update version in `__init__.py` (add 'dev0' and increment minor)

* `git add .` and `git commit -m "Back to work [ci skip]"`

* git checkout master

* git merge 5.x

* git commit -m "Release X.X.X [ci skip]"

* git push upstream master

* git push upstream 5.x

* git push upstream --tags


## After the release
* Push changes and new tag to the corresponding branches. When doing a stable release from `6.x`, for example, you could push changes with

* Publish release in our Github Releases page:
- Copy the contents of the previous release description (updating the relevant information and links to point to the new Spyder version and changelog entry).
- Edit the previous release description to only have the changelog line.
git checkout master
git merge 6.x
git commit -m "Release X.X.X [ci skip]"
git push upstream master
git push upstream 6.x
git push upstream --tags

* Merge PR on Conda-forge for Spyder. For that you can go to

https://github.com/conda-forge/spyder-feedstock
## After the PyPI release

and merge the corresponding PR for the new release (usually an automatic PR will appear that can be either merged as it is or be use as boilerplate).
* Merge PR on Conda-forge for Spyder. For that you can go to the [spyder-feedstock repo](https://github.com/conda-forge/spyder-feedstock) and merge the corresponding PR for the new release (usually an automatic PR will appear that can be either merged as it is or be use as boilerplate).

**Notes**:

- Don't forget to add new dependencies and update constraints on the rest of them. For that, you need to compare line by line the contents of the `recipe/meta.yaml` file in the feedstock with

https://github.com/spyder-ide/spyder/blob/5.x/setup.py
- After merging, give a ping to `@anaconda-pkg-build` about the new release.
- Don't forget to add new dependencies and update constraints on the rest of them. For that, you need to compare line by line the contents of the `recipe/meta.yaml` file in the feedstock with [setup.py](https://github.com/spyder-ide/spyder/blob/master/setup.py)

* Update Binder related elements when the new Spyder version is available in Conda-forge:
- Update the Spyder version on the environment file ([`binder/environment.yml`](https://github.com/spyder-ide/binder-environments/blob/spyder-stable/binder/environment.yml)) of the ([`spyder-stable` branch](https://github.com/spyder-ide/binder-environments/tree/spyder-stable)) in the `binder-environments` repo.
- Update `environment.yml` files of the [`master`](https://github.com/spyder-ide/binder-environments/blob/master/binder/environment.yml) and [`5.x`](https://github.com/spyder-ide/binder-environments/blob/5.x/binder/environment.yml) branches of `binder-environments` with the contents of the `binder/environment.yml` file present on this repo.
ccordoba12 marked this conversation as resolved.
Show resolved Hide resolved
- Update `environment.yml` files of the [`master`](https://github.com/spyder-ide/binder-environments/blob/master/binder/environment.yml) branch of `binder-environments` with the contents of the `binder/environment.yml` file present on this repo.
- Update `environment.yml` files of the [`6.x`](https://github.com/spyder-ide/binder-environments/blob/6.x/binder/environment.yml) branches of `binder-environments` with the contents of the `binder/environment.yml` file present on this repo.

* Publish release in our [Github Releases page](https://github.com/spyder-ide/spyder/releases):
- Copy the contents of the previous release description (updating the relevant information and links to point to the new Spyder version and changelog entry).
- Edit the previous release description to only have the changelog line.

* Publish release announcement to our [list](https://groups.google.com/group/spyderlib) (following [Announcements.md](Announcements.md)) after the installers have been built.