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

0.19 Release #3154

Closed
7 tasks done
davidhewitt opened this issue May 15, 2023 · 13 comments · Fixed by #3187
Closed
7 tasks done

0.19 Release #3154

davidhewitt opened this issue May 15, 2023 · 13 comments · Fixed by #3187

Comments

@davidhewitt
Copy link
Member

davidhewitt commented May 15, 2023

As discussed in #2593 (comment) let's put out 0.19 release soon and then make MSRV bump breaking changes to ease the pain with CI.

As usual, list of a few things which I was hoping to round off before the release:

@adamreichold
Copy link
Member

I think PyCell and Py for #[pyclass(frozen)] struct T should have a method to access &T without needing the GIL. I believe this is safe and will help us make progress to nogil / sub-interpreter support (by encouraging use of frozen pyclasses which can then use Rust synchronization mechanisms).

I think this would require an additional T: Send + Sync bound though, wouldn't it? Py<T> is unconditionally Send + Sync and even a #[pyclass(frozen)] could contain types like Rc or RefCell, couldn't it?

@adriangb
Copy link
Contributor

adriangb commented May 16, 2023

Sorry for giving you so many problems. Let me at least look into the PyBaseException thing.

@davidhewitt
Copy link
Member Author

I think this would require an additional T: Send + Sync bound though, wouldn't it? Py is unconditionally Send + Sync and even a #[pyclass(frozen)] could contain types like Rc or RefCell, couldn't it?

Good point. I think Sync may be enough to allow &T from multiple threads? The drop requirements for Send are protected by unsendable.

@davidhewitt
Copy link
Member Author

Sorry for giving you so many problems. Let me at least look into the PyBaseException thing.

No problem; I think hopefully that one's not too hard once I see the compiler's full output!

@davidhewitt
Copy link
Member Author

Sorry for giving you so many problems. Let me at least look into the PyBaseException thing.

No problem; I think hopefully that one's not too hard once I see the compiler's full output!

Ok I tried to reproduce just now and couldn't, so I'm marking that one off until you can share a minimal repro @adriangb 😄

bors bot added a commit that referenced this issue May 18, 2023
3158: Add Py::get for GIL-independent access to frozen classes. r=davidhewitt a=adamreichold

`@davidhewitt` Is this what you had in mind for #3154?

The name is an obvious candidate for bikeshedding.

Trying to write an example, I noticed that making `PyCell::get_frozen` public is most likely not useful as there is no way to safely get a `&PyCell` without acquiring the GIL first?

Co-authored-by: Adam Reichold <adam.reichold@t-online.de>
@davidhewitt
Copy link
Member Author

For Ellipsis / None / NotImplemented I've decided I'd prefer not rush to add these now, because fixing #1056 might yet adjust our object model and in the meanwhile we can think about their API. I've left #3162 to remember this for later.

@davidhewitt
Copy link
Member Author

@DataTriny I wonder if we think it's possible to release 0.19 with the new license, or whether the final few contributors will take long enough that we should hope to release that with 0.20?

@adamreichold
Copy link
Member

@davidhewitt I would like to nominate including #3165 in this release if solution in #3168 turns out to be workable. Otherwise we might have to wait for another chance for a breaking change before fixing this.

If my understanding of the issue is correct, we should also definitely include #3169 to avoid releasing Py::get and PyCell::get with incorrect trait bounds.

@DataTriny
Copy link
Contributor

@davidhewitt I've now contacted everyone and will wait two weeks before sending reminders. We'd be lucky if the relicensing is done before the end of June.

So not ready for 0.19 I guess.

@adamreichold
Copy link
Member

If my understanding of the issue is correct, we should also definitely include #3169 to avoid releasing Py::get and PyCell::get with incorrect trait bounds.

So while that one was a dud, I think we should nevertheless include the fix for the unrelated issue #3176 discovered during the discussion.

@adamreichold
Copy link
Member

I think that if tonight's remaining merge trains land, we are ready to create a 0.19 release before the purge the MSRV bump. 🤪

@davidhewitt
Copy link
Member Author

Agreed, I'm happy to cut this tomorrow evening unless you're particularly wanting to do it @adamreichold

@adamreichold
Copy link
Member

adamreichold commented May 28, 2023

Not particularly, I would like to focus on the follow-up NumPy release (admittedly a smaller endeavour, but I would like follow up in a timely manner).

@davidhewitt davidhewitt linked a pull request May 28, 2023 that will close this issue
bors bot added a commit that referenced this issue May 31, 2023
3187: release: 0.19.0 r=davidhewitt a=davidhewitt

As per #3154 I think we're ready to push 0.19.

I'll put this live on Tuesday evening unless I hear a reason to postpone.

Co-authored-by: David Hewitt <1939362+davidhewitt@users.noreply.github.com>
@bors bors bot closed this as completed in #3187 May 31, 2023
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 a pull request may close this issue.

4 participants