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.
00:00:00 – Introduction00:01:41 – Pip updates and changes to dependency resolver00:08:49 – Different types of wheels00:11:12 – Pinning package dependencies00:13:19 – Work on the user experience (UX) of pip 00:15:45 – Documentation at Python packaging authority and thanks to Thea Flowers00:16:21 – Types of issues that need resolving00:20:48 – Need for reporting issues00:23:41 – Pip usability survey and dependency recipes to test 00:27:21 – Call out to open source maintainers to test00:29:32 – Video Course Spotlight00:30:43 – How is this UX work different from Simply Secure00:34:59 – How do you present errors to users?00:41:14 – Pip release timeline for 2020 and into 202100:46:38 – The dynamics of responsibility and power00:49:43 – What’s involved in getting more funding into open source? 00:54:10 – Grant writing for the PSF00: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 goodbyesNew pip resolver to roll out this year: Python Software FoundationChanges to the pip dependency resolver in 20.2 (2020): Python Packaging AuthorityChanges are coming to pip: YouTubeSign-up for pip UX Studies!Upgrade to pip 20.2, plus, changes coming in 20.3: Python InsiderPip team midyear report: July 13, 2020An Overview of Packaging for Python: PyPApip dependency resolver changes: Test & Code PodcastWhat Are Python Wheels and Why Should You Care?: Real Python articlePython Wheels and Pass by Reference in Python: Real Python Podcast Ep23Options for Packaging Your Python Application: Wheels, Docker, and More: Real Python Podcast Ep24UX Research & Design: 2020 Work on Improving pip’s user experienceSimple Secure: User ResearchRoadmap update for TUF (The Update Framework) supportExploring CircuitPython with Thea Flowers: Real Python Podcast Ep5PyPA - Packaging Problems Issue Tracker: GithubPEP 458 - Secure PyPI downloads with signed repository metadataFixing conflicting dependencies: PyPAFinish dependency resolver for pip: GithubAnnouncing the PSF Project Funding Working Group: PSFSponsor PyPI and related projectsTidelift: Managed open source. Backed by maintainers.Apply for Grants To Fund Open Source Work: changesetOpen collective: Make your community sustainableSustain: Holding a space for conversations about sustaining Open SourceAnswer these surveys to improve pip’s usability: Python Software FoundationBreaking Release Bottlenecks – What Changeset Can DoOn The Art of Python 2019Python Grab Bag: A Set of Short Plays“Apply for Grants to Fund Open Source Work” - Sumana Harihareswara: PyOhio 2020PyGotham TV: 2020Get paid to write Free software: Cristina - PyGotham 2020Level up your Python skills with our expert-led courses:
A Beginner's Guide to pipHow to Publish Your Own Python Package to PyPIPython Modules and Packages: An Introduction Support the podcast & join our community of Pythonistas