Skip to content

3.2.5a#353

Closed
newville wants to merge 4 commits intomasterfrom
3.2.5a
Closed

3.2.5a#353
newville wants to merge 4 commits intomasterfrom
3.2.5a

Conversation

@newville
Copy link
Member

@newville newville commented Jan 21, 2026

This should be merged and tagged as 3.2.5

@codecov
Copy link

codecov bot commented Jan 21, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 87.17%. Comparing base (3045fe4) to head (1075430).

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #353   +/-   ##
=======================================
  Coverage   87.17%   87.17%           
=======================================
  Files          20       20           
  Lines        2019     2019           
=======================================
  Hits         1760     1760           
  Misses        259      259           
Flag Coverage Δ
macos-latest-3.10 95.64% <ø> (ø)
macos-latest-3.11 95.64% <ø> (ø)
macos-latest-3.12 95.64% <ø> (ø)
macos-latest-3.13 95.64% <ø> (ø)
macos-latest-3.14 95.64% <ø> (ø)
macos-latest-3.8 ?
macos-latest-3.9 95.64% <ø> (ø)
no-numpy 82.51% <ø> (ø)
ubuntu-latest-3.10 95.64% <ø> (ø)
ubuntu-latest-3.11 95.64% <ø> (ø)
ubuntu-latest-3.12 95.64% <ø> (ø)
ubuntu-latest-3.13 95.64% <ø> (ø)
ubuntu-latest-3.14 95.64% <ø> (ø)
ubuntu-latest-3.8 ?
ubuntu-latest-3.9 95.64% <ø> (ø)
windows-latest-3.10 95.64% <ø> (ø)
windows-latest-3.11 95.64% <ø> (ø)
windows-latest-3.12 95.64% <ø> (ø)
windows-latest-3.13 95.64% <ø> (ø)
windows-latest-3.14 95.64% <ø> (ø)
windows-latest-3.8 ?
windows-latest-3.9 95.64% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@codspeed-hq
Copy link

codspeed-hq bot commented Jan 21, 2026

Merging this PR will not alter performance

✅ 5 untouched benchmarks


Comparing 3.2.5a (1075430) with master (3045fe4)

Open in CodSpeed

@newville newville requested a review from jagerber48 January 21, 2026 16:36
@newville newville self-assigned this Jan 21, 2026
@jagerber48
Copy link
Contributor

See https://stackoverflow.com/questions/55377831/difference-between-deprecationwarning-pendingdeprecationwarning-and-futurewarni

FutureWarning is the right warning here. While temping, DeprecationWarning and PendingDeprecationWarning are meant for developers of python itself, not users of python applications.

Or maybe I'm misunderstanding and we should discuss. I would like to take a bit of time to understand the right thing to do and make sure we're doing it the right away.

"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",

Choose a reason for hiding this comment

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

I'm not seeing a python-requires = '>=3.9' anywhere. This would arguably be more important than removing a trove classifiers, as installers like pip understand the former, and don't use the latter.

Copy link
Member Author

Choose a reason for hiding this comment

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

We stopped testing with Python 3.8, and we make no claims about working with Python 3.8.

@newville
Copy link
Member Author

@jagerber48 Please approve. FutureWarning is the current warning, and is widely viewed as obnoxious because it gives a warning at every usage. You can argue your points about which deprecation warning is best while working on 3.2.6, at any pace you want. This PR will turn off those warnings, while preserving the rest of the changes in 3.2.4.

I did not push 3.2.4, but I am also not in favor of yanking it.

Again, please approve.

Co-authored-by: Clément Robert <cr52@protonmail.com>
@jagerber48
Copy link
Contributor

At my current level of understanding, which may be wrong, you're using PendingDeprecationWarning as a hacky workaround for a bug introduced in 3.2.4. Why not just get rid of 3.2.4 and figure out what to do? Why are you strongly against yanking 3.2.4?

@newville
Copy link
Member Author

@jagerber48 It adds testing and support for Python 3.13 and 3.14. It fixes the project configuration files and fixes the uploads of releases to PyPI.

If we yank 3.2.4, we go back to 3.2.3 from last April, with no process for releasing a new version. And no clear statement or commitment to support for Python 3.13. All changes made since April become part of a set of mistaken changes, and someone will have to separate the usable parts from the stuff to throw away. And you now have to re-litigate every one of those changes. I am not in favor of that.

This PR preserves all the other changes, and suppresses the annoying warnings, which sort of follows normal Python usage.

Yes, Python warnings do not work well. The available choices are 1) use FutureWarning and issue a warning at nearly every calculation with ufloats or 2) use the very much flawed but documented and apparently "preferred" PendingDeprecationWarning, which is described in the official docs as "Base category for warnings about features that will be deprecated in the future".

Again, yes, it is very weird that this is ignored by default and is a constant source of pain, but that's what we have.

Go ahead and "try to understand this" AFTER this get approved and pushed as 3.2.5.

That you are not in favor of that worries me greatly.

@neutrinoceros
Copy link

Btw I don't understand how this is supposed to resolve #352

@jagerber48
Copy link
Contributor

jagerber48 commented Jan 21, 2026

Here's my proposal:

  1. Yank 3.2.4 bringing the package back to 3.2.3.
  2. keep the master branch where it's at
  3. Update the code to REMOVE all the deprecation warnings on error_components and derivatives
  4. Mark that 3.2.4 is yanked in the changelog
  5. Write a 3.2.5 changelog which explains that all changes in 3.2.4 are preserved in 3.2.5 except the error_components and derivatives deprecations are reverted.
  6. release 3.2.5, taking us from 3.2.3 up to 3.2.5 which looks like 3.2.4 but without the deprecations.

If you like we can drop 3.8 support in 3.2.5 but that change is ENTIRELY orthogonal to this deprecations issue and I think should be ignored for now.


This proposal addresses

And no clear statement or commitment to support for Python 3.13.

as for

And you now have to re-litigate every one of those changes. I am not in favor of that.

The thing to re-litigate is deprecating error_components and derivatives. I would like to revert this because it is BROKEN in 3.2.4 AND I am having misgivings about our lack of migration plan to 4.0. Otherwise nothing in the 3.2.4 changelog needs re-litigation.

Yes, Python warnings do not work well. The available choices are

I don't mind FutureWarning being emitted everytime the USER calls error_components() or derivatives. We are really trying to warn the user about these things. The problem is that our own internal calls to error_components() and derivatives are raising these warnings making it impossible for users on 3.2.4 to avoid getting these warnings, even if they are "behaving" and not calling error_components() explicitly themselves.

@newville
Copy link
Member Author

@jagerber48 Your proposal requires a PR. That does not exist. You can make that PR right now -- you could have made one at any point in this process. Or you can approve this one AND THEN un-deprecate anything you want. Code can be undeprecated after being warned as PendingDeprecationWarning -- that is actually a clear feature of pending deprecation warnings.

Move forward. Do not ignore maintenance.

There is a very real danger of precipitating a non-friendly fork here.

@newville
Copy link
Member Author

@jagerber48 I will enable "merge without waiting for requirements to be met" (ie, without an approved review) and merge this branch in 2 days if it is not approved.

And then we will need a very real conversation about how this project is managed. This is not good.

@neutrinoceros
Copy link

@newville I genuinely don't understand why you're pressuring your peers into approving this PR, which again, doesn't address the problems it's claiming to. As a third party consumer, your attitude is a bit alarming.

@jagerber48
Copy link
Contributor

@newville

  • Yanking 3.2.4 mitigates the danger of an unfriendly fork.
  • I have issues with this PR. I think even in this "emergency" situation, it is the wrong move.
  • I like Fix internal usage of deprecated APIs triggering user warnings #354 PR. This, short-term, resolves the issues people are experiencing. I have been moving forward with it and think we could have it merged by EOD. It exactly solves the problems users are experiencing and doesn't introduce further user-facing problems that we need to deal with in further releases. It leaves us with internal details to figure out but that is ok. It gets us out of our "urgent" emergency.

Note, this is the purpose of the yank feature on pypi. If you make a mistake and push a bad release then, if the team makes the decision, you can have the release quickly yanked within 5 minutes so users don't face issues while you sort through things internally.

@jagerber48
Copy link
Contributor

@newville I genuinely don't understand why you're pressuring your peers into approving this PR, which again, doesn't address the problems it's claiming to. As a third party consumer, your attitude is a bit alarming.

@newville I agree with this. Your attitude has pushed away the other people who volunteered to help maintain this repo when lebigot made the call. Your attitude also pushes away friendly folks in the community offering their time to help make uncertainties better. I am concerned that this fork has become the "unfriendly" fork.

@newville
Copy link
Member Author

@jagerber48 This PR is to fix the FutureWarning. I did not add that code, I did not push that release. In fact, my PR for 3.2.4 was ignored. This is just "let's turn those messages off and go back to figuring it out". You can do anything you want after that. You are delaying fixing the actual problem.

But, OK, I'm the bad guy.

OK. I yanked 3.2.4.

Closing this PR. That's 2 PRs in a row not merged. yep, good luck.

@newville newville closed this Jan 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

DEPR: self-triggered deprecation warnings in 3.2.4

3 participants