Monday, November 30, 2020

Releasing pip 20.3, featuring new dependency resolver

On behalf of the Python Packaging Authority and the pip team, I am pleased to announce that we have just released pip 20.3, a new version of pip. You can install it by running python -m pip install --upgrade pip.

This is an important and disruptive release -- we explained why in a blog post last year. We've even made a video about it.


  • DISRUPTION: Switch to the new dependency resolver by default. Watch out for changes in handling editable installs, constraints files, and more:

  • DEPRECATION: Deprecate support for Python 3.5 (to be removed in pip 21.0).

  • DEPRECATION: pip freeze will stop filtering the pip, setuptools, distribute and wheel packages from pip freeze output in a future version. To keep the previous behavior, users should use the new --exclude option.

  • Substantial improvements in new resolver for performance, output and error messages, avoiding infinite loops, and support for constraints files.

  • Support for PEP 600: Future manylinux Platform Tags for Portable Linux Built Distributions.

  • Documentation improvements: Resolver migration guide, quickstart guide, and new documentation theme.

  • Add support for MacOS Big Sur compatibility tags.

The new resolver is now on by default for Python 3 users. It is significantly stricter and more consistent when it receives incompatible instructions, and reduces support for certain kinds of constraints files, so some workarounds and workflows may break. Please see our guide on how to test and migrate, and how to report issues. You can use the deprecated (old) resolver, using the flag --use-deprecated=legacy-resolver, until we remove it in the pip 21.0 release in January 2021.

You can find more details (including deprecations and removals) in the changelog.

Coming soon: end of Python 2.7 support

We aim to release pip 21.0 in January 2021, per our release cadence. At that time, pip will stop supporting Python 2.7 and will therefore stop supporting Python 2 entirely.
When users use pip 20.3 in a Python 2 environment, the old dependency resolver is still the default.

For more info or to contribute:

We run this project as transparently as possible, so you can:

Thank you

Thanks to our contractors on this project: Simply Secure (specifically Georgia Bullen, Bernard Tyers, Nicole Harris, Ngọc Triệu, and Karissa McKelvey), Changeset Consulting (Sumana Harihareswara), Atos (Paul F. Moore), Tzu-ping Chung, Pradyun Gedam, and Ilan Schnell. Thanks also to Ernest W. Durbin III at the Python Software Foundation for liaising with the project.
This award continues our relationship with Mozilla, which supported Python packaging tools with a Mozilla Open Source Support Award in 2017 for Warehouse. Thank you, Mozilla! (MOSS has a number of types of awards, which are open to different sorts of open source/free software projects. If your project will seek financial support in 2021, do check the MOSS website to see if you qualify.)

This is new funding from the Chan Zuckerberg Initiative. This project is being made possible in part by a grant from the Chan Zuckerberg Initiative DAF, an advised fund of Silicon Valley Community Foundation. Thank you, CZI! (If your free software/open source project is seeking funding and is used by researchers, check the Joint Roadmap for Open Science Tools Rapid Response Fund and consider applying.)
The funding for pip's overhaul will end at the end of 2020; if your organization wants to help continue improvements in Python packaging, please join the sponsorship program.

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. Thank you to the pip and PyPA maintainers, to the PSF and the Packaging WG, and to all the contributors and volunteers who work on or use Python packaging tools.
-Sumana Harihareswara, pip project manager

Friday, November 20, 2020

PyPI receives AWS credits for open source projects

 The support provided by Amazon Web Services (AWS) to the Python Software Foundation has been a core part of operating The Python Package Index since it was relaunched on an all new codebase in March 2018.

AWS has provided PyPI a stable and extensible platform for our Kubernetes based deployment. Services like Amazon RDS, Amazon ElastiCache, Amazon Elasticsearch Service, Amazon SQS, and Amazon SNS have made managing the service behind PyPI possible with such a small team.

The PSF and PyPI team are excited transition from credits negotiated as part of sponsorship deals to credits granted through the AWS promotional credits for open source projects program.

This kind of direct support to open source infrastructure projects is rare and we are happy to see AWS investing in not only the Python community, but the broader open source ecosystem it is built on as well.

Wednesday, November 11, 2020

Rami Chowdhury Awarded the PSF Community Service Award for Q3 2020

Rami Chowdhury Entrepreneur, Software Engineer, DC Python User group co-organizer, and volunteer coordinator of PyCon US, has been awarded the Python Software Foundation 2020 Q3 Community Service Award.

RESOLVED, that the Python Software Foundation award the 2020 Q3 Community Service Award to Rami Chowdhury for his community work. Rami helps organize and contribute to the DC Python user group. For many years Rami has been a volunteer coordinator and incident responder at PyCon US. Most recently Rami has been a helpful member of the PSF Code of Conduct WG.

We interviewed Rami to shed more light on his work in the Python community. We also asked several of Rami's close associates - including Ewa Jodlowska, Jackie Augustine, Kenneth Durril, and Alex Clark - who have had the opportunity of working with Rami during DC Python and PyCon US. 

Rami Chowdhury's Origin Story

Can you tell us about your origin story?

I had an eclectic and broad-minded group of friends at university who encouragred me in ever-more-complex experiments with my personal computer, despite that not being my subject of study.

With their help and encouragement, I progress through installing Linux-based operating system, learning the command line, and finally getting into the world of programming as a hobby.

Later,  while working in an internship, I found an opportunity to apply my hobby skills in an actual paid job - and jumped in with both feet!

What was your earliest involvement with the Python community?

I went to my first PyCon well before I made a living in software - I had learned the programming language and really enjoyed it, and hoped I'd be able to make a good impression at the job fair and get to use Python at work.

So my first time volunteering was when I was just wandering cluelessly around the convention hotel, heard someone loudly ask for help taping down electrical wiring and thinking - sure, I can do that!

I found helping out so invigoratng that I looked for more chances to help here and there, and met amazing people volunteering, and one thing led to another and all of a sudden I was on a committee feeling like I could give a little something back to the open-source community.

By the time I moved to DC, I'd been volunteering in my local Python community for a while, and so when I saw requests for help leading a study group at the library I was confident enough to enthusiastically rasie my hand.

Thanks to the friendliness of the DC Python organizers I soon found myself one of them, and helping to put together all kinds of events.

Seek out and play with someone who's better than you - road to volunteering

You have been a volunteer coordinator and incident responder at PyCon US for many years. You are also a member of the PSF Code of Conduct. This is amazing. What drives and inspires you into volunteering your time and resources into the Python Community?

When I was young and looking to get better at something - I specifically remember having this conversation when my father was trying to teach me to play chess - my parents told me to always seeks out and try to play with someone who's better than me, so I can learn from them and improve.

It turns out the same thing applies in my adult life - if I try to surround myself with the best people I know, I'll always learn and improve and become a better person.

In both personal and professional contexts, some of the most intelligent, empathetic, thoughtful and inspirational people I've met have been through the Python community, and I keep volunteering so I can learn from their example.

Strengths and values of community continues to shape career

How has your involvement within the Python community helped your career?

It's pretty safe to say I wouldn't have the career I do if it were not for the Python community. Having honest and open conversations at my local meetup got me my first offer of a job as a developer, and the strengths and values of the community have continued to shape my career since then.

I'm currently working to embody those values at Coiled - where we're building tools to empower Python users to work with data at any scale they need - and I hope I'll be lucky enough to continue to build a career in and around this amazing community.

Rami Chowdhury's Impact Story on the Python and PyCon community

Ewa Jodlowska, Executive Director, Python Software Foundation speaks on Rami's contributions to the PyCon US and impact on the Python community:

Rami impacted PyCon US several ways as a volunteer. For over 10 years, Rami has been a part of PyCon in one capacity or another. Rami has helped hundreds of international attendees obtain invitation letters, he has helped organize PyCon Sprints, volunteers, and also has been an incident responder for our code of conduct team. It is safe to say that Rami has impacted thousands of attendees and we are super lucky to have Rami as part of our community.

Rami impacts so many different aspects of our community. Even though I first met Rami at PyCon US a decade ago, in the most recent years, I learned Rami does so much more than help with PyCon. A couple years back, Rami got involved with the PSF's code of conduct work group and has been a consistent helper with documentation. Additionally, Rami helps organize his local Python user group, PyDistrict for several years now.
Jackie Augustine, Event Manager, Python Software Foundation shares Rami's impact as a volunteer coordinator for PyCon US:

Rami has worked for many years as the Volunteer Coordinator for PyCon US. His work was essential for the launch of the volunteer sign up process and the management of the volunteers onsite at each conference. If there was an empty position that needed to be filled, Rami would work diligently to find a volunteer to fill it or he would step in himself to do the work needed. Rami has a way of working with the volunteers to make them feel appreciated for the work they are doing and to have fun while doing so.

Kenneth Durill, volunteer co-chair of the PyCon US, gives credence to Jackie's comments on Rami's volunteering efforts:

Rami is a volunteer that operates like a paid employee. He does it because he cares and he clearly has fun. His passion is inspiring.

Alex Clark, President and Executive Director of DC Python, shares more on Rami's impact and contributions to the DC Python community:

In 2014, I had been hosting monthly in-person events for about 10 years and was ready for a break. But I didn't want to step away completely; I wanted to hang around to make sure events kept happening.

Rami was critical to the success of DC Python during this time.

It's one thing to attend a meeting or two to learn some Python, and those kinds of folks are our target audience. They help us to fulfill our mission as a "Scientific and educational 501(c)(3) organization in Maryland supporting the Python Software developer community in DC and worldwide."

But we can't do it alone. So it's quite another thing when someone attends meeting after meeting, not only for their own benefit, but to serve others. As Organizer, I get to see the rare occassions when volunteers "bubble up to the top" and it's quite a thrill and honor to me to do so. Not to mention the countless folks Rami has taught Python to over the years at our events.

I appreciate reliability and consistency in others, particularly when it comes to important endeavours like helping other people be better versions of themselves. When COVID hit, our in-person events were cancelled, and our online events have been limited. When nothing else was happening and I wanted to make something happen, I scheduled a "live stream" and Rami was one of 15 in attendance. He showed up and continues to show up for DC Python. You can't put a price on that type of dedication to a cause, it comes from deep inside a person, and we're very lucky to have Rami in our community.

Cheers to the ever smiling Rami

The Python Software Foundation congratulates and celebrates Rami, and we wrap this with a side note from Ewa Jodlowska:

I have never seen Rami not smiling. Rami is a caring and empathetic person and he brings that into everything he does for our community. I am happy we get to celebrate his contributions with a Community Service award. It is very much deserved!