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

release: 0.19.1 #3288

Merged
merged 59 commits into from
Jul 3, 2023
Merged

release: 0.19.1 #3288

merged 59 commits into from
Jul 3, 2023

Conversation

davidhewitt
Copy link
Member

Following the fix to the memory leak #3285 this is a release to backport as many backwards-compatible changes as make sense.

davidhewitt and others added 30 commits July 3, 2023 10:52
`PyAny::lookup_special` is an approximate equivalent to the CPython
internal `_PyObject_LookupSpecial`, which is used to resolve lookups of
"magic" methods.  These are only looked up from the type, and skip the
instance dictionary during the lookup.  Despite this, they are still
required to resolve the descriptor protocol.

Many magic methods have slots on the `PyTypeObject` or respective
subobjects, but these are not necessarily available when targeting the
limited API or PyPy.  In these cases, the requisite logic can be worked
around using safe but likely slower APIs.

Co-authored-by: David Hewitt <1939362+davidhewitt@users.noreply.github.com>

Fix up lookup-special
Python classes that were not `complex` but implemented the `__complex__`
magic would have that method called via `PyComplex_AsCComplex` when
running against the full API, but the limited-API version
`PyComplex_RealAsDouble` does not attempt this conversion.  If the input
object is not already complex, we can call the magic before proceeding.
While the xtask code base is better engineered than our slightly messy Nox
manifest, all functionality is available via Nox including some that is not
available via xtask. Finally, only the Nox sessions are used in the CI by now so
that xtask does not see regular automated usage.
Updates the requirements on [bindgen](https://github.com/rust-lang/rust-bindgen) to permit the latest version.
- [Changelog](https://github.com/rust-lang/rust-bindgen/blob/main/CHANGELOG.md)
- [Commits](rust-lang/rust-bindgen@v0.63.0...v0.65.1)

---
updated-dependencies:
- dependency-name: bindgen
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
It might not be obvious from the reading the sections on free functions and on
classes that they combine in a frictionless manner, i.e. class instances can be
parameters to free functions in the same manner that the self parameters of
instance methods are handled.

This also explicitly calls out the interaction between `Clone` and
`FromPyObject` for classes.
@davidhewitt davidhewitt added CI-no-fail-fast If one job fails, allow the rest to keep testing CI-build-full CI-skip-changelog Skip checking changelog entry labels Jul 3, 2023
@davidhewitt davidhewitt mentioned this pull request Jul 3, 2023
@davidhewitt
Copy link
Member Author

Ok, this looks all good now, I will cherry-pick #3287 and #3289 and then this is ready to release.

@davidhewitt davidhewitt marked this pull request as ready for review July 3, 2023 12:49
@davidhewitt
Copy link
Member Author

(3.12 failures are expected as they don't build on main either.)

@davidhewitt davidhewitt force-pushed the release-0.19.1 branch 2 times, most recently from b1bf46b to dfe04e9 Compare July 3, 2023 14:23
@davidhewitt
Copy link
Member Author

I would like to ship this in a release of pydantic before the end of UK working day, so I'm going to proceed to push the release now. CI is green barring the expected 3.12 failures.

If there are errors I take full responsibility and promise to follow up 🙈

@davidhewitt
Copy link
Member Author

Release is live!

@davidhewitt davidhewitt merged commit 489144a into release-0.19 Jul 3, 2023
@davidhewitt davidhewitt deleted the release-0.19.1 branch July 3, 2023 15:16
Copy link

@Beso0111 Beso0111 left a comment

Choose a reason for hiding this comment

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

H

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI-build-full CI-no-fail-fast If one job fails, allow the rest to keep testing CI-skip-changelog Skip checking changelog entry
Projects
None yet
Development

Successfully merging this pull request may close these issues.