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

DOC: 2.0 release highlights and compat notes changes #25937

Merged
merged 8 commits into from
Mar 8, 2024

Conversation

rgommers
Copy link
Member

@rgommers rgommers commented Mar 5, 2024

This is a draft of the narrative section of the 2.0.0 release notes, with highlights and main messages. I think it needs to be significantly longer than that of a normal feature release, and give the reader an overview of what's in this release as well as links to other key documentation like the migration guide and the page about packaging for downstream libraries.

For the highlights I chose six top-level categories and then 2-4 items for each of those categories. Which are:

  • New features
  • Performance improvements
  • Python API improvements
  • C API improvements
  • Improved behavior
  • Documentation

A lot of work has gone into this release, so I'm sure this isn't 100% complete or representative yet. A few questions to promt feedback on this draft:

  • Are the above six categories the right ones?
  • Are they in the right order? (note: I had it differently first, but noticed that starting with new features and performance is more concrete for the average user, and hence probably more appealing)
  • What is missing? And what did I include that you think should not be there?

This PR also takes care of some leftover tasks for release notes and migration guide.

@rgommers rgommers added this to the 2.0.0 release milestone Mar 5, 2024
@rgommers rgommers marked this pull request as draft March 5, 2024 11:04
@rgommers
Copy link
Member Author

rgommers commented Mar 5, 2024

Let me ping a few people for specific categories:

Copy link
Member

@r-devulap r-devulap left a comment

Choose a reason for hiding this comment

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

Performance section looks good to me. Just some minor edits, if it seems appropriate.

doc/source/release/2.0.0-notes.rst Outdated Show resolved Hide resolved
doc/source/release/2.0.0-notes.rst Outdated Show resolved Hide resolved
doc/source/release/2.0.0-notes.rst Outdated Show resolved Hide resolved
As asked for in numpygh-25610

[skip actions] [skip azp] [skip cirrus]
For many users, running `ruff` may be all they need to do - or it's very
helpful at least - so don't hide it at the end of this very long page.
[skip actions] [skip azp] [skip cirrus]
@mattip
Copy link
Member

mattip commented Mar 6, 2024

here is the rendered document, if that is easier for people to read.

Copy link
Contributor

@lysnikolaou lysnikolaou left a comment

Choose a reason for hiding this comment

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

Not sure if this is ready for review yet, but here's a first round.

doc/source/numpy_2_0_migration_guide.rst Outdated Show resolved Hide resolved
doc/source/release/2.0.0-notes.rst Outdated Show resolved Hide resolved
doc/source/numpy_2_0_migration_guide.rst Outdated Show resolved Hide resolved
doc/source/numpy_2_0_migration_guide.rst Outdated Show resolved Hide resolved
doc/source/release/2.0.0-notes.rst Outdated Show resolved Hide resolved
doc/source/release/2.0.0-notes.rst Show resolved Hide resolved
doc/source/release/2.0.0-notes.rst Show resolved Hide resolved
doc/source/release/2.0.0-notes.rst Outdated Show resolved Hide resolved
@mattip
Copy link
Member

mattip commented Mar 7, 2024

Please sneak this snippet in, it was left out of #25914:

Removed ambiguity when broadcasting in ``np.solve``
---------------------------------------------------
The broadcasting rules for ``np.solve(a, b)`` were ambiguous when ``b`` had 1
fewer dimensions than ``a``. This has been resolved in a backward-incompatible
way and is now compliant with the Array API. The old behaviour can be
reconstructed by using ``np.solve(a, b[..., None])[..., 0]``.

(`gh-25914 <https://github.com/numpy/numpy/pull/25914>`__) 

cc @asmeurer

Copy link
Member

@seberg seberg left a comment

Choose a reason for hiding this comment

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

Not sure how, so fine. One thing that I wonder about is that e.g. NEP 50 and the Python removals is what users will actually care about most in terms of compatibility and in terms of being the largest changes and improvements in many ways.

I would be happy to iterate, thus the thought of adding a note.

doc/source/release/2.0.0-notes.rst Show resolved Hide resolved
doc/source/release/2.0.0-notes.rst Show resolved Hide resolved
doc/source/release/2.0.0-notes.rst Outdated Show resolved Hide resolved
doc/source/release/2.0.0-notes.rst Show resolved Hide resolved
@rgommers
Copy link
Member Author

rgommers commented Mar 7, 2024

Please sneak this snippet in, it was left out of #25914:

Sure, putting that under Compatibility notes

[skip actions] [skip azp] [skip cirrus]
@rgommers
Copy link
Member Author

rgommers commented Mar 7, 2024

Thanks, accepted all suggestions that are resolved.

@mattip
Copy link
Member

mattip commented Mar 7, 2024

As expected, #25943 causes pandas import to fail, which fails the docs build.

@BvB93
Copy link
Member

BvB93 commented Mar 7, 2024

Let me ping a few people for specific categories:
* Static typing: @BvB93 (no major changes I think, but want to make sure)

Can confirm, yes; just regular maintenance to reflect the runtime changes.

@charris
Copy link
Member

charris commented Mar 7, 2024

close/reopen

@charris charris closed this Mar 7, 2024
@charris charris reopened this Mar 7, 2024
@mattip
Copy link
Member

mattip commented Mar 8, 2024

Close/reopen to get latest dev wheels

@mattip mattip closed this Mar 8, 2024
@mattip mattip reopened this Mar 8, 2024
@mattip
Copy link
Member

mattip commented Mar 8, 2024

Maybe we should skip the doctest tests for now, until a pandas fix for the dtype is merged and new nightly wheels are uploaded?

@mattip
Copy link
Member

mattip commented Mar 8, 2024

Instead of skipping doctests, we could move them later in the CI steps, which AFAICT would still upload artifacts, see #25962

@rgommers
Copy link
Member Author

rgommers commented Mar 8, 2024

I had the same thought. We use next to nothing from pandas, so it's a little annoying that our doc builds are blocked on it. However, if we break pandas we usually also break matplotlib, so in those cases it won't help.

@mattip
Copy link
Member

mattip commented Mar 8, 2024

so in those cases it won't help.

Right, in general it won't help. But for this PR specifically it will: #25962, which was merged to HEAD, does upload artifacts. So rebasing this off main will clear the merge conflict and allow seeing the rendered doc (as well as checking for new warnings).

@rgommers
Copy link
Member Author

rgommers commented Mar 8, 2024

Thanks! Will rebase after the next update - which should make this merge-able (EDIT: not just yet).

[skip actions] [skip azp] [skip cirrus]
@mattip
Copy link
Member

mattip commented Mar 8, 2024

The rendered doc is here. There some warnings it would be nice to clean up if possible

doc/source/release/2.0.0-notes.rst:937: WARNING: py:obj reference target not found: numpy.linalg.vecdot
doc/source/release/2.0.0-notes.rst:1350: WARNING: py:obj reference target not found: numpy.fft._helper
doc/source/release/2.0.0-notes.rst:1359: WARNING: py:obj reference target not found: numpy.linalg._linalg
doc/source/release/notes-towncrier.rst:7: WARNING: py:obj reference target not found: numpy.polynomial.Polynomial

[skip azp] [skip actions] [skip cirrus]
@rgommers
Copy link
Member Author

rgommers commented Mar 8, 2024

The rendered doc is here. There some warnings it would be nice to clean up if possible

We really have to get to zero warnings and turn on the "error on warning" behavior in CI. I'd say that at least 75% of all PRs that add release notes are introducing new issues.

@rgommers rgommers marked this pull request as ready for review March 8, 2024 14:08
@rgommers
Copy link
Member Author

rgommers commented Mar 8, 2024

I think this is good to go now. It deserves another large copy-edit of the full notes, but that can be done in a few weeks time. This should be good enough for 2.0.0b1.

@mattip
Copy link
Member

mattip commented Mar 8, 2024

here are the rendered docs.

@mattip
Copy link
Member

mattip commented Mar 8, 2024

I am not sure how to review this, so I will just put it in as-is. Anyway it will not successfully be displayed as the devdocs until the pandas doctest passes and the build is un-broken. It is evident a lot of work went into this, thanks to all who contributed. There are some formatting glitches: some items are lists and some are topics, it would be nice to try to straighten that out for the next version.

@mattip mattip merged commit 0c54c6e into numpy:main Mar 8, 2024
2 of 4 checks passed
@mattip
Copy link
Member

mattip commented Mar 8, 2024

Thanks @rgommers

@seberg
Copy link
Member

seberg commented Mar 8, 2024

Thanks!

the pandas doctest passes and the build is un-broken

Would it be easy to work around? I am slightly worried that the next in line is matplotlib and that might not be quite as quick.

@rgommers rgommers deleted the 2.0-highlights branch March 8, 2024 15:09
@rgommers
Copy link
Member Author

rgommers commented Mar 8, 2024

I am slightly worried that the next in line is matplotlib and that might not be quite as quick.

Is that in progress / do they need help? I haven't had problems yet with local doc builds, so I think the damage should be limited.

I'm babysitting the SciPy nightlies now, they will hopefully be up within the next hour.

@mattip
Copy link
Member

mattip commented Mar 8, 2024

Would it be easy to work around?

I think a PR to skip the doctest tests and then another to revert it would work, we would merge the second one once it passes.

@seberg
Copy link
Member

seberg commented Mar 8, 2024

Is that in progress / do they need help? I haven't had problems yet with local doc builds, so I think the damage should be limited.

OK, cool, for me it is just an unknown for whether they might hit pybind11 issues mainly (I doubt it from my first look, but hard to be sure).

Let's just see, maybe this is all very quick, if not we can still rearrange the upload.

@charris
Copy link
Member

charris commented Mar 8, 2024

I'm not worried about the failing doc tests, just ignore them. They don't block the wheel releases and the 2.0.0 release is about a month away, which is when we need to generate the docs.

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.

None yet

7 participants