-
-
Notifications
You must be signed in to change notification settings - Fork 5.2k
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
DOC: SciPy 1.15.0 relnotes #21982
DOC: SciPy 1.15.0 relnotes #21982
Conversation
doc/source/release/1.15.0-notes.rst
Outdated
implementation of univariate, continuous distributions: | ||
|
||
- Speed, accuracy, and memory advantages of the new infastructure are | ||
detailed in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mostly note to self--this is the only "incomplete" sentence I noticed last night, probably because I transcribed the wiki release notes a bit early
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think I left a blank to add a link to a tutorial when it merges.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks Tyler! Looks good overall.
For the first paragraph, I suggest changing Python 3.10+
to Python 3.10-3.13
, since that's more accurate and useful info.
Here is suggested content to describe free-threading support: https://github.com/rgommers/scipy/tree/relnotes-115-freethreading. Could you please pull that in @tylerjereddy?
I added a few other high-level comments; no detailed line by line review yet since this is draft.
b15cb8b
to
362a5e0
Compare
Ok, I did the manual read through of all 123 ENH-labelled PRs that were merged under the I also added the array API support section--somehow I forgot that in the first pass at transcribing from the wiki page a few days ago. Caution: I caught some deprecations that were not mentioned--particularly messy was stuff surrounding |
I'm also compiling a similar 1.15.0 checklist at jorenham/scipy-stubs#250. So in case anyone is willing to see if I missed something, that would be certainly appreciated! |
I've attempted to catch up with all the reviewer comments now a well--I'll leave them "unresolved" for a bit in case folks prefer to check that I've genuinely resolved their concern. I'm also lifting the draft status and allowing the docs-only CI to flush through now since it looks pretty nice locally. Of course, this will remain informally WIP until branching proper. |
I'd also be "ok" with mentioning |
That'd be awesome 😄. I'll try my best to release |
So in case it wasn't clear yet; I don't plan on releasing a |
@@ -17,96 +17,1431 @@ run your code with ``python -Wd`` and check for ``DeprecationWarning`` s). | |||
Our development attention will now shift to bug-fix releases on the | |||
1.15.x branch, and on adding new features on the main branch. | |||
|
|||
This release requires Python 3.10+ and NumPy 1.23.5 or greater. | |||
This release requires Python 3.10-3.13 and NumPy 1.23.5 or greater. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Given SPEC 0, I expected this to be numpy>=1.24(.4)
🤔
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh and I see that SPEC 0 also recommends dropping support for Python 3.10 in Q4 2024.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Re: Python version, it sounds fine to stay in sync with NumPy as long as they don't get too far behind.
Re: #21982 (comment), note that we will actually be past the SPEC 0 recommended support window for NumPy 1.24 when SciPy 1.15 is released, but we tend to lag behind by a version or so, perhaps to avoid ending up on the borderline. However, I would like to get to 2.1+ earlier rather than later.
If we do NumPy 1.24 for 1.15 (Jan 2025), NumPy 1.25 for SciPy 1.16 (June 2025), and NumPy 1.26 for SciPy 1.17 (Jan 2026), we could probably skip to NumPy 2.1 for SciPy 1.18 (Jun 2026).
I pushed in a commit that aims to address the latest round of reviewer comments. Python Edit: there was no need to flush the full CI, forgot |
I included Matt's addition of |
I'll make sure that the URL will remain valid for the foreseeable future 👌🏻. |
@mdhaber @h-vetinari how about you? any concerns on your end/conda-forge side? |
[skip ci] [ci skip] [skip cirrus] [skip circle]
* Add a release note entry for `lombscargle` changes based on reviewer feedback. [skip ci] [ci skip] [skip cirrus] [skip circle]
* Update the release notes for SciPy `1.15.0` following manual inspection of all 123 merged enhancement-labeled PRs with this milestone. * Add forgotten array API support section from the release notes wiki to the RST release notes. [skip ci] [ci skip] [skip cirrus] [skip circle]
* Update the `.mailmap` file according to scipygh-21940, then update the authors list in the release notes for SciPy `1.15.0` accordingly. [skip ci] [ci skip] [skip cirrus] [skip circle]
* Add issue/PR lists to SciPy `1.15.0` release notes. [skip ci] [ci skip] [skip cirrus] [skip circle]
* Remove unused subsections in the SciPy `1.15.0` release notes. [skip ci] [ci skip] [skip cirrus] [skip circle]
* Address the first batch of reviewer comments related to the draft SciPy `1.15.0` release notes. [docs only]
* Mention the `scipy-stubs` package in the release notes. * Mention `ndonnx` in the array API support section. * Mention the removal of the functions in `scipy.misc` and the renaming of `sosfreqz` to `freqz_sos`. * Remove an undesirable escape character from the release notes formatting for issue 21044. * Mention the deprecations of `distance.kulczynski1` and `distance.sokalmichener`. * Clarified the current status of batching support for `scipy.linalg.toeplitz`.
* Mention argument deprecations in `ttest_ind` in the SciPy `1.15.0` release notes. * A link to the `scipy-stubs` installation instructions has been added to the SciPy `1.15.0` release notes. [docs only]
distribution (e.g. `scipy.stats.norm`) with the new infrastructure. | ||
This can improve the speed and accuracy of existing distributions, | ||
especially for methods not overridden with custom formulas in the | ||
implementation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#21746 added scipy.stats.{exp,log}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#21752 added scipy.stats.{abs,truncate}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, I'm doing some fairly fast updating of the relnotes from recently-merged PRs locally for now.. |
* Deal with scipygh-22020. * Update the author list one more time in the SciPy `1.15.0` release notes, before branching. * Update the issue/PR lists before branching, and update the release notes again for ENH PRs that were recently merged. * Remove the tentative mention of docs relating to new stats distn infra for now. [docs only]
e397bab
to
3652065
Compare
I've pushed in the latest revisions/relnotes additions--we'll see if the docs build in CI agrees with the fix for gh-22020. |
doc/source/release/1.15.0-notes.rst
Outdated
- Added ``OrderStatisticDistribution``, a class representing the distribution | ||
of order statistics of samples drawn from another distribution. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OrderStatisticDistribution
isn't public, and the scipy.stats.order_statistic
factory function is what should be used for this:
https://github.com/scipy/scipy/pull/21790/files
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Added ``OrderStatisticDistribution``, a class representing the distribution | |
of order statistics of samples drawn from another distribution. |
I'll add this (order_statistic
) up above.
doc/source/release/1.15.0-notes.rst
Outdated
other than ``(2, 2)``. | ||
- `scipy.stats.truncate` adds the ability to truncate the distribution | ||
underlying a random variable and `scipy.stats.abs` provides the ability to | ||
take the absolute value of a random variable. The new ``FoldedDistribution`` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think the FoldedDistribution
is exposed in scipy.stats
, or am I wrong here, @mdhaber ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You're right, thanks! I will read through this again now.
doc/source/release/1.15.0-notes.rst
Outdated
- Added ``OrderStatisticDistribution``, a class representing the distribution | ||
of order statistics of samples drawn from another distribution. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Added ``OrderStatisticDistribution``, a class representing the distribution | |
of order statistics of samples drawn from another distribution. |
doc/source/release/1.15.0-notes.rst
Outdated
- It is now possible to generate quasi-random samples from statistical | ||
distributions by providing a ``QMCEngine`` object to the ``rng`` argument. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- It is now possible to generate quasi-random samples from statistical | |
distributions by providing a ``QMCEngine`` object to the ``rng`` argument. |
This is only part of the sample
method of the new RV objects, so it's not really an enhancement that needs to be covered separately.
doc/source/release/1.15.0-notes.rst
Outdated
- Added ``OrderStatisticDistribution``, a class representing the distribution | ||
of order statistics of samples drawn from another distribution. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Added ``OrderStatisticDistribution``, a class representing the distribution | |
of order statistics of samples drawn from another distribution. |
I'll add this (order_statistic
) up above.
doc/source/release/1.15.0-notes.rst
Outdated
- `scipy.stats.truncate` adds the ability to truncate the distribution | ||
underlying a random variable and `scipy.stats.abs` provides the ability to | ||
take the absolute value of a random variable. The new ``FoldedDistribution`` | ||
represents the distribution underlying the absolute value of a random | ||
variable. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- `scipy.stats.truncate` adds the ability to truncate the distribution | |
underlying a random variable and `scipy.stats.abs` provides the ability to | |
take the absolute value of a random variable. The new ``FoldedDistribution`` | |
represents the distribution underlying the absolute value of a random | |
variable. |
|
||
- `scipy.stats.Mixture` has been added to represent mixture distributions. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- `scipy.stats.Mixture` has been added to represent mixture distributions. | |
- `scipy.stats.Mixture` has been added to represent mixture distributions. | |
- Instances of `scipy.stats.Normal` and the classes returned by | |
`scipy.stats.make_distribution` are supported by several new | |
mathematical transformations. | |
- `scipy.stats.truncate` for truncation of the support. | |
- `scipy.stats.order_statistic` for the order statistics of a specified number of | |
IID random variables. | |
- `scipy.stats.abs`, `scipy.stats.exp`, and `scipy.stats.log`. For example, | |
``scipy.stats.abs(Normal())`` is distributed according to the folded normal | |
and ``scipy.stats.exp(Normal())`` is lognormally distributed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this will LGTM after these last few suggestions.
doc/source/release/1.15.0-notes.rst
Outdated
that all new code use sparse arrays and that developers start to migrate | ||
their existing code from sparse matrix to sparse array: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
that all new code use sparse arrays and that developers start to migrate | |
their existing code from sparse matrix to sparse array: | |
that all new code use sparse arrays instead of sparse matrices and that developers | |
start to migrate their existing code from sparse matrix to sparse array: |
doc/source/release/1.15.0-notes.rst
Outdated
- A new distribution infrastructure in `scipy.stats` that includes speed | ||
and accuracy improvements to existing distributions. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- A new distribution infrastructure in `scipy.stats` that includes speed | |
and accuracy improvements to existing distributions. | |
- New probability distribution features in `scipy.stats` can be used to improve the | |
speed and accuracy of existing continuous distributions and perform new | |
probability calculations. |
"can be used to" because they don't automatically change the existing instances of rv_continous
; rather, they transform them into subclasses of the new ContinuousDistribution
.
"perform new probability calculations" refers to the new methods of ContinuousDistribution
(e.g. several new log-methods, separate raw, central, and standardized moments, etc.)
doc/source/release/1.15.0-notes.rst
Outdated
logarithms. To facilitate batch computation, the function is vectorized and | ||
supports several Array API compatible array libraries in addition to | ||
NumPy (see "Array API Standard Support" below). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
logarithms. To facilitate batch computation, the function is vectorized and | |
supports several Array API compatible array libraries in addition to | |
NumPy (see "Array API Standard Support" below). | |
logarithms. |
This is true, but it's mentioned above. Rather than including this sort of phrasing everywhere (e.g. the next two bullets, too), it's fine with me for it to just appear in select places.
doc/source/release/1.15.0-notes.rst
Outdated
|
||
- `scipy.stats.Normal` represents the normal distribution with the new | ||
interface. In most cases, its methods are faster and more accurate than |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
interface. In most cases, its methods are faster and more accurate than | |
interface. In typical cases, its methods are faster and more accurate than |
I started a testrun based on current |
* Apply final round of suggestion from code review of SciPy `1.15.0` release notes. [docs only]
Alright, thanks Matt and Joren for helping with last-minute cleanups. I think got most of the recent round of comments dealt with now and if the docs CI passes again I'll likely squash merge and branch. |
Quick update: I opened #22022 (non-critical), and there's some new timeouts in emulation More interestingly, after working around a conda-build issue, it also looks like we'll be able to add free-threading builds for scipy right away (it builds & test suite passes 🥳). |
Early draft of SciPy
1.15.0
release notes. Skipping CI completely for now, though local render of the draft notes looks nice so far. Folks may continue to update the wiki or make suggestions here--either is fine--I simply start this because the initial transcription takes longer than you might think so getting it rolling helps avoid last minute pain.TODO:
ENH
PRs and add entries not already present in current notes (last done on Dec. 3/2024).mailmap
update from DOC, REL: 1.15.0 author mappings #21940