# Announcement: pip 23.0 release!

**URL:** <https://discuss.python.org/t/announcement-pip-23-0-release/23342>\
**Category:** Packaging\
**Tags:** release\
**Created:** [January 30, 2023, 11:27pm UTC](https://discuss.python.org/t/announcement-pip-23-0-release/23342 "2023-01-30T23:27:03Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![pradyunsg](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/pradyunsg/32/206_2.png) [@pradyunsg](https://discuss.python.org/u/pradyunsg)\
**Post date:** [January 30, 2023, 11:27pm UTC](https://discuss.python.org/t/announcement-pip-23-0-release/23342/1 "2023-01-30T23:27:03Z")

</div>

On behalf of the PyPA, I am pleased to announce that the pip team has just released pip 23.0!

> **[Client Challenge](https://pypi.org/project/pip/23.0/)**

As a reminder, the pip project follows Calendar Versioning – 23.0 is not a “major” version release with backwards incompatible changes but rather the first release of the year 2023. You can read more about our versioning, deprecation policy, and release process [here](https://pip.pypa.io/en/stable/development/release-process/).

## Highlights

- Handling for the [`EXTERNALLY-MANAGED`](https://peps.python.org/pep-0668/) file.
- `pip inspect` and `pip install --report` formats are bumped to version `1` and are stable.
- If `keyring` is not installed in the environment but is available on `PATH`, pip will uses it.  
Notably, this allows `keyring` installed using `pipx` to be used by `pip`.
- A regression that reduced cache reuse compared to older versions of pip has been resolved.

This release contains many other usability improvements, enhancements, and bugfixes. This release, notably, has multiple under-the-hood improvements to pip. You can find the full list in [our changelog](https://pip.pypa.io/en/stable/news/#v23-0).

## Thanks

As with all pip releases, a significant amount of the work was contributed by pip’s user community. Huge thanks to all who have contributed, whether through code, documentation, issue reports and/or discussion. Your help keeps pip improving, and is hugely appreciated.

Cheers,  
Pradyun Gedam

---

<div class="post-metadata">

**Author:** ![barry](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/barry/32/42_2.png) [@barry](https://discuss.python.org/u/barry)\
**Post date:** [January 31, 2023, 1:56am UTC](https://discuss.python.org/t/announcement-pip-23-0-release/23342/2 "2023-01-31T01:56:34Z")

</div>

@pradyunsg Congrats. The changelog doesn’t say (unless I missed it) but this release does unblock the deprecation of `imp` and related APIs from Python 3.12, doesn’t it? Who generally updates `ensurepip` in the CPython repo?

---

<div class="post-metadata">

**Author:** ![uranusjr](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/uranusjr/32/103_2.png) [@uranusjr](https://discuss.python.org/u/uranusjr)\
**Post date:** [January 31, 2023, 8:13am UTC](https://discuss.python.org/t/announcement-pip-23-0-release/23342/3 "2023-01-31T08:13:40Z")

</div>

It’s usually the pip developers, but (I think) we generally wait a little bit after the first release of a major version to ensure there’s no critical breakage in it. Anyone else can also do it if they want to include the new pip version in a certain CPython (pre-)release.

---

<div class="post-metadata">

**Author:** ![pradyunsg](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/pradyunsg/32/206_2.png) [@pradyunsg](https://discuss.python.org/u/pradyunsg)\
**Post date:** [January 31, 2023, 10:06am UTC](https://discuss.python.org/t/announcement-pip-23-0-release/23342/4 "2023-01-31T10:06:58Z")

</div>

> [@barry](#):
>
> Who generally updates `ensurepip` in the CPython repo?

I’ll be filing a PR, if we don’t get reports of a showstopper issue in there (which is the case!).

---

<div class="post-metadata">

**Author:** ![steve.dower](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/steve.dower/32/56_2.png) [@steve.dower](https://discuss.python.org/u/steve.dower)\
**Post date:** [January 31, 2023, 11:26am UTC](https://discuss.python.org/t/announcement-pip-23-0-release/23342/5 "2023-01-31T11:26:31Z")

</div>

Stall things a little bit and you can merge it yourself 😉

I think we’re generally fine to take the update in 3.12 straight away, provided we also get any bugfix releases quickly as well. It’s not until RC that we’ll want to lock it down.

But hold the updates in earlier versions for a bit until you’re confident (generally we’d go to the pip team and ask whether the current release is stable enough to merge, so that step can be saved now).

---

<div class="post-metadata">

**Author:** ![pf\_moore](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/pf_moore/32/35_2.png) [@pf\_moore](https://discuss.python.org/u/pf_moore)\
**Post date:** [January 31, 2023, 1:29pm UTC](https://discuss.python.org/t/announcement-pip-23-0-release/23342/6 "2023-01-31T13:29:14Z")

</div>

I normally create the CPython PR pretty much straight away. But that’s just me. And I’d happily merge a PR from @pradyunsg if he wants to have a last look at the “not a core dev” experience 🙂

But realistically, there’s not normally any particular urgency, so it’s a bit of a “get to it when you can” thing. If the timing affects CPython, that’s an unusual situation.

---

<div class="post-metadata">

**Author:** ![pradyunsg](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/pradyunsg/32/206_2.png) [@pradyunsg](https://discuss.python.org/u/pradyunsg)\
**Post date:** [January 31, 2023, 1:35pm UTC](https://discuss.python.org/t/announcement-pip-23-0-release/23342/7 "2023-01-31T13:35:37Z")

</div>

Well, the main reason I didn’t do it immediately was that it was close to midnight, and I had work the next morning. I’ll come around to the CPython PR after my work day is over, assuming pip’s issue tracker doesn’t have folks with a pitchfork pointed at me. 🙂

* * *

While I have peoples’ attention (🙃), I’d appreciate more 👀 on

> <https://github.com/python/cpython/pull/101039>
>
> This PR removes the bundled setuptools wheel from ensurepip, and stops installin…g setuptools in environments created by venv.
> 
> \---
> 
> I based this PR off of my understanding of venv and ensurepip, and using the following search to locate all the relevant bits of code + ensuring that tests are happy locally.
> 
> !\[Screenshot 2023-01-14 at 17 20 01\](https://user-images.githubusercontent.com/3275593/212486567-e396f2b1-63a5-46d4-93e4-c4405fd731b7.png)
> 
> In this PR, I've intentionally not touched the example in https://docs.python.org/3.12/library/venv.html#an-example-of-extending-envbuilder. That example is largely outdated and is likely better served being updated in a dedicated PR for it.
> 
> 
> \* Issue: gh-95299

> [@pf\_moore](#):
>
> But realistically, there’s not normally any particular urgency, so it’s a bit of a “get to it when you can” thing. If the timing affects CPython, that’s an unusual situation.

Pretty much. The main issue would be that the next patch/alpha release will have a version of pip that’s slightly older – I reckon that’s fine. 🙂

---

<div class="post-metadata">

**Author:** ![hugovk](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/hugovk/32/14505_2.png) [@hugovk](https://discuss.python.org/u/hugovk)\
**Post date:** [January 31, 2023, 3:26pm UTC](https://discuss.python.org/t/announcement-pip-23-0-release/23342/8 "2023-01-31T15:26:47Z")

</div>

Next releases are due next Monday, so no rush.

- 3.10.10: Monday, 2023-02-06
- 3.11.2: Monday, 2023-02-06
- 3.12.0 alpha 5: Monday, 2023-02-06

---

<div class="post-metadata">

**Author:** ![barry](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/barry/32/42_2.png) [@barry](https://discuss.python.org/u/barry)\
**Post date:** [January 31, 2023, 4:28pm UTC](https://discuss.python.org/t/announcement-pip-23-0-release/23342/9 "2023-01-31T16:28:50Z")

</div>

Thanks! Please do at-mention me on the PR. Once it’s landed, I’d like to update and finish my branch to remove the import-related deprecations.
