Episode 29: Resolving Package Dependencies With the New Version of Pip
The Real Python Podcast
Oct 02, 2020 1h 9m
If you use Python, then you probably have used pip to install additional packages from the Python package index. Part of the magic behind pip is the dependency resolver, and there is a new version of it in the latest version of pip. This week on the show, we have Sumana Harihareswara and Georgia Bullen, who have been working on the recent releases of pip. Sumana is the project manager for pip, and Georgia has been working on pip’s user experience (UX).
The resolver is how pip determines what to install, and in what order, based on package requirements. We talk about how you can help, from updating to the latest release, testing out the new resolver with your projects, and answering surveys about your experiences. A ton of work has gone into making the updates this year. We also talk about the funding of projects like this in the open-source community.
Course Spotlight: A Beginner’s Guide to Pip
This course is a great introduction to pip for those who are getting started Python, and for those who want to understand more about what is happening when you install new packages into your environment. It’s a worthy investment of your time to understand the fundamentals of pip.
Show Topics:
- 00:00:00 – Introduction
- 00:01:41 – Pip updates and changes to dependency resolver
- 00:08:49 – Different types of wheels
- 00:11:12 – Pinning package dependencies
- 00:13:19 – Work on the user experience (UX) of pip
- 00:15:45 – Documentation at Python packaging authority and thanks to Thea Flowers
- 00:16:21 – Types of issues that need resolving
- 00:20:48 – Need for reporting issues
- 00:23:41 – Pip usability survey and dependency recipes to test
- 00:27:21 – Call out to open source maintainers to test
- 00:29:32 – Video Course Spotlight
- 00:30:43 – How is this UX work different from Simply Secure
- 00:34:59 – How do you present errors to users?
- 00:41:14 – Pip release timeline for 2020 and into 2021
- 00:46:38 – The dynamics of responsibility and power
- 00:49:43 – What’s involved in getting more funding into open source?
- 00:54:10 – Grant writing for the PSF
- 00:57:53 – Call to action: How to help with pip?
- 01:00:54 – What are you excited about in the world of Python?
- 01:04:52 – What do you want to learn next?
- 01:08:22 – Thanks and goodbyes
Show Links:
- New pip resolver to roll out this year: Python Software Foundation
- Changes to the pip dependency resolver in 20.2 (2020): Python Packaging Authority
- Changes are coming to pip: YouTube
- Sign-up for pip UX Studies!
- Upgrade to pip 20.2, plus, changes coming in 20.3: Python Insider
- Pip team midyear report: July 13, 2020
- An Overview of Packaging for Python: PyPA
- pip dependency resolver changes: Test & Code Podcast
- What Are Python Wheels and Why Should You Care?: Real Python article
- Python Wheels and Pass by Reference in Python: Real Python Podcast Ep23
- Options for Packaging Your Python Application: Wheels, Docker, and More: Real Python Podcast Ep24
- UX Research & Design: 2020 Work on Improving pip’s user experience
- Simple Secure: User Research
- Roadmap update for TUF (The Update Framework) support
- Exploring CircuitPython with Thea Flowers: Real Python Podcast Ep5
- PyPA - Packaging Problems Issue Tracker: Github
- PEP 458 - Secure PyPI downloads with signed repository metadata
- Fixing conflicting dependencies: PyPA
- Finish dependency resolver for pip: Github
- Announcing the PSF Project Funding Working Group: PSF
- Sponsor PyPI and related projects
- Tidelift: Managed open source. Backed by maintainers.
- Apply for Grants To Fund Open Source Work: changeset
- Open collective: Make your community sustainable
- Sustain: Holding a space for conversations about sustaining Open Source
- Answer these surveys to improve pip’s usability: Python Software Foundation
- Breaking Release Bottlenecks – What Changeset Can Do
- On The Art of Python 2019
- Python Grab Bag: A Set of Short Plays
- “Apply for Grants to Fund Open Source Work” - Sumana Harihareswara: PyOhio 2020
- PyGotham TV: 2020
- Get paid to write Free software: Cristina - PyGotham 2020