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

Update release guide instructions post v3.7.0 #25235

Merged
merged 6 commits into from
Mar 15, 2023

Conversation

ksunden
Copy link
Member

@ksunden ksunden commented Feb 16, 2023

PR Summary

TODOS

  • Discuss wording/sequencing of creating the release branches/milestones
    - I have a relatively minimal change that puts "create the release branch" in the same part of the workflow, just instead of releasing from main and then creating the release branch during the .0 release, we create it for the last anticipated micro release of the previous minor version. This is closer, I think to what we actually do, but not sure if we want to reorganize that thought.

  • Add comment out of Next what's new to the appropriate section
    - This is referred to later on to uncomment, but it doesn't actually say to comment it in the linked section.
    - Alternatively, may be able to use rst to ignore it for releases and not have to edit this at all.

  • When and how does the "merge-up" process work? (See Merge v3.6.x branch to main #23918 for an example of such a pull request)
    - Does this only happen for .0 releases, or every release
    - If conflicts do arise, how are they resolved (can a standard answer be given?)?
    - Is the only real need for this for the purposes of the version switcher? (which seems to be the primary stated reason)
    - Document interactions with setuptools-scm (which is the other stated reason)

PR Checklist

Documentation and Tests

  • Has pytest style unit tests (and pytest passes)
  • Documentation is sphinx and numpydoc compliant (the docs should build without error).
  • New plotting related features are documented with examples.

Release Notes

  • New features are marked with a .. versionadded:: directive in the docstring and documented in doc/users/next_whats_new/
  • API changes are marked with a .. versionchanged:: directive in the docstring and documented in doc/api/next_api_changes/
  • Release notes conform with instructions in next_whats_new/README.rst or next_api_changes/README.rst

doc/devel/release_guide.rst Outdated Show resolved Hide resolved
Comment on lines 259 to 264
If this is the last micro release anticipated (or otherwise are entering feature
freeze for the next minor release), create a release branch for the next minor
release ::

git switch main
git branch v2.1.x
Copy link
Member

Choose a reason for hiding this comment

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

This is not normally something we do. Everything goes to main until we decide to branch near-ish the release candidate. It's not related to the tagging of the last bugfix/micro.

@QuLogic
Copy link
Member

QuLogic commented Feb 21, 2023

Discuss wording/sequencing of creating the release branches/milestones

  • I have a relatively minimal change that puts "create the release branch" in the same part of the workflow, just instead of releasing from main and then creating the release branch during the .0 release, we create it for the last anticipated micro release of the previous minor version. This is closer, I think to what we actually do, but not sure if we want to reorganize that thought.

Branching and tagging a final micro release are independent. I chose to tag 3.6.3 at the time of making v3.7.x, because there just seemed to be enough already backported to make a release. But there is no correlation between these two steps.

Add comment out of Next what's new to the appropriate section

  • This is referred to later on to uncomment, but it doesn't actually say to comment it in the linked section.
  • Alternatively, may be able to use rst to ignore it for releases and not have to edit this at all.

We have conditions in the reST to automatically enable/disable these sections. Those instructions are outdated and can be deleted.

When and how does the "merge-up" process work? (See Merge v3.6.x branch to main #23918 for an example of such a pull request)

  • Does this only happen for .0 releases, or every release
  • If conflicts do arise, how are they resolved (can a standard answer be given?)?
  • Is the only real need for this for the purposes of the version switcher? (which seems to be the primary stated reason)
  • Document interactions with setuptools-scm (which is the other stated reason)

It should occur for every release, though it's not always done. Ensuring that the version, as generated by git describe (and thus setuptools-scm), is as close as correct as can be is IMO the primary reason. The version switcher change could just as well have been cherry-picked. Conflicts are almost always resolved for the version on main, but it entirely depends on whether changes have been made directly to the release branch. It is up to the release manager to make the call there.

@ksunden
Copy link
Member Author

ksunden commented Feb 21, 2023

RE sequencing and severing the idea of creating the release branch and doing the release:

  • yes, I agree, reworking those edits.

RE Next what's new:

  • There was one such .. ifconfig:: releaselevel == 'dev' missing from doc/users/release_notes.rst where release_notes_next.rst was .. include::'d. That will be added in my next commit and the comment about uncommenting such things will be removed.

RE merge-up:

  • Yes, I agree, just want put it into the guide.

(for this cycle, there was one set of changes fixing grammar on a note added to each animation tutorial that was made only in the v3.7.x branch, but other than that and the link fixes during release used main for everything)

@tacaswell
Copy link
Member

I chose to tag 3.6.3 at the time of making v3.7.x, because there just seemed to be enough already backported to make a release.

I think we have historically had a final micro around the time we did the next minor/major release? That said, my impressions of this may be very clouded by the 2.0 and 3.0 processes which both had very long running (N-1).x.y series associated with them....

@QuLogic
Copy link
Member

QuLogic commented Feb 22, 2023

For example, 3.5.3 was tagged on Aug 10, but the first backport that got to v3.6.x was Aug 22 and 3.6.0rc1 was Aug 22. I don't recall exactly when that branching happened, but it wasn't at the same time as the 3.5.3 release.

@ksunden ksunden marked this pull request as ready for review February 22, 2023 20:28
doc/devel/release_guide.rst Outdated Show resolved Hide resolved
doc/devel/release_guide.rst Outdated Show resolved Hide resolved
@QuLogic QuLogic added this to the v3.8.0 milestone Mar 1, 2023
doc/devel/release_guide.rst Outdated Show resolved Hide resolved
@ksunden
Copy link
Member Author

ksunden commented Mar 3, 2023

Updating pinned versions of mpl-sphinx-theme added via matplotlib/mpl-sphinx-theme#57 rather than here.

Copy link
Member

@QuLogic QuLogic left a comment

Choose a reason for hiding this comment

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

Just two minor tweaks.

doc/devel/release_guide.rst Outdated Show resolved Hide resolved
doc/devel/release_guide.rst Outdated Show resolved Hide resolved
Co-authored-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
@QuLogic QuLogic merged commit 9700f74 into matplotlib:main Mar 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants