-
Notifications
You must be signed in to change notification settings - Fork 765
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: 0.23.0 #4651
release: 0.23.0 #4651
Conversation
41ebbea
to
694e8cc
Compare
With all items done, I have rebased this and curated the (massive) CHANGELOG entry. I've provisionally marked this for release on Saturday (9th Nov). In the interim, I will try to pass eyes over the docs and improve what I can before release. |
I think we are still missing docs for migration particularly of I might have more energy tomorrow; it is possible that instead of releasing I will push a docs PR, and perhaps as long as there are some docs we can release on Sunday. I think it'd be pretty unfair on users if we released without that doc explaining the It is also possible that I won't get around to the docs writing tomorrow, family situation will be ongoing for the foreseeable future. Will make a judgement call what to do then. |
I didn't have time & energy to make progress yesterday, unclear if today will be any better. I have a train journey tomorrow so I can probably get the docs written at least. If #4216 (reply in thread) reproduces on |
I attempted a fix in #4694. It makes it work, but we should probably overhaul complex enums in the future again to better reuse our code. |
Thanks! With that fix now merged, and I think at least some basic docs in #4695, I think I will rebase and release this tomorrow evening (12th Nov). Tomorrow in working hours I will try updating |
FWIW I was looking at a few downstream projects today as well. It looks like the rust parts of cryptography and all of rpds-py should be straightforward to update. The other projects are on older PyO3 versions or are using the FFI to define extensions. I haven't yet run into a downstream error about something not being Sync. |
Unfortunately the
I will try to look again ASAP when I have some more energy, others are also welcome to investigate. |
Feel better!
…On Tue, Nov 12, 2024, 1:49 PM David Hewitt ***@***.***> wrote:
Unfortunately the pydantic-core upgrade didn't go very well;
- hit some recursion errors with type inference trying to evaluate IntoPyObject
for &&&&&&&&&&&&&&[...]&&Bound. Not clear to me why yet and if it will
be a recurrent problem for users to deal with which might require some
changes.
- my family and I are sick again, so I spent most the day sleeping
I will try to look again ASAP when I have some more energy, others are
also welcome to investigate.
—
Reply to this email directly, view it on GitHub
<#4651 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAAGBB2DP4FDG2DF2D3ZV32AJEVPAVCNFSM6AAAAABQTRY646VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINZRGMYTCNZWGI>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
I noticed yesterday in rpds.py and today in cryptography that I'm making a lot of changes along the lines of this to migrate from @@ -60,16 +60,19 @@ fn decode_dss_signature(
) -> Result<pyo3::PyObject, CryptographyError> {
let sig = asn1::parse_single::<DssSignature<'_>>(data)?;
- Ok((
+ (
big_byte_slice_to_py_int(py, sig.r.as_bytes())?,
big_byte_slice_to_py_int(py, sig.s.as_bytes())?,
)
- .to_object(py))
+ .into_pyobject(py)
+ .map_err(Into::into)
+ .map(pyo3::BoundObject::into_any)
+ .map(pyo3::BoundObject::unbind)
} Maybe the docs and migration guide could point to |
That seems reasonable to me. I believe in this specific case there are no generic involved, so you get a concrete type back ( (...).into_pyobject(py)?.into_any().unbind() here (or if we want to use |
Ah I see how I don't need to use |
👍 I do think there is going to be some common helpers / trait we can put into PyO3 to make those kinds of patterns easier, but that can be a post-release QoL improvement. I'm a bit brighter today so I'm trying to continue to push forward with final testing on The WIP branch is at pydantic/pydantic-core#1450, if I silence deprecation warnings the upgrade is "easy", there was a couple of |
Should this work?
I also see similar issues caused by |
I think you want use |
I managed to capture a minimal repro for the bound overflow: #4702 |
The discussion in #4702 has convinced me the current situation is ok; if users have trouble upgrading we can point them to it, and work on QoL improvements as patch releases / future releases. Let's proceed to get docs merged and release 👍 |
694e8cc
to
693624c
Compare
Ok, everything merged in, I will merge this into |
Plz hold, #4710 |
This is a branch to prep the 0.23 release. I think
IntoPyObject
. I am nervous about adding much more.I hope that we might be able to get this shipped a week from now, 1st November. My list of what needs to go in:
IntoPyObject
#4495IntoPy
in favor orIntoPyObject
#4618#[pyclass]
to beSync
#4566PyErr
... has challenges #4584 (at least the thread safety) - done in makePyErrState
thread-safe #4671I think the design scope of those is relatively clear, even if that's still a fair bit of typing to do!
Note that this means that not everything which we listed in #4554 is making it in; I am sorry for the pieces we missed. I'd rather ship this, get feedback and start working on fixes while we also prep those next pieces for 0.24. I'd love it if we can do some smaller, gentler releases for 0.24 and the few after that.
... that said, one of the things not making it into 0.23 will be
FromPyObject
changes, which I think will make sense to get on with ASAP 👀