Skip to content

DOC: Update release process #53435

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

Merged
Merged
Changes from 1 commit
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
29 changes: 20 additions & 9 deletions doc/source/development/maintaining.rst
Original file line number Diff line number Diff line change
Expand Up @@ -373,11 +373,14 @@ Prerequisites

In order to be able to release a new pandas version, the next permissions are needed:

- Merge rights to the `pandas <https://github.com/pandas-dev/pandas/>`_,
`pandas-wheels <https://github.com/MacPython/pandas-wheels>`_, and
- Merge rights to the `pandas <https://github.com/pandas-dev/pandas/>`_ and
`pandas-feedstock <https://github.com/conda-forge/pandas-feedstock/>`_ repositories.
- Permissions to push to main in the pandas repository, to push the new tags.
- `Write permissions to PyPI <https://github.com/conda-forge/pandas-feedstock/pulls>`_
For the latter, open a PR adding your GitHub username to the conda-forge recipe.
- Permissions to push to ``main`` in the pandas repository, to push the new tags.
- `Write permissions to PyPI <https://github.com/conda-forge/pandas-feedstock/pulls>`_.
- Access to our website / documentation server. Share your public key with the
infrastructure committee to be added to the ``authorized_keys`` file of the main
server user.
- Access to the social media accounts, to publish the announcements.

Pre-release
Expand Down Expand Up @@ -443,17 +446,20 @@ which will be triggered when the tag is pushed.

4. Create a `new GitHub release <https://github.com/pandas-dev/pandas/releases/new>`_:

- Title: ``Pandas <version>``
- Tag: ``<version>``
- Files: ``pandas-<version>.tar.gz`` source distribution just generated
- Title: ``Pandas <version>``
- Description: Copy the description of the last release of the same kind (release candidate, major/minor or patch release)
- Files: ``pandas-<version>.tar.gz`` source distribution just generated
- Set as a pre-release: Only check for a release candidate
- Set as the latest release: Leave checked, unless releasing a patch release for an older version
(e.g. releasing 1.4.5 after 1.5 has been released)

5. The GitHub release will after some hours trigger an
`automated conda-forge PR <https://github.com/conda-forge/pandas-feedstock/pulls>`_.
Merge it once the CI is green, and it will generate the conda-forge packages.
In case a manual PR needs to be done, the version, sha256 and build fields are the
ones that usually need to be changed. If anything else in the recipe has changed since
the last release, those changes should be available in ``ci/meta.yaml``.

6. Packages for supported versions in PyPI are built automatically from our CI.
Once all packages are build download all wheels from the
Expand All @@ -468,8 +474,10 @@ which will be triggered when the tag is pushed.
Post-Release
````````````

1. Update symlink to stable documentation by logging in to our web server, and
editing ``/var/www/html/pandas-docs/stable`` to point to ``version/<latest-version>``.
1. Update symlinks to stable documentation by logging in to our web server, and
editing ``/var/www/html/pandas-docs/stable`` to point to ``version/<latest-version>``
for major and minor releases, or ``version/<minor>`` to ``version/<patch>`` for
patch releases.
Copy link
Member

Choose a reason for hiding this comment

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

Is there a command/script to do this?

I haven't really done symlinks before, so this is probably something that I shouldn't just figure out on the fly.

Copy link
Member Author

Choose a reason for hiding this comment

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

It's just something like ln -sf 2.0.2 2.0 from the command line. I don't think it's worth having a script, happy to have a call to show you, and do it together during the release (that part and any really).

Copy link
Member

Choose a reason for hiding this comment

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

Thanks, that would be really helpful (I guess I'll ping you as 2.0.3 draws closer).

It might be good to write down the step-by-step commands regardless, though (since that makes less room for error, and is helpful for others too).

I dunno if the public docs is the right place to do so, since we wouldn't want to list e.g. the IP of the docs VM publicly(maybe a google doc shared to the core team would be best?).

Copy link
Member Author

Choose a reason for hiding this comment

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

I just updated the instructions, let me know if there is anything that is not clear or can be improved.


2. If releasing a major or minor release, open a PR in our source code to update
``web/pandas/versions.json``, to have the desired versions in the documentation
Expand All @@ -481,13 +489,16 @@ Post-Release

5. Open a PR with the placeholder for the release notes of the next version. See
for example `the PR for 1.5.3 <https://github.com/pandas-dev/pandas/pull/49843/files>`_.
Note that the template to use depends on whether it is a major, minor or patch release.

6. Announce the new release in the official channels (use previous announcements
for reference):

- The pandas-dev and pydata mailing lists
- Twitter, Mastodon and Telegram
- Twitter, Mastodon, Telegram and LinkedIn

7. Update this release instructions to fix anything incorrect and to update about any
change since the last release.

.. _governance documents: https://github.com/pandas-dev/pandas/blob/main/web/pandas/about/governance.md
.. _list of permissions: https://docs.github.com/en/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization