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

Release 2.1 #53047

Closed
phofl opened this issue May 2, 2023 · 32 comments
Closed

Release 2.1 #53047

phofl opened this issue May 2, 2023 · 32 comments
Labels
Milestone

Comments

@phofl
Copy link
Member

phofl commented May 2, 2023

This is the tracker for the 2.1 release.

cc @pandas-dev/pandas-core

Targeted for August 3rd 2023

@phofl phofl added the Release label May 2, 2023
@phofl phofl added this to the 2.1 milestone May 2, 2023
@phofl
Copy link
Member Author

phofl commented May 2, 2023

We released a new minor version every 6 months for the last couple of years. This is quite a long break between releases. I checked with @datapythonista and the amount of time that is required for a release was decreasing recently. I would be interested in releasing a new minor version more often to reduce the number of changes that are accumulating for a new release, which makes it harder to upgrade for our users. Also, getting improvements out faster is nice for us as well. I suggest releasing a new minor version every 4 months.

Thoughts about this?

@mroeschke
Copy link
Member

Agreed we should shorten the release cadence for minor releases, especially if we aim to release major versions every year.

I would be okay with 4 months, even as frequent as 2 or 3 months dependence on the burden of the release process.

@jreback
Copy link
Contributor

jreback commented May 2, 2023

+1

@datapythonista
Copy link
Member

Latest release (2.0.1) was very straight-forward, something that I think it's reasonable to do every other week for example. The main thing has been all the amazing work @lithomas1 did in automating the wheels, and also it made a significant difference tagging the evening before the release, so if nothing fails, everything is ready in the morning and in couple of hours the release is done. The main issues we had in the most recent releases will be now prevented by @mroeschke 's #53027, so I expect almost all releases to be as smooth as 2.0.1.

One thing we're not doing and I personally think it'd help is having more strict dates for the releases. For patch releases we're fine, and I think for major releases it's valuable to have flexibility and adapt the date to what we want to release. But if we want to release significantly more often, I'd personally set strict dates for the releases, and release what's ready on that date, instead of what we often do now to postpone one or two weeks the releases to try to get few more PRs in. Besides helping release more often, I think this would make things more predictable for both users and devs, and save us some time and energy when planning the releases. No big deal if people prefer to have the flexibility, but that's what I'd do.

@MarcoGorelli
Copy link
Member

I'd be +1 releasing as often as is feasible. Right now there's too much of "we're finally going to release! Oh wait, it would be nice to get fix x in too, let's push it back another week". If people know there's going to be another release soon after, they don't need to rush to get their fixes in, and don't need to block releases for them.

Bi-weekly patch releases, bi-monthly minor releases, and yearly major releases, for example?

@phofl
Copy link
Member Author

phofl commented May 3, 2023

2 months is a bit too often maybe? Don't know. Could I ask for a preliminary show of hands for

  • 2 months hooray emoji
  • 3 months thumbs up
  • 4 months heart emoji

Feel free to vote for more than one if you are happy with more than one solution

@simonjayhawkins
Copy link
Member

Oh wait, it would be nice to get fix x in too, let's push it back another week". If people know there's going to be another release soon after, they don't need to rush to get their fixes in

I'm not sure this has applied to fixes for patch releases but for maybe more for outstanding items (maybe fixes) for enhancements in minor releases?

The patch releases have been mainly calendar releases without any significant holdups (except the final patch in the release cycle)

I'm -1 on too frequent releases unless we can ensure that we have no regressions outstanding in the minor release cycle. Even, with six months, delays to the final patch release in a minor release cycle are dependent on outstanding regressions.

Users should be able between minor versions without issue. i.e. if on pandas 1.3.5 should be able to upgrade to 1.4.4 without any regressions. If on 1.4.4 should be able to upgrade to 2.0.x. If a regression is identified, then should be able to report it and it should be fixed in the 2.0.x before 2.1 is released.

I think having very frequent minor releases may not make this feasible.

@phofl
Copy link
Member Author

phofl commented May 3, 2023

This is mostly because we either don't fix them at all or we can't fix them not because we run out of time. The regressions that we can address are mostly fixed within days of them getting reported.

@simonjayhawkins
Copy link
Member

Other than developer timescales, we also need to consider user timescales. The user may decide to wait for the first or second patch release for stability and then identify an issue? I think 4 or 5 patch release gives a good window for regression fixes. Assuming more are identified early on, a patch release cycle of 3-3-4-5-6 weeks for the patches gives a 5 - 6 month minor release cycle.

@phofl
Copy link
Member Author

phofl commented May 3, 2023

We could also cut down to 3-3-3-3 and possibly another one after an additional 3 weeks and end up with 4 months.

Pushing less changes at a time should also reduce the number of regressions reported and lower the barrier of upgrading.

@simonjayhawkins
Copy link
Member

sounds reasonable. Maybe could also consider keeping older branches active longer. i.e. releases aren't sequential, so a regression in 2.0.x could be fixed and backported even after 2.1 is released.

@simonjayhawkins
Copy link
Member

We could also consider including all bug fixes in patch releases and having more of an enhancement focus on the minor releases and keep the minor release cycle to 6 months. This could also achieve the same goal?

@phofl
Copy link
Member Author

phofl commented May 3, 2023

I'd prefer shipping enhancements faster as well, but more importantly: Many, if not most, of our regressions are introduced through bug-fixes. I guess this would make patch releases a lot more unstable, which is kinda the opposite of what you'd prefer if I understood you correctly earlier?

@simonjayhawkins
Copy link
Member

Many, if not most, of our regressions are introduced through bug-fixes.

We should probably do some analysis for this as it could be that refactors and clean-ups account for a few.

I guess this would make patch releases a lot more unstable

yes, I acknowledge there is increased risk with this.

@simonjayhawkins
Copy link
Member

I guess this would make patch releases a lot more unstable

yes, I acknowledge there is increased risk with this.

The upside is that it may become easier to revert these before too many changes have been built on top of them as has been the case with the bugfixes being included in the minor releases.

@phofl
Copy link
Member Author

phofl commented May 3, 2023

Personally (from a user pov), I'd prefer stable patches and shorter release cycles, I want to get the newest patch without having to worry about stuff breaking while switching to a new minor version requires some attention anyway.

Our ci was always running with the newest patch and we barely had issues (ever) but we made a conscious effort when switching to a new minor version.

@rhshadrach
Copy link
Member

Personally (from a user pov), I'd prefer stable patches and shorter release cycles

+1 on this as well. Users should feel quite safe upgrading the patch version, and I worry about the regressions that can be induced by bug fixes.

The longer a commit sits in main before being release, the greater the chances an issue is discovered without being released, but the longer users have to wait for improvements and the changes are more numerous. 3 months sounds like a good sweet spot, but I'm also okay with 2 or 4 months.

@simonjayhawkins
Copy link
Member

Users should feel quite safe upgrading the patch version, and I worry about the regressions that can be induced by bug fixes.

Agreed. I would suggest that if we did include more bug fixes in patch releases (although not much support so far) that any regression reported on a patch triggers an immediate revert and re-release.

I see this as potentially more effort but does get bug fixes out into the community much quicker than increasing the minor release frequency.

@lithomas1
Copy link
Member

One thing that I want to point out is that for minor/major releases, we cut an RC (about 2 weeks before, IIRC).

Assuming we want to keep the RCs at least semi-close to the release (I believe we don't do new API changes, have minimal new enhancements, but allow bug fixes), 2/3 months might be too short of a window to get larger new features in.

@mroeschke
Copy link
Member

During the 2023-07-26 dev call, agreed to cut the RC during the dev sprint

@lithomas1
Copy link
Member

As the RC gets closer, I've thought of some potential blockers/issues off the top of my head.

  1. Fix build size discrepancies (BLD: Shrink sdist/wheel sizes #54052, I'm close to finishing this off)
    a. prep for meson as default by deprecating setuptools build formally
  2. Adopt Cython 3.0 (we are compatible, should bump minimum and clean out the code)
    a. I can also take a look at this since I've mostly been the one ensuring we are compatible.
  3. Drop support for numpy 1.21. as per NEP 29 (6/23/2023 was the cutoff date)

Anyone want to add anything else? @pandas-dev/pandas-core

I'm also thinking about cancelling the 2.0.4 release. Nothing has been merged for 2.0.4 as of right now, so just giving a heads up in case anyone has any last minute regressions they want to address.

@lithomas1
Copy link
Member

@pandas-dev/pandas-core

Hi all,
I'm planning to cut the 2.1 release this Wednesday (after the dev call).
Thursday is also an option, if necessary - anything later would mean pushing back the release 1/2 weeks.
(I'll be travelling next week).

We currently have 2 blockers (https://github.com/pandas-dev/pandas/issues?q=is%3Aissue+is%3Aopen+label%3ABlocker)
one of which is related to PDEP-6 and another is related to using constructors with ExtensionDtypes (If no one takes a look at it, I'll have a look tomorrow).

Are there any thoughts/comments/objections on the release timing, or any other potential blockers I've missed?

@phofl
Copy link
Member Author

phofl commented Aug 21, 2023

The stuff that's related to the string option should get in. I'd prefer next Monday for the release, but if that's not doable the lets push it back as far as you can before your vacation

@lithomas1
Copy link
Member

The stuff that's related to the string option should get in. I'd prefer next Monday for the release, but if that's not doable the lets push it back as far as you can before your vacation

No problem (and no rush on your PRs).

I actually have to go back to school not vacation, though. :(
This shouldn't be too big a deal, the release will just probably be later in the day.

@MarcoGorelli
Copy link
Member

We currently have 2 blockers

Looks like these are both in now

@phofl
Copy link
Member Author

phofl commented Aug 28, 2023

#54789 and
#54778

are both addressing regressions on the rc. Both should be ready if someone can take a look though

@jorisvandenbossche
Copy link
Member

I would like to include #54838, since it changes some public signatures for downstream EA authors, in case someone could give it a review

@phofl
Copy link
Member Author

phofl commented Aug 29, 2023

PRs seem to be all in now

@lithomas1
Copy link
Member

Awesome

@pandas-dev/pandas-core
Please hold off from backporting anything to 2.1 for now.

I'm planning on starting the release ~7am eastern (11 UTC) and finishing around ~11AM eastern (3pm utc)

@lithomas1
Copy link
Member

lithomas1 commented Aug 30, 2023

Starting the release right now.

@lithomas1
Copy link
Member

So the ppc64le and some PyPy builds ended up failing.

I don't really have the ability to debug this (they were passing on the RC), so maybe we can just announce and add those later if they do end up succeeding?

Downloading the ppc wheels, everything inside looks fine (there is an import error like the pandas_parser extension module is missing, but it's definetely there).

Not sure about the PyPy errors, they only appeared after I merged the PR into main for some reason.

@lithomas1
Copy link
Member

The PyPy errors are from PyPy 7.3.12 from a couple days ago.
Will announce then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

9 participants