<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8520</id><updated>2024-01-18T09:44:58.212-05:00</updated><category term="pycon"/><category term="community"/><category term="community service awards"/><category term="pypi"/><category term="PSF"/><category term="award"/><category term="board"/><category term="grants"/><category term="open source"/><category term="election"/><category term="python"/><category term="conference"/><category term="education"/><category term="grant"/><category term="advocacy"/><category term="diversity"/><category term="development"/><category term="Board of Directors"/><category term="organization"/><category term="sponsorship"/><category term="democracy"/><category term="outreach"/><category term="sprints"/><category term="volunteer"/><category term="contributions"/><category term="membership"/><category term="nominations"/><category term="pip"/><category term="public relations"/><category term="service"/><category term="BBC"/><category term="deadlines"/><category term="edu-sig"/><category term="europython"/><category term="job board"/><category term="python 3.0"/><category term="summerofcode"/><category term="Caribbean"/><category term="children"/><category term="coding literacy"/><category term="donations"/><category term="events"/><category term="foundation"/><category term="meeting"/><category term="porting"/><category term="regional"/><category term="uk"/><category term="user groups"/><category term="usergroups advocacy"/><category term="volunteers"/><category term="CSA"/><category term="Cuba"/><category term="MicroPython"/><category term="PSF funding"/><category term="brochure"/><category term="call"/><category term="conferences"/><category term="ecosystem"/><category term="help"/><category term="infrastructure"/><category term="italy"/><category term="nominate"/><category term="non-profit"/><category term="opportunity"/><category term="oscon"/><category term="python3"/><category term="scipy"/><category term="support"/><category term="travel"/><category term="Asia-Pacific"/><category term="GHOP"/><category term="Google Summer of Code"/><category term="PyLadies"/><category term="Scientific Computing"/><category term="South America"/><category term="Working Group"/><category term="Young Coders"/><category term="arkansas"/><category term="documentation"/><category term="jobs"/><category term="micro:bit"/><category term="new zealand"/><category term="pycon2018"/><category term="request for proposals"/><category term="submissions"/><category term="winners"/><category term="2012"/><category term="Africa"/><category term="C"/><category term="CPython"/><category term="Call for Proposals"/><category term="Django Girls"/><category term="Dominican Republic"/><category term="Japan"/><category term="Memories of Lost Time"/><category term="NumFocus"/><category term="PyCaribbean"/><category term="PyOhio"/><category term="Santo Domingo"/><category term="Science"/><category term="ads"/><category term="aid"/><category term="assistance"/><category term="associate"/><category term="australia"/><category term="buildbot"/><category term="calendar"/><category term="canada"/><category term="codeofconduct"/><category term="conduct"/><category term="continuous integration"/><category term="director"/><category term="distinctive service award"/><category term="e-vote"/><category term="email"/><category term="employment"/><category term="france"/><category term="frank-willison. Young Coders"/><category term="fsf"/><category term="germany"/><category term="gsoc"/><category term="hardware"/><category term="hiring"/><category term="india"/><category term="kivy"/><category term="language"/><category term="linux journal"/><category term="marketing"/><category term="matplotlib"/><category term="mentoring"/><category term="microbit"/><category term="microsoft"/><category term="migration"/><category term="packaging"/><category term="poland"/><category term="print"/><category term="project"/><category term="pycon2011"/><category term="pycon2016"/><category term="pydotorg"/><category term="pypy"/><category term="quality"/><category term="readers choice"/><category term="setuptools"/><category term="sponso"/><category term="strategy"/><category term="students"/><category term="talks"/><category term="trademark"/><category term="tragedy"/><category term="tuf"/><category term="tutorials"/><category term="user experience"/><category term="videos"/><category term="voting"/><category term="women"/><category term="yearinreview"/><title type='text'>Python Software Foundation News</title><subtitle type='html'>  News from the Python Software Foundation</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://pyfound.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default?start-index=26&amp;max-results=25'/><author><name>Ee Durbin</name><uri>http://www.blogger.com/profile/13577459520968677064</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>622</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8520.post-4676413931913922617</id><published>2024-01-18T09:44:00.000-05:00</published><updated>2024-01-18T09:44:25.749-05:00</updated><title type='text'>Announcing Python Software Foundation Fellow Members for Q3 2023! 🎉</title><content type='html'>&lt;p&gt;&lt;span style=&quot;caret-color: rgb(0, 0, 0); color: #666666; font-family: inherit; font-size: 13.2px;&quot;&gt;The PSF is pleased to announce its third batch of PSF Fellows for 2023! Let us welcome the new PSF Fellows for Q3! The following people continue to do amazing things for the Python community:&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;b style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Dustin Ingram&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;a href=&quot;https://www.linkedin.com/in/dustingram/&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;LinkedIn&lt;/a&gt;,&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://github.com/di/&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;Github&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://di.social/&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;Social&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://di.dev/&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;Website&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;b style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Marlene Mhangami&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;span face=&quot;&amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif&quot; style=&quot;color: #666666; font-size: 13.2px;&quot;&gt;&lt;a href=&quot;https://twitter.com/marlene_zw&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;Twitter&lt;/a&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://github.com/marlenezw&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt;,&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://marlenemhangami.com&quot; style=&quot;color: #2b5b84; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;Website&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;b style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Nikita Sobolev&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;span&gt;&lt;a href=&quot; https://github.com/sobolevn/&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt;&lt;span style=&quot;color: black;&quot;&gt;,&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://sobolevn.me/&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;Website&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;b style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Raquel Dou&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;a href=&quot;https://www.linkedin.com/in/raquel-dou/&quot; style=&quot;color: #2b5b84; font-size: 13.2px; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;LinkedIn&lt;/a&gt;&lt;span style=&quot;font-size: 13.2px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;p style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-align: justify; text-size-adjust: auto;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Thank you for your continued contributions. We have added you to our Fellow roster&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.python.org/psf/fellows-roster/&quot; style=&quot;-webkit-print-color-adjust: exact; color: #4183c4; font-family: inherit; text-align: left; text-decoration-line: none;&quot;&gt;online&lt;/a&gt;&lt;span style=&quot;text-align: left;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-print-color-adjust: exact; caret-color: rgb(0, 0, 0); color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-align: justify; text-size-adjust: auto;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;The above members help support the Python ecosystem by being phenomenal leaders, sustaining the growth of the Python scientific community, maintaining virtual Python communities, maintaining Python libraries, creating educational material, organizing Python events and conferences, starting Python communities in local regions, and overall being great mentors in our community. Each of them continues to help make Python more accessible around the world. To learn more about the new Fellow members, check out their links above.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-print-color-adjust: exact; caret-color: rgb(0, 0, 0); color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-size-adjust: auto;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Let&#39;s continue recognizing Pythonistas all over the world for their impact on our community. The criteria for Fellow members is available online:&amp;nbsp;&lt;a href=&quot;https://www.python.org/psf/fellows/&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot;&gt;https://www.python.org/psf/fellows/&lt;/a&gt;. If you would like to nominate someone to be a PSF Fellow, please send a description of their Python accomplishments and their email address to psf-fellow at python.org. Quarter 4 nominations are currently in review. We are accepting nominations for Quarter 1 2024 through February 20, 2024.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-print-color-adjust: exact; caret-color: rgb(0, 0, 0); color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-size-adjust: auto;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Are you a PSF Fellow and want to help the Work Group review nominations? Contact us at&amp;nbsp;psf-fellow at python.org&lt;/span&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/4676413931913922617'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/4676413931913922617'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2024/01/announcing-python-software-foundation.html' title='Announcing Python Software Foundation Fellow Members for Q3 2023! 🎉'/><author><name>Olivia Sauls</name><uri>http://www.blogger.com/profile/02332425566237042576</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8520.post-778024988684210436</id><published>2024-01-18T08:46:00.000-05:00</published><updated>2024-01-18T08:46:27.849-05:00</updated><title type='text'>Announcing the Deputy Developer in Residence and the Supporting Developer in Residence</title><content type='html'>We’re very happy to welcome Petr Viktorin as the Deputy Developer in Residence! Better yet, he is joined by Serhiy Storchaka as the Supporting Developer in Residence. This transforms the residency program into a full blown team! We couldn’t be happier.&lt;br /&gt;&lt;br /&gt;It’s exciting to be able to begin to realize the full vision of the Developers in Residence program, with special thanks to Bloomberg for making it possible for us to bring Petr on board. The initial idea behind the Developer in Residence was to have three to five people hired directly by the Python Software Foundation to help with developer efficiency at CPython, where most of the contributors are volunteers. Three to five people is a good amount to allow for handling both day-to-day tasks, as well as planning and executing on larger-scale projects.&lt;br /&gt;&lt;br /&gt;We were only able to start with a single Developer in Residence, initially sponsored by Google for the initial year, and by Meta for the following two years. We were &lt;a href=&quot;https://pyfound.blogspot.com/2023/02/the-case-for-second-developer-in.html&quot;&gt;clear that adding more developers in residence would multiply the impact of the role&lt;/a&gt; but, of course, the big question is funding. Fortunately, the success of the initial one-person program allowed for a new sponsor to participate, interested in extending the program with another developer. Thank you, Bloomberg!&lt;br /&gt;&lt;br /&gt;We &lt;a href=&quot;https://lukasz.langa.pl/40b601fc-2b24-4629-91d9-3b32c58365c6/&quot;&gt;announced&lt;/a&gt; the job opening back in July, and the interview process was extensive. The Foundation received close to 100 applications, and it was a very tough decision, as most were excellent candidates. One surprise in particular was that despite the Deputy role being described as targeting programmers of various experience levels, we received many more applications from Python core developers than during the initial Developer in Residence job opening.&lt;br /&gt;&lt;br /&gt;Naturally, the core developers bubbled up in the interview process. We were especially impressed by Petr Viktorin’s experience with maintaining Python at Red Hat, his interest in the C API, and his long-term existing contributions to Python. Given the transformative recent developments inside the interpreter in terms of performance and scalability, Petr’s skillset was the perfect match. We’re excited he accepted the offer!&lt;br /&gt;&lt;br /&gt;However, there was one more person who we were also ready to hire on the spot: Serhiy Storchaka, a rare example of a core developer generalist, with plenty of C experience and contributions across the entire codebase. Consistently one of the top most prolific contributors to Python, we felt like we needed to secure him as a member for the Residents team. Unexpectedly, a generous anonymous donation allowed us to hire Serhiy as well. Thank you!&lt;br /&gt;&lt;br /&gt;We are calling the role the Supporting Developer in Residence to make it clear the funding level here isn’t as high as in the Deputy case. Please contact us if your organization can help sponsor Serhiy to bump him to the Deputy salary. Serhiy sure deserves it!&lt;br /&gt;&lt;br /&gt;After an initial meeting with the Steering Council, the Residents team is now ready to take on a more active role in shaping the development of the language. The Council advised that while every team member is expected to prioritize unblocking other contributors and keeping the developer experience smooth, with three people on the team each Resident can now also spend a percentage of their time on feature work aligned with their interests.&lt;br /&gt;&lt;br /&gt;There are some exciting times ahead for Python!&lt;br /&gt;&lt;br /&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/778024988684210436'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/778024988684210436'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2024/01/announcing-deputy-developer-in.html' title='Announcing the Deputy Developer in Residence and the Supporting Developer in Residence'/><author><name>Łukasz Langa</name><uri>http://www.blogger.com/profile/12992944444591785142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8520.post-7352854191617788077</id><published>2024-01-12T10:40:00.000-05:00</published><updated>2024-01-12T10:40:46.372-05:00</updated><title type='text'>EU’s Cyber Resilience Act Passes with Wins for Open Source</title><content type='html'>Back in April, we &lt;a href=&quot;https://pyfound.blogspot.com/2023/04/the-eus-proposed-cra-law-may-have.html&quot;&gt;wrote to the community&lt;/a&gt; about our concerns for the future of the open source ecosystem generally and CPython and PyPI specifically if the European Cyber Resilience Act (CRA) were to pass in the form that had been shared. At the time, we were worried that in the course of providing software for anyone to use, analyze or change that the PSF and/or the Python community might become legally responsible for security issues in the products that are built with the code components that we are providing for free. We asked for increased clarity, specifically:&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;margin-left: 40px; text-align: left;&quot;&gt;“Language that specifically exempts public software repositories that are offered as a public good for the purpose of facilitating collaboration would make things much clearer. We&#39;d also like to see our community, especially the hobbyists, individuals and other under-resourced entities who host packages on free public repositories like PyPI be exempt.”&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;The good news is that CRA text* changed a lot between the time the open source community – including the PSF – started expressing our concerns and the Act’s final text which was &lt;a href=&quot;https://en.wikipedia.org/wiki/Cyber_Resilience_Act&quot;&gt;cemented on December 1st&lt;/a&gt;. That text introduces the idea of an “open source steward.” &lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;margin-left: 40px; text-align: left;&quot;&gt;&lt;i&gt;“&#39;open-source software steward’ means any legal person, other than a manufacturer, which has the purpose or objective to systematically provide support on a sustained basis for the development of specific products with digital elements qualifying as free and open-source software that are intended for commercial activities, and ensures the viability of those products;” (p. 76)&lt;/i&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Furthermore, the final text demonstrates a crisper understanding of how open source software works and the value it provides to the overall ecosystem of software development. &lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;margin-left: 40px; text-align: left;&quot;&gt;&lt;i&gt;“More specifically, for the purpose of this Regulation and in relation to the economic operators referred therein, to ensure that there is a clear distinction between the development and the supply phases, the provision of free and open-source software products with digital elements that are not monetised by their manufacturers is not considered a commercial activity.” (p. 10)&lt;/i&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;So are we totally done paying attention to European legislation? Ah, while it would be nice for the Python community to be able to cross a few things off our to-do list, that’s not quite how it works. Firstly, the concept of an “open source steward” is a brand new idea in European law. So, we will be monitoring the conversation as this new concept is implemented or interacts with other bits of European law to make sure that the understanding continues to reflect the intent and the realities of open source development. Secondly, there are some other pieces of legislation in the works that may also impact the Python ecosystem so we will be watching the Product Liability Directive and keeping up with the discussion around standard-essential patents to make sure that the effects on Python and open source development are intentional (and hopefully benevolent, or at least benign.)&amp;nbsp;&lt;/p&gt;&lt;p&gt;Thank you to &lt;a href=&quot;https://openforumeurope.org/&quot;&gt;Open Forum Europe&lt;/a&gt; (OFE) — especially Ciarán O’Riordan – for bringing the FOSS community together to share our thoughts on how the proposed text would affect open source, thinking about how the goals of the proposed act might be achieved without unintentionally creating a chilling effect for open source and communicating those ideas to legislators. OFE’s work to coordinate our efforts certainly made it easier for the PSF’s concerns to be heard and I’m fairly certain it made it easier for legislators to assess and consider impacts to the open source ecosystem when we were able to speak with one voice.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;i&gt;*The entire Regulation is published &lt;a href=&quot;https://data.consilium.europa.eu/doc/document/ST-17000-2023-INIT/EN/pdf&quot;&gt;here&lt;/a&gt;, if you want to dive into the text more deeply. &lt;/i&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/7352854191617788077'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/7352854191617788077'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2024/01/CRA-update.html' title='EU’s Cyber Resilience Act Passes with Wins for Open Source'/><author><name>Deb Nicholson</name><uri>http://www.blogger.com/profile/06173618710147431813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8520.post-6233723123970103604</id><published>2023-12-12T03:00:00.034-05:00</published><updated>2023-12-12T03:00:00.137-05:00</updated><title type='text'>Announcing the Hidden Figures of Python Podcast!</title><content type='html'>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwtu2DncDXVqcGyUyQmIO4ZYGQgj3tdpPI2dMCv44oKOVgc35EKFTEv0CxRRkXLZ12_nBHVxiDeRauSI2zycd2okYXekFPmHndil1rAaKVmOZPjnKOMRErXzq3meF4N91f3kXXMTJBae6dG8ra2vVfg7TSkHAw4Gq0NumkxqQSK3iN_xmV8Q/s5000/podcats.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;5000&quot; data-original-width=&quot;5000&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwtu2DncDXVqcGyUyQmIO4ZYGQgj3tdpPI2dMCv44oKOVgc35EKFTEv0CxRRkXLZ12_nBHVxiDeRauSI2zycd2okYXekFPmHndil1rAaKVmOZPjnKOMRErXzq3meF4N91f3kXXMTJBae6dG8ra2vVfg7TSkHAw4Gq0NumkxqQSK3iN_xmV8Q/s320/podcats.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; id=&quot;docs-internal-guid-29887c2a-7fff-79a2-c468-0090219bca51&quot; style=&quot;line-height: 1.38; margin-bottom: 12pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: inherit; font-size: small;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;The &lt;a href=&quot;https://www.python.org/psf-landing/&quot;&gt;Python Software Foundation&lt;/a&gt; is excited to share the launch of the &lt;/span&gt;&lt;a href=&quot;https://pypodcats.live/about/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Hidden Figures of Python&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;, a new podcast series created by the &lt;/span&gt;&lt;a href=&quot;https://pypodcats.live/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;PyPodcats&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;. The Hidden Figures of Python series aims to uplift underrepresented folks and their inspiring stories. &lt;/span&gt;&lt;a href=&quot;https://pypodcats.live/episodes/ep-0&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Episode 0&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; is available now on the &lt;/span&gt;&lt;a href=&quot;https://pypodcats.live/episodes&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;PyPodcats website&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;, &lt;/span&gt;&lt;a href=&quot;https://podcasters.spotify.com/pod/show/pypodcats&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Spotify&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;, &lt;/span&gt;&lt;a href=&quot;https://podcasts.apple.com/us/podcast/pypodcats/id1720808525&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Apple Podcasts&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;, and the &lt;/span&gt;&lt;a href=&quot;https://www.youtube.com/@ThePSF&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;PSF YouTube channel&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-left: 30pt; margin-right: 30pt; margin-top: 0pt; margin: 0pt 30pt;&quot;&gt;&lt;span style=&quot;font-family: inherit; font-size: small;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-left: 30pt; margin-right: 30pt; margin-top: 0pt; margin: 0pt 30pt;&quot;&gt;&lt;span style=&quot;font-family: inherit; font-size: small;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Hidden Figures of Python podcast series is hosted by the PyPodcats team: Cheuk Ting Ho, Georgi Ker, Mariatta Wijaya, and Tereza Iofciu. Our aim is to highlight voices of underrepresented group members of the Python community.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: inherit; font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-left: 30pt; margin-right: 30pt; margin-top: 0pt; margin: 0pt 30pt;&quot;&gt;&lt;span style=&quot;font-family: inherit; font-size: small;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Within the realm of popular Python community podcasts, women make up less than 15% of podcast speaker guests.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: inherit; font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-left: 30pt; margin-right: 30pt; margin-top: 0pt; margin: 0pt 30pt;&quot;&gt;&lt;span style=&quot;font-family: inherit; font-size: small;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;We know that there are in fact many underrepresented members in our community who are contributing to the Python community, and they deserve to be seen and heard by the rest of us.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: inherit; font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-left: 30pt; margin-right: 30pt; margin-top: 0pt; margin: 0pt 30pt;&quot;&gt;&lt;span style=&quot;font-family: inherit; font-size: small;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;By creating this podcast series, we hope for the rest of the Python community to learn more about the underrepresented community members and to appreciate their contributions to the global Python community.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-left: 30pt; margin-right: 30pt; margin-top: 0pt; margin: 0pt 30pt;&quot;&gt;&lt;span style=&quot;font-family: inherit; font-size: small;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;&quot;&gt;&lt;span style=&quot;font-family: inherit; font-size: small;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;The Hidden Figures of Python Podcast has been created with care by treasured members of the Python and PSF community. We congratulate and applaud Cheuk, Georgi, Mariatta, and Tereza for launching the series and for everything they contribute to Python and the PSF!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: left;&quot;&gt;&lt;span style=&quot;font-family: inherit; font-size: small;&quot;&gt;Support for community projects like the PyPodcats comes from &lt;a href=&quot;https://www.python.org/psf/sponsors/&quot;&gt;our sponsors&lt;/a&gt;, but also from folks like you through &lt;a href=&quot;https://www.python.org/psf/donations/&quot;&gt;donations&lt;/a&gt; and &lt;a href=&quot;https://www.python.org/psf/membership/&quot;&gt;Memberships&lt;/a&gt;. Make sure to check out &lt;a href=&quot;https://pyfound.blogspot.com/2023/11/support-python-q4-2023.html&quot;&gt;our blog post&lt;/a&gt;
 on our end of year Membership and donations drive. Your gifts and 
support means the world to us. We’re incredibly grateful to be in 
community with you!&lt;span style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/6233723123970103604'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/6233723123970103604'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2023/12/announcing-hidden-figures-of-python-pypodcats.html' title='Announcing the Hidden Figures of Python Podcast!'/><author><name>Marie Nordin</name><uri>http://www.blogger.com/profile/15138793242213676112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwtu2DncDXVqcGyUyQmIO4ZYGQgj3tdpPI2dMCv44oKOVgc35EKFTEv0CxRRkXLZ12_nBHVxiDeRauSI2zycd2okYXekFPmHndil1rAaKVmOZPjnKOMRErXzq3meF4N91f3kXXMTJBae6dG8ra2vVfg7TSkHAw4Gq0NumkxqQSK3iN_xmV8Q/s72-c/podcats.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-8520.post-1314232549547160450</id><published>2023-11-15T10:30:00.011-05:00</published><updated>2023-12-04T16:50:01.681-05:00</updated><title type='text'>It&#39;s time for our annual year-end PSF fundraiser and membership drive 🎉</title><content type='html'>&lt;h1 style=&quot;text-align: left;&quot;&gt;&lt;/h1&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Support Python in 2023!&lt;/h2&gt;&lt;h2 style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;a class=&quot;hoverZoomLink&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5EX0yXqOYNuAGcsuRsJX2wp9TzgU6azoLrCDh9utYsik4eyzjknOM_iUB32yQpkdfpIQlOs5USdc5jxI7J4t_X5Ph55VJSTlWJfqi-4U4NDIwL1lff1s-19VLv-ida4AWNw9-eMz14fdejA74vJzpbLginaeR34p7ydwgVd9LEfBcOmxOxg/s1139/fundraiser_membership_drive_small.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; class=&quot;hoverZoomLink&quot; data-original-height=&quot;576&quot; data-original-width=&quot;1139&quot; height=&quot;203&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5EX0yXqOYNuAGcsuRsJX2wp9TzgU6azoLrCDh9utYsik4eyzjknOM_iUB32yQpkdfpIQlOs5USdc5jxI7J4t_X5Ph55VJSTlWJfqi-4U4NDIwL1lff1s-19VLv-ida4AWNw9-eMz14fdejA74vJzpbLginaeR34p7ydwgVd9LEfBcOmxOxg/w400-h203/fundraiser_membership_drive_small.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;There are two ways to join in the drive this year:&lt;/span&gt;&lt;/h2&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;a href=&quot;https://psfmember.org/civicrm/contribute/transact/?reset=1&amp;amp;id=49&quot;&gt;&lt;b&gt;Donate directly to the PSF!&lt;/b&gt;&lt;/a&gt; &lt;/span&gt;Every dollar makes a difference. (Does every dollar also make a puppy’s tail wag? We make no promises, but may you should try, just in case? 🐶)&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://psfmember.org/&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Become a member!&lt;/span&gt;&lt;/b&gt;&lt;/a&gt; Sign up as a Supporting member of the PSF. Be a part of the PSF, and help us sustain what we do with your annual support.&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Or, heck, why not do both? 🥳&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Your Donations:&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Keep Python thriving &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Invest directly in CPython and PyPI progress&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Bring the global Python community together&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Make our community more diverse and robust every year&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Let’s take a look back on 2023:&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;b&gt;PyCon US&lt;/b&gt; - We held our &lt;a href=&quot;https://us.pycon.org/2023/&quot;&gt;20th PyCon US&lt;/a&gt;, in Salt Lake City and online, which was an exhilarating success! For the online component, PyCon US OX, we added two moderated online hallway tracks (in Spanish and English) and saw a 33% increase in virtual engagement. It was great to see everyone again in 2023, and we’re grateful to all the speakers, volunteers, attendees, and sponsors who made it such a special event.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Security Developer in Residence&lt;/b&gt; - Seth Larson joined the PSF earlier this year as our first ever Security Developer-in-Residence. Seth is already well-known to the Python community – he was named a PSF Fellow in 2022 and has already written a lot about Python and security on &lt;a href=&quot;https://sethmlarson.dev/blog&quot;&gt;his blog&lt;/a&gt;. This critical role would not be possible without funding from the OpenSSF &lt;a href=&quot;https://alpha-omega.dev/&quot;&gt;Alpha-Omega Project&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;PyPI Safety &amp;amp; Security Engineer &lt;/b&gt;- Mike Fiedler joined the PSF earlier this year as our first ever PyPI Safety &amp;amp; Security Engineer. Mike is already a dedicated member of the Python packaging community – he has been a Python user for some 15 years, maintains and contributes to open source, and became a PyPI Maintainer in 2022. You can see some of what he&#39;s achieved for PyPI already on the &lt;a href=&quot;https://blog.pypi.org/&quot;&gt;PyPI blog&lt;/a&gt;. This critical role would not be possible without funding from &lt;a href=&quot;https://aws.amazon.com/opensource/&quot;&gt;AWS&lt;/a&gt;.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Welcome, Marisa and Marie!&lt;/b&gt; - In 2023 we were able to add two new full time staff members to the PSF. Marisa Comacho joined as Community Events Manager and &lt;a href=&quot;https://pyfound.blogspot.com/2023/10/announcing-community-communications-mgr.html&quot;&gt;Marie Nordin joined&lt;/a&gt; as Community Communications Manager. We are excited to add two full time dedicated staff members to the PSF to support PyCon US, our communications, and the community as a whole. &amp;nbsp;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;CPython Developer in Residence&lt;/b&gt; - Our CPython Developer in Residence, Łukasz Langa, continued to provide trusted support and advancement of the Python language, including oversight for the releases of Python 3.8 and 3.9, adoption of Sigstore, and stewardship of PEP 703 (to name a few of many!). Łukasz also engaged with the community by orchestrating the &lt;a href=&quot;https://us.pycon.org/2023/events/language-summit/&quot;&gt;Python Language Summit&lt;/a&gt; and participating in events such as &lt;a href=&quot;https://us.pycon.org/2023/&quot;&gt;PyCon US 2023&lt;/a&gt;, &lt;a href=&quot;https://ep2023.europython.eu/&quot;&gt;EuroPython&lt;/a&gt;, and &lt;a href=&quot;https://2023.pycon.co/&quot;&gt;PyCon Colombia&lt;/a&gt;. This critical role would not be possible without funding from &lt;a href=&quot;https://about.facebook.com/meta/&quot;&gt;Meta&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Authorized as CVE Numbering Authority (CNA)&lt;/b&gt; - Being authorized as a CNA is one milestone in the Python Software Foundation&#39;s strategy to improve the vulnerability response processes of critical projects in the Python ecosystem. The &lt;a href=&quot;https://www.cve.org/PartnerInformation/ListofPartners/partner/PSF&quot;&gt;Python Software Foundation CNA scope&lt;/a&gt; covers &lt;a href=&quot;https://github.com/python/cpython&quot;&gt;Python&lt;/a&gt; and &lt;a href=&quot;https://github.com/pypa/pip&quot;&gt;pip&lt;/a&gt;, two projects which are fundamental to the rest of Python ecosystem.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Five new Fiscal Sponsorees&lt;/b&gt; - Welcome to &lt;a href=&quot;https://github.com/PyCQA/bandit&quot;&gt;Bandit&lt;/a&gt;, &lt;a href=&quot;https://www.bapya.org/&quot;&gt;BaPya&lt;/a&gt;, &lt;a href=&quot;https://twisted.org/&quot;&gt;Twisted&lt;/a&gt;, &lt;a href=&quot;https://www.pyohio.org/2023/&quot;&gt;PyOhio&lt;/a&gt;, and &lt;a href=&quot;https://2023.northbaypython.org/&quot;&gt;North Bay Python&lt;/a&gt; as new Fiscal Sponsorees of the PSF! The PSF provides 501(c)(3) tax-exempt status to fiscal sponsorees and provides back office support so they can focus on their missions.&lt;span style=&quot;font-size: medium;&quot;&gt; &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Our Thanks:&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Thank you for being a part of this drive and of the Python community! Keep an eye on this space and on our social media in the coming weeks for updates on the drive and the PSF 👀&lt;br /&gt;&lt;b&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;b&gt;&lt;i&gt;Your support means the world to us. We’re incredibly grateful to be in community with you! &lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/1314232549547160450'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/1314232549547160450'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2023/11/support-python-q4-2023.html' title='It&#39;s time for our annual year-end PSF fundraiser and membership drive 🎉'/><author><name>Marie Nordin</name><uri>http://www.blogger.com/profile/15138793242213676112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5EX0yXqOYNuAGcsuRsJX2wp9TzgU6azoLrCDh9utYsik4eyzjknOM_iUB32yQpkdfpIQlOs5USdc5jxI7J4t_X5Ph55VJSTlWJfqi-4U4NDIwL1lff1s-19VLv-ida4AWNw9-eMz14fdejA74vJzpbLginaeR34p7ydwgVd9LEfBcOmxOxg/s72-w400-h203-c/fundraiser_membership_drive_small.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-8520.post-1930532307424447964</id><published>2023-11-09T18:00:00.022-05:00</published><updated>2023-11-09T18:00:00.135-05:00</updated><title type='text'>The Python Sofware Foundation receives the Wonderfully Welcoming Award from GitHub!</title><content type='html'>[November 9th, 2023] - The Python Software Foundation is delighted to announce that we are a recipient of a GitHub Award under the Wonderfully Welcoming category, awarded on November 9th at &lt;a href=&quot;https://githubuniverse.com/&quot;&gt;GitHub Universe 2023&lt;/a&gt; in San Francisco, CA, USA. This award exemplifies all the Python community strives to be—enthusiastic, dedicated to encouraging use of the language, and committed to building a diverse and friendly community. We are proud of the Python community for embodying our values on GitHub and this award truly belongs to every contributor. We’re incredibly grateful to be in community with you. &lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://github.blog/2023-11-09-celebrating-the-github-awards-2023-recipients&quot;&gt;GitHub shares&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;&lt;div style=&quot;margin-left: 40px; text-align: left;&quot;&gt;&lt;i&gt;The GitHub Awards celebrates the outstanding contributions and achievements in the developer community by honoring individuals, projects, and organizations for creating an outsized positive impact on the community.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://www.python.org/psf-landing/&quot;&gt;Python Software Foundation &lt;/a&gt;(&lt;a href=&quot;https://github.com/psf&quot;&gt;@psf&lt;/a&gt;) is not just a hub for Python development; it&#39;s a community that embraces diversity and inclusion at its core. Through initiatives like PyCon Charlas, PSF breaks language barriers, providing a platform for Spanish-speaking contributors. It also champions gender diversity by backing the pioneering PyLadiesCon. &lt;br /&gt;&lt;br /&gt;Above all, the PSF is committed to a respectful and safe community experience, fortified by a strong &lt;a href=&quot;https://www.python.org/psf/conduct/&quot;&gt;Code of Conduct&lt;/a&gt;. It also extends accessibility through captioning and is vigilant about health and safety measures. At PSF, it&#39;s not just about code; it&#39;s about the people behind it.&lt;br /&gt;&lt;br /&gt;The Wonderfully Welcoming Award recognizes people or projects that have been the most welcoming and seen an increasing amount of contributors.&lt;/i&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;The PSF Executive Director, Deb Nicholson, states: &lt;i&gt;“We believe that empowering new participants is key to the growth and success of the open source movement. We want to thank GitHub for shining a spotlight on the human side of open source community work.” &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;The Python Software Foundation is a non-profit membership organization devoted to advancing open source technology related to the Python programming language. Our mission is to promote, protect, and advance the Python programming language, and to support and facilitate the growth of a diverse and international community of Python programmers.&lt;br /&gt;&lt;br /&gt;If you would like to help advance our mission, please consider supporting us &lt;a href=&quot;https://www.python.org/psf/donations/&quot;&gt;with a donation&lt;/a&gt;!&lt;br /&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/1930532307424447964'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/1930532307424447964'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2023/11/psf-wonderfully-welcoming-award-github.html' title='The Python Sofware Foundation receives the Wonderfully Welcoming Award from GitHub!'/><author><name>Marie Nordin</name><uri>http://www.blogger.com/profile/15138793242213676112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8520.post-7442574315738088516</id><published>2023-11-08T14:51:00.002-05:00</published><updated>2023-11-08T14:51:54.859-05:00</updated><title type='text'>Join the Python Developers Survey 2023: Share and learn about the community!</title><content type='html'>&lt;p&gt;&lt;style type=&quot;text/css&quot;&gt;td {border: 1px solid #cccccc;}br {mso-data-placement:same-cell;}&lt;/style&gt;&lt;span data-sheets-hyperlinkruns=&quot;{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:&amp;quot;https://survey.alchemer.com/s3/7554174/python-developers-survey-2023&amp;quot;}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:&amp;quot;https://www.python.org/psf-landing/&amp;quot;}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:&amp;quot;https://www.jetbrains.com/&amp;quot;}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-textstyleruns=&quot;{&amp;quot;1&amp;quot;:0}{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:1053441,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;11&amp;quot;:4,&amp;quot;12&amp;quot;:0,&amp;quot;15&amp;quot;:&amp;quot;Open Sans&amp;quot;,&amp;quot;23&amp;quot;:1}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;This year we are conducting the seventh iteration of the official Python Developers Survey. The goal is to capture the current state of the language and the ecosystem around it. By comparing the results with last year’s, we can identify and share with everyone the hottest trends in the Python community and the key insights into it. \n\nWe encourage you to contribute to our community’s knowledge by sharing your experience and perspective. Your participation is valued! The survey should only take you about 10-15 minutes to complete.\n\nContribute to the Python Developers Survey 2023!\n\nThe survey is organized in partnership between the Python Software Foundation and JetBrains. After the survey is over, we will publish the aggregated results and randomly choose 20 winners (among those who complete the survey in its entirety), who will each receive a $100 Amazon Gift Card or a local equivalent.&amp;quot;}&quot; style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span data-sheets-hyperlinkruns=&quot;{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:&amp;quot;https://survey.alchemer.com/s3/7554174/python-developers-survey-2023&amp;quot;}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:&amp;quot;https://www.python.org/psf-landing/&amp;quot;}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:&amp;quot;https://www.jetbrains.com/&amp;quot;}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-textstyleruns=&quot;{&amp;quot;1&amp;quot;:0}{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:1053441,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;11&amp;quot;:4,&amp;quot;12&amp;quot;:0,&amp;quot;15&amp;quot;:&amp;quot;Open Sans&amp;quot;,&amp;quot;23&amp;quot;:1}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;This year we are conducting the seventh iteration of the official Python Developers Survey. The goal is to capture the current state of the language and the ecosystem around it. By comparing the results with last year’s, we can identify and share with everyone the hottest trends in the Python community and the key insights into it. \n\nWe encourage you to contribute to our community’s knowledge by sharing your experience and perspective. Your participation is valued! The survey should only take you about 10-15 minutes to complete.\n\nContribute to the Python Developers Survey 2023!\n\nThe survey is organized in partnership between the Python Software Foundation and JetBrains. After the survey is over, we will publish the aggregated results and randomly choose 20 winners (among those who complete the survey in its entirety), who will each receive a $100 Amazon Gift Card or a local equivalent.&amp;quot;}&quot; style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span data-sheets-hyperlinkruns=&quot;{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:&amp;quot;https://survey.alchemer.com/s3/7554174/python-developers-survey-2023&amp;quot;}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:&amp;quot;https://www.python.org/psf-landing/&amp;quot;}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:&amp;quot;https://www.jetbrains.com/&amp;quot;}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-textstyleruns=&quot;{&amp;quot;1&amp;quot;:0}{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:1053441,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;11&amp;quot;:4,&amp;quot;12&amp;quot;:0,&amp;quot;15&amp;quot;:&amp;quot;Open Sans&amp;quot;,&amp;quot;23&amp;quot;:1}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;This year we are conducting the seventh iteration of the official Python Developers Survey. The goal is to capture the current state of the language and the ecosystem around it. By comparing the results with last year’s, we can identify and share with everyone the hottest trends in the Python community and the key insights into it. \n\nWe encourage you to contribute to our community’s knowledge by sharing your experience and perspective. Your participation is valued! The survey should only take you about 10-15 minutes to complete.\n\nContribute to the Python Developers Survey 2023!\n\nThe survey is organized in partnership between the Python Software Foundation and JetBrains. After the survey is over, we will publish the aggregated results and randomly choose 20 winners (among those who complete the survey in its entirety), who will each receive a $100 Amazon Gift Card or a local equivalent.&amp;quot;}&quot; style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;&amp;nbsp;This year we are conducting the seventh iteration of the official Python Developers Survey. The goal is to capture the current state of the language and the ecosystem around it. By comparing the results with last year’s, we can identify and share with everyone the hottest trends in the Python community and the key insights into it. &lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span data-sheets-hyperlinkruns=&quot;{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:&amp;quot;https://survey.alchemer.com/s3/7554174/python-developers-survey-2023&amp;quot;}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:&amp;quot;https://www.python.org/psf-landing/&amp;quot;}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:&amp;quot;https://www.jetbrains.com/&amp;quot;}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-textstyleruns=&quot;{&amp;quot;1&amp;quot;:0}{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:1053441,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;11&amp;quot;:4,&amp;quot;12&amp;quot;:0,&amp;quot;15&amp;quot;:&amp;quot;Open Sans&amp;quot;,&amp;quot;23&amp;quot;:1}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;This year we are conducting the seventh iteration of the official Python Developers Survey. The goal is to capture the current state of the language and the ecosystem around it. By comparing the results with last year’s, we can identify and share with everyone the hottest trends in the Python community and the key insights into it. \n\nWe encourage you to contribute to our community’s knowledge by sharing your experience and perspective. Your participation is valued! The survey should only take you about 10-15 minutes to complete.\n\nContribute to the Python Developers Survey 2023!\n\nThe survey is organized in partnership between the Python Software Foundation and JetBrains. After the survey is over, we will publish the aggregated results and randomly choose 20 winners (among those who complete the survey in its entirety), who will each receive a $100 Amazon Gift Card or a local equivalent.&amp;quot;}&quot; style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;We encourage you to contribute to our community’s knowledge by sharing your experience and perspective. Your participation is valued! The survey should only take you about 10-15 minutes to complete.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span data-sheets-hyperlinkruns=&quot;{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:&amp;quot;https://survey.alchemer.com/s3/7554174/python-developers-survey-2023&amp;quot;}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:&amp;quot;https://www.python.org/psf-landing/&amp;quot;}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:&amp;quot;https://www.jetbrains.com/&amp;quot;}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-textstyleruns=&quot;{&amp;quot;1&amp;quot;:0}{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:1053441,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;11&amp;quot;:4,&amp;quot;12&amp;quot;:0,&amp;quot;15&amp;quot;:&amp;quot;Open Sans&amp;quot;,&amp;quot;23&amp;quot;:1}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;This year we are conducting the seventh iteration of the official Python Developers Survey. The goal is to capture the current state of the language and the ecosystem around it. By comparing the results with last year’s, we can identify and share with everyone the hottest trends in the Python community and the key insights into it. \n\nWe encourage you to contribute to our community’s knowledge by sharing your experience and perspective. Your participation is valued! The survey should only take you about 10-15 minutes to complete.\n\nContribute to the Python Developers Survey 2023!\n\nThe survey is organized in partnership between the Python Software Foundation and JetBrains. After the survey is over, we will publish the aggregated results and randomly choose 20 winners (among those who complete the survey in its entirety), who will each receive a $100 Amazon Gift Card or a local equivalent.&amp;quot;}&quot; style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a class=&quot;hoverZoomLink&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOuNIzVTdqffnS_Gwvcw0H5kLspjnCUjSwVY2RXMBnTvWVdRpBWqzDBgaN9nU3lmoEyxk8J8GCnlrw-tGNeO5hI88lSm3Kq8EJaSZhXiC4X8zlWkDXjEWshbq6Ft47YSwOot0huASY4HttDdo2V72CauCJa5iG3wsU-ZfYMsWKmSJKUhK2mg/s1200/Facebook_1200x630.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; class=&quot;hoverZoomLink&quot; data-original-height=&quot;630&quot; data-original-width=&quot;1200&quot; height=&quot;201&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOuNIzVTdqffnS_Gwvcw0H5kLspjnCUjSwVY2RXMBnTvWVdRpBWqzDBgaN9nU3lmoEyxk8J8GCnlrw-tGNeO5hI88lSm3Kq8EJaSZhXiC4X8zlWkDXjEWshbq6Ft47YSwOot0huASY4HttDdo2V72CauCJa5iG3wsU-ZfYMsWKmSJKUhK2mg/w384-h201/Facebook_1200x630.png&quot; width=&quot;384&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span data-sheets-hyperlinkruns=&quot;{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:&amp;quot;https://survey.alchemer.com/s3/7554174/python-developers-survey-2023&amp;quot;}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:&amp;quot;https://www.python.org/psf-landing/&amp;quot;}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:&amp;quot;https://www.jetbrains.com/&amp;quot;}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-textstyleruns=&quot;{&amp;quot;1&amp;quot;:0}{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:1053441,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;11&amp;quot;:4,&amp;quot;12&amp;quot;:0,&amp;quot;15&amp;quot;:&amp;quot;Open Sans&amp;quot;,&amp;quot;23&amp;quot;:1}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;This year we are conducting the seventh iteration of the official Python Developers Survey. The goal is to capture the current state of the language and the ecosystem around it. By comparing the results with last year’s, we can identify and share with everyone the hottest trends in the Python community and the key insights into it. \n\nWe encourage you to contribute to our community’s knowledge by sharing your experience and perspective. Your participation is valued! The survey should only take you about 10-15 minutes to complete.\n\nContribute to the Python Developers Survey 2023!\n\nThe survey is organized in partnership between the Python Software Foundation and JetBrains. After the survey is over, we will publish the aggregated results and randomly choose 20 winners (among those who complete the survey in its entirety), who will each receive a $100 Amazon Gift Card or a local equivalent.&amp;quot;}&quot; style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span data-sheets-hyperlinkruns=&quot;{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:&amp;quot;https://survey.alchemer.com/s3/7554174/python-developers-survey-2023&amp;quot;}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:&amp;quot;https://www.python.org/psf-landing/&amp;quot;}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:&amp;quot;https://www.jetbrains.com/&amp;quot;}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-textstyleruns=&quot;{&amp;quot;1&amp;quot;:0}{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:1053441,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;11&amp;quot;:4,&amp;quot;12&amp;quot;:0,&amp;quot;15&amp;quot;:&amp;quot;Open Sans&amp;quot;,&amp;quot;23&amp;quot;:1}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;This year we are conducting the seventh iteration of the official Python Developers Survey. The goal is to capture the current state of the language and the ecosystem around it. By comparing the results with last year’s, we can identify and share with everyone the hottest trends in the Python community and the key insights into it. \n\nWe encourage you to contribute to our community’s knowledge by sharing your experience and perspective. Your participation is valued! The survey should only take you about 10-15 minutes to complete.\n\nContribute to the Python Developers Survey 2023!\n\nThe survey is organized in partnership between the Python Software Foundation and JetBrains. After the survey is over, we will publish the aggregated results and randomly choose 20 winners (among those who complete the survey in its entirety), who will each receive a $100 Amazon Gift Card or a local equivalent.&amp;quot;}&quot; style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span data-sheets-hyperlinkruns=&quot;{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:&amp;quot;https://survey.alchemer.com/s3/7554174/python-developers-survey-2023&amp;quot;}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:&amp;quot;https://www.python.org/psf-landing/&amp;quot;}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:&amp;quot;https://www.jetbrains.com/&amp;quot;}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-textstyleruns=&quot;{&amp;quot;1&amp;quot;:0}{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:1053441,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;11&amp;quot;:4,&amp;quot;12&amp;quot;:0,&amp;quot;15&amp;quot;:&amp;quot;Open Sans&amp;quot;,&amp;quot;23&amp;quot;:1}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;This year we are conducting the seventh iteration of the official Python Developers Survey. The goal is to capture the current state of the language and the ecosystem around it. By comparing the results with last year’s, we can identify and share with everyone the hottest trends in the Python community and the key insights into it. \n\nWe encourage you to contribute to our community’s knowledge by sharing your experience and perspective. Your participation is valued! The survey should only take you about 10-15 minutes to complete.\n\nContribute to the Python Developers Survey 2023!\n\nThe survey is organized in partnership between the Python Software Foundation and JetBrains. After the survey is over, we will publish the aggregated results and randomly choose 20 winners (among those who complete the survey in its entirety), who will each receive a $100 Amazon Gift Card or a local equivalent.&amp;quot;}&quot; style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span data-sheets-hyperlinkruns=&quot;{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:&amp;quot;https://survey.alchemer.com/s3/7554174/python-developers-survey-2023&amp;quot;}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:&amp;quot;https://www.python.org/psf-landing/&amp;quot;}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:&amp;quot;https://www.jetbrains.com/&amp;quot;}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-textstyleruns=&quot;{&amp;quot;1&amp;quot;:0}{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:1053441,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;11&amp;quot;:4,&amp;quot;12&amp;quot;:0,&amp;quot;15&amp;quot;:&amp;quot;Open Sans&amp;quot;,&amp;quot;23&amp;quot;:1}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;This year we are conducting the seventh iteration of the official Python Developers Survey. The goal is to capture the current state of the language and the ecosystem around it. By comparing the results with last year’s, we can identify and share with everyone the hottest trends in the Python community and the key insights into it. \n\nWe encourage you to contribute to our community’s knowledge by sharing your experience and perspective. Your participation is valued! The survey should only take you about 10-15 minutes to complete.\n\nContribute to the Python Developers Survey 2023!\n\nThe survey is organized in partnership between the Python Software Foundation and JetBrains. After the survey is over, we will publish the aggregated results and randomly choose 20 winners (among those who complete the survey in its entirety), who will each receive a $100 Amazon Gift Card or a local equivalent.&amp;quot;}&quot; style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span data-sheets-hyperlinkruns=&quot;{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:&amp;quot;https://survey.alchemer.com/s3/7554174/python-developers-survey-2023&amp;quot;}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:&amp;quot;https://www.python.org/psf-landing/&amp;quot;}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:&amp;quot;https://www.jetbrains.com/&amp;quot;}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-textstyleruns=&quot;{&amp;quot;1&amp;quot;:0}{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:1053441,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;11&amp;quot;:4,&amp;quot;12&amp;quot;:0,&amp;quot;15&amp;quot;:&amp;quot;Open Sans&amp;quot;,&amp;quot;23&amp;quot;:1}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;This year we are conducting the seventh iteration of the official Python Developers Survey. The goal is to capture the current state of the language and the ecosystem around it. By comparing the results with last year’s, we can identify and share with everyone the hottest trends in the Python community and the key insights into it. \n\nWe encourage you to contribute to our community’s knowledge by sharing your experience and perspective. Your participation is valued! The survey should only take you about 10-15 minutes to complete.\n\nContribute to the Python Developers Survey 2023!\n\nThe survey is organized in partnership between the Python Software Foundation and JetBrains. After the survey is over, we will publish the aggregated results and randomly choose 20 winners (among those who complete the survey in its entirety), who will each receive a $100 Amazon Gift Card or a local equivalent.&amp;quot;}&quot; style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span data-sheets-hyperlinkruns=&quot;{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:&amp;quot;https://survey.alchemer.com/s3/7554174/python-developers-survey-2023&amp;quot;}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:&amp;quot;https://www.python.org/psf-landing/&amp;quot;}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:&amp;quot;https://www.jetbrains.com/&amp;quot;}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-textstyleruns=&quot;{&amp;quot;1&amp;quot;:0}{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:1053441,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;11&amp;quot;:4,&amp;quot;12&amp;quot;:0,&amp;quot;15&amp;quot;:&amp;quot;Open Sans&amp;quot;,&amp;quot;23&amp;quot;:1}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;This year we are conducting the seventh iteration of the official Python Developers Survey. The goal is to capture the current state of the language and the ecosystem around it. By comparing the results with last year’s, we can identify and share with everyone the hottest trends in the Python community and the key insights into it. \n\nWe encourage you to contribute to our community’s knowledge by sharing your experience and perspective. Your participation is valued! The survey should only take you about 10-15 minutes to complete.\n\nContribute to the Python Developers Survey 2023!\n\nThe survey is organized in partnership between the Python Software Foundation and JetBrains. After the survey is over, we will publish the aggregated results and randomly choose 20 winners (among those who complete the survey in its entirety), who will each receive a $100 Amazon Gift Card or a local equivalent.&amp;quot;}&quot; style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span data-sheets-hyperlinkruns=&quot;{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:&amp;quot;https://survey.alchemer.com/s3/7554174/python-developers-survey-2023&amp;quot;}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:&amp;quot;https://www.python.org/psf-landing/&amp;quot;}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:&amp;quot;https://www.jetbrains.com/&amp;quot;}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-textstyleruns=&quot;{&amp;quot;1&amp;quot;:0}{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:1053441,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;11&amp;quot;:4,&amp;quot;12&amp;quot;:0,&amp;quot;15&amp;quot;:&amp;quot;Open Sans&amp;quot;,&amp;quot;23&amp;quot;:1}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;This year we are conducting the seventh iteration of the official Python Developers Survey. The goal is to capture the current state of the language and the ecosystem around it. By comparing the results with last year’s, we can identify and share with everyone the hottest trends in the Python community and the key insights into it. \n\nWe encourage you to contribute to our community’s knowledge by sharing your experience and perspective. Your participation is valued! The survey should only take you about 10-15 minutes to complete.\n\nContribute to the Python Developers Survey 2023!\n\nThe survey is organized in partnership between the Python Software Foundation and JetBrains. After the survey is over, we will publish the aggregated results and randomly choose 20 winners (among those who complete the survey in its entirety), who will each receive a $100 Amazon Gift Card or a local equivalent.&amp;quot;}&quot; style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span data-sheets-hyperlinkruns=&quot;{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:&amp;quot;https://survey.alchemer.com/s3/7554174/python-developers-survey-2023&amp;quot;}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:&amp;quot;https://www.python.org/psf-landing/&amp;quot;}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:&amp;quot;https://www.jetbrains.com/&amp;quot;}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-textstyleruns=&quot;{&amp;quot;1&amp;quot;:0}{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:1053441,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;11&amp;quot;:4,&amp;quot;12&amp;quot;:0,&amp;quot;15&amp;quot;:&amp;quot;Open Sans&amp;quot;,&amp;quot;23&amp;quot;:1}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;This year we are conducting the seventh iteration of the official Python Developers Survey. The goal is to capture the current state of the language and the ecosystem around it. By comparing the results with last year’s, we can identify and share with everyone the hottest trends in the Python community and the key insights into it. \n\nWe encourage you to contribute to our community’s knowledge by sharing your experience and perspective. Your participation is valued! The survey should only take you about 10-15 minutes to complete.\n\nContribute to the Python Developers Survey 2023!\n\nThe survey is organized in partnership between the Python Software Foundation and JetBrains. After the survey is over, we will publish the aggregated results and randomly choose 20 winners (among those who complete the survey in its entirety), who will each receive a $100 Amazon Gift Card or a local equivalent.&amp;quot;}&quot; style=&quot;font-family: Open Sans, Arial; font-style: normal;&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: Open Sans, Arial; font-style: normal; text-decoration-skip-ink: none; text-decoration: underline;&quot;&gt;&lt;a class=&quot;in-cell-link&quot; href=&quot;https://survey.alchemer.com/s3/7554174/python-developers-survey-2023&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Contribute to the Python Developers Survey 2023!&lt;br /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span data-sheets-hyperlinkruns=&quot;{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:&amp;quot;https://survey.alchemer.com/s3/7554174/python-developers-survey-2023&amp;quot;}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:&amp;quot;https://www.python.org/psf-landing/&amp;quot;}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:&amp;quot;https://www.jetbrains.com/&amp;quot;}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-textstyleruns=&quot;{&amp;quot;1&amp;quot;:0}{&amp;quot;1&amp;quot;:536,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:586}{&amp;quot;1&amp;quot;:637,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:663}{&amp;quot;1&amp;quot;:668,&amp;quot;2&amp;quot;:{&amp;quot;2&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:1136076},&amp;quot;9&amp;quot;:1}}{&amp;quot;1&amp;quot;:677}&quot; data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:1053441,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;11&amp;quot;:4,&amp;quot;12&amp;quot;:0,&amp;quot;15&amp;quot;:&amp;quot;Open Sans&amp;quot;,&amp;quot;23&amp;quot;:1}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;This year we are conducting the seventh iteration of the official Python Developers Survey. The goal is to capture the current state of the language and the ecosystem around it. By comparing the results with last year’s, we can identify and share with everyone the hottest trends in the Python community and the key insights into it. \n\nWe encourage you to contribute to our community’s knowledge by sharing your experience and perspective. Your participation is valued! The survey should only take you about 10-15 minutes to complete.\n\nContribute to the Python Developers Survey 2023!\n\nThe survey is organized in partnership between the Python Software Foundation and JetBrains. After the survey is over, we will publish the aggregated results and randomly choose 20 winners (among those who complete the survey in its entirety), who will each receive a $100 Amazon Gift Card or a local equivalent.&amp;quot;}&quot; style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; color: #1155cc; font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal; text-decoration-skip-ink: none; text-decoration: underline;&quot;&gt;&lt;a class=&quot;in-cell-link&quot; href=&quot;https://survey.alchemer.com/s3/7554174/python-developers-survey-2023&quot; target=&quot;_blank&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;The survey is organized in partnership between the &lt;/span&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; color: #1155cc; font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal; text-decoration-skip-ink: none; text-decoration: underline;&quot;&gt;&lt;a class=&quot;in-cell-link&quot; href=&quot;https://www.python.org/psf-landing/&quot; target=&quot;_blank&quot;&gt;Python Software Foundation&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt; and &lt;/span&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; color: #1155cc; font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal; text-decoration-skip-ink: none; text-decoration: underline;&quot;&gt;&lt;a class=&quot;in-cell-link&quot; href=&quot;https://www.jetbrains.com/&quot; target=&quot;_blank&quot;&gt;JetBrains&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Open Sans,Arial; font-size: 10pt; font-style: normal; font-weight: normal;&quot;&gt;. After the survey is over, we will publish the aggregated results and randomly choose 20 winners (among those who complete the survey in its entirety), who will each receive a $100 Amazon Gift Card or a local equivalent.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;hzImg&quot; style=&quot;background-color: white; border-radius: 4px; border: 4px solid rgb(255, 255, 255); box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 3px; cursor: pointer; display: none; height: auto; left: 5px; line-height: 0px; margin: 4px; opacity: 1; overflow: hidden; padding: 0px; pointer-events: none; position: absolute; top: 259px; visibility: visible; width: auto; z-index: 2147483647;&quot;&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/7442574315738088516'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/7442574315738088516'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2023/11/join-python-developers-survey-2023.html' title='Join the Python Developers Survey 2023: Share and learn about the community!'/><author><name>Marie Nordin</name><uri>http://www.blogger.com/profile/15138793242213676112</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOuNIzVTdqffnS_Gwvcw0H5kLspjnCUjSwVY2RXMBnTvWVdRpBWqzDBgaN9nU3lmoEyxk8J8GCnlrw-tGNeO5hI88lSm3Kq8EJaSZhXiC4X8zlWkDXjEWshbq6Ft47YSwOot0huASY4HttDdo2V72CauCJa5iG3wsU-ZfYMsWKmSJKUhK2mg/s72-w384-h201-c/Facebook_1200x630.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-8520.post-4259208832320802935</id><published>2023-10-27T12:13:00.000-04:00</published><updated>2023-10-27T12:13:42.481-04:00</updated><title type='text'>Announcing our new Community Communications Manager!</title><content type='html'>&lt;p&gt;We &lt;a href=&quot;https://fosstodon.org/@ThePSF/110498521981281969&quot;&gt;announced our search&lt;/a&gt; for our first Community Communications Manager back in June, and after a thorough search, we are beyond excited to announce that &lt;a href=&quot;https://www.linkedin.com/in/mariecnordin&quot;&gt;Marie Nordin&lt;/a&gt; is the newest addition to our team! Reporting to Loren Crary, Director of Resource Development, Marie joins the PSF as a longtime contributor in Open Source, an experienced community organizer, and an enthusiastic communicator. &lt;br /&gt;&lt;br /&gt;Marie will be responsible for establishing a PSF communications calendar, including annual messaging, newsletters, and blog posts. She will also partner with our Executive Director, Deb Nicholson, and other staffers to enhance our support for the Python community with a variety of initiatives. As the first Community Communications Manager at the PSF, Marie’s work will be made up of both routine and experimental projects, as well as helping to fill some of the gaps in our tiny but mighty team.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhXW-159xbJPSdd842X_pzFSPAgB9gm1vhPipNJAnq4vCdc4LaE2WeoUM2j-Dmf9GAj47QwDwN52UqXXyASgPSWj9Itti5RdBmW2OhENCw-I4iInbl4uq903FluqlVBgmRPHVH7syI39rZtkFdBWH3FmpaXuDqVl3RzeJZDqA7aY0ZqZ-nWI9g&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;A very nice photo of Marie Nordin&quot; data-original-height=&quot;2789&quot; data-original-width=&quot;2193&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhXW-159xbJPSdd842X_pzFSPAgB9gm1vhPipNJAnq4vCdc4LaE2WeoUM2j-Dmf9GAj47QwDwN52UqXXyASgPSWj9Itti5RdBmW2OhENCw-I4iInbl4uq903FluqlVBgmRPHVH7syI39rZtkFdBWH3FmpaXuDqVl3RzeJZDqA7aY0ZqZ-nWI9g=w252-h320&quot; width=&quot;252&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Marie shares, “&lt;i&gt;I’m thrilled to join the PSF team to help amplify the stories and voices of the Python community. I look forward to learning, supporting, and connecting with you all!&lt;/i&gt;” &lt;br /&gt;&lt;br /&gt;Marie has a background in community architecture, project/program management, Code of Conduct, and graphic design. A Visual Media graduate from the &lt;a href=&quot;https://www.rit.edu/&quot;&gt;Rochester Institute of Technology&lt;/a&gt;, she first learned of Free and Open Source Software and culture at &lt;a href=&quot;https://www.rit.edu/research/open&quot;&gt;Open@RIT&lt;/a&gt;. Marie went on to become an &lt;a href=&quot;https://www.outreachy.org/&quot;&gt;Outreachy&lt;/a&gt; intern in 2013 for the &lt;a href=&quot;https://fedoraproject.org/&quot;&gt;Fedora Project&lt;/a&gt; working on &lt;a href=&quot;https://badges.fedoraproject.org/&quot;&gt;Fedora Badges&lt;/a&gt; design. After six years of contributing to Fedora in various parts of the project, Marie joined &lt;a href=&quot;https://www.redhat.com/en/blog/channel/red-hat-open-source-program-office&quot;&gt;Red Hat’s Open Source Program Office&lt;/a&gt; as the &lt;a href=&quot;https://docs.fedoraproject.org/en-US/council/fca/#previous&quot;&gt;Fedora Community Action and Impact Coordinator&lt;/a&gt; and later on as a Code of Conduct Specialist. &lt;br /&gt;&lt;br /&gt;We hope everyone in the Python community will join us in welcoming Marie with ideas and collaboration as she settles in. We are very happy to be able to add a staff member dedicated full-time to such important aspects of our work, and we feel very fortunate to have found someone with Marie&#39;s wealth of experience and skills to take on this new role. We&#39;re excited to see what Marie can achieve together with the PSF and the Python community! &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/4259208832320802935'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/4259208832320802935'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2023/10/announcing-community-communications-mgr.html' title='Announcing our new Community Communications Manager!'/><author><name>Loren Crary</name><uri>http://www.blogger.com/profile/06125752284896762014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-2AcMmDLDWxEuhuvXW351Zu80hAxm9SbDI2ANl_Tfx4dG8r--fPmO_0x5lPGrRijT-c2EDChrojKOellhEw5P7WJnQRQDXTOh-IAj55Z8xZfwtvf4LnGS0RR64H57ltY/s220/Loren+candid+.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEhXW-159xbJPSdd842X_pzFSPAgB9gm1vhPipNJAnq4vCdc4LaE2WeoUM2j-Dmf9GAj47QwDwN52UqXXyASgPSWj9Itti5RdBmW2OhENCw-I4iInbl4uq903FluqlVBgmRPHVH7syI39rZtkFdBWH3FmpaXuDqVl3RzeJZDqA7aY0ZqZ-nWI9g=s72-w252-h320-c" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-8520.post-4899514588353763958</id><published>2023-10-20T11:16:00.000-04:00</published><updated>2023-10-20T11:16:42.322-04:00</updated><title type='text'>September &amp; October Board Votes</title><content type='html'>&lt;p&gt;We’re writing today because we know the process of the PSF Board’s review of DjangoCon Africa’s recent grant application caused concern, disappointment, and confusion for some of our community. We want to take time to explain that process clearly, and how we plan to improve moving forward. &lt;br /&gt;&lt;/p&gt;First of all, we’re pleased to say that on October 11th the PSF Board voted to approve DjangoCon Africa’s $9,000 grant request. We’re wishing lots of luck to the organizers and everyone involved–&lt;a href=&quot;https://2023.djangocon.africa/&quot;&gt;check it out here&lt;/a&gt;! DjangoCon Africa is a community-run event that will take place for the first time this year November 6-11 in Zanzibar, Tanzania. &lt;br /&gt;&lt;br /&gt;If you are reading this, you probably already know that the PSF runs a grants program that disperses funds to Python events and groups, (&lt;a href=&quot;https://www.python.org/psf/grants/&quot;&gt;info on how to apply for your own event here&lt;/a&gt;). Last year we gave out $215,000 to 138 groups in 42 countries. For the majority of grants, the decision of whether or not to fund a grant request is made by consensus by the Grants Working Group, which is made up of volunteers from the community (huge thanks always due to them for what they do.) Some grants require the Board to review and vote on them instead: grant requests over $10,000; grants with a per person per day cost greater than $15; and grants that the Grants Working Group can’t reach a consensus decision on. &lt;br /&gt;&lt;br /&gt;Because after discussion the working group couldn’t reach a consensus on the DjangoCon Africa request, it came to the Board for a vote instead. The Board first discussed the request in our September meeting, however the resolution to grant the request didn’t pass because the majority of directors abstained (6 abstentions, 4 yes votes, 0 no votes). The board members who abstained had a variety of reasons, including our Board Chair who was required to abstain because she is an organizer of DjangoCon Africa; others had open questions about the details of the grant request (e.g. related to budget) that we didn’t have time to resolve or had concerns about how to best support our community members with respect to safety, security and equity in the context of international events taking place in jurisdictions with laws that are harmful to certain community members (in this case, the criminalization of homosexuality in Tanzania) but not wanting to apply a new rule unfairly to this event. The reason for each board member&#39;s vote is always as nuanced as the board member casting it each time a vote comes to decision. In this case, it was agreed that there was not sufficient time in the board meeting to review the merits of the application, which bears no fault of the DjangoCon Africa organizing team. &lt;br /&gt;&lt;br /&gt;The request came back in front of the Board for our October meeting, at which point we’d been able to get more information, time to review, and read letters on the event&#39;s impact. This vote passed (1 abstention, 10 yes votes, 0 no votes), which we believe reflects the values of an informed Board working together. We’re thrilled to be able to support the Django and Python communities in Africa in general and in Tanzania in particular, and especially for what is shaping up to be a great new annual event. Every decision made, with or without feedback from the community, affects dozens to hundreds to thousands of Pythonistas and the Board is always cognizant that our desire to provide timely, enthusiastic support must be balanced with the responsibility to steward funds carefully and fairly.  &lt;br /&gt;&lt;br /&gt;Because of the harm expressed in the community due to the Board’s process, we will be conducting a retrospective on this process specifically and the Board&#39;s approach to grants in general. To be completely clear, the points that will be discussed in our retrospective have everything to do with process improvements and event inclusivity and nothing to do with the merits of the event in question. We’re likely to address process issues in the short term and strategy over a longer period of time. The discussed topics are likely to include, but are not limited to:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The PSF&#39;s approach to grant making in general&lt;/li&gt;&lt;li&gt;How to best serve the global community, especially marginalized members for whom safety can be a concern when traveling &lt;/li&gt;&lt;li&gt;Parliamentary procedures&lt;/li&gt;&lt;/ul&gt;We value community perspective. If you would like to share any thoughts or feelings on this topic, please feel free to share your thoughts – anonymously if you prefer – &lt;a href=&quot;https://forms.gle/v7rJYsnQJAY5ewvt5&quot;&gt;via this form&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;Once complete, our retrospective can be found in our &lt;a href=&quot;https://www.python.org/psf/records/board/minutes/&quot;&gt;meeting minutes archive&lt;/a&gt; along with the minutes for all of the board&#39;s previous meetings. &lt;br /&gt;&lt;br /&gt;Thank you for helping us make the Python community the best it can be, &lt;br /&gt;The PSF Board of Directors</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/4899514588353763958'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/4899514588353763958'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2023/10/september-october-board-votes.html' title='September &amp; October Board Votes'/><author><name>Deb Nicholson</name><uri>http://www.blogger.com/profile/06173618710147431813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8520.post-8152679974540990831</id><published>2023-10-17T14:00:00.005-04:00</published><updated>2023-10-17T15:06:56.084-04:00</updated><title type='text'>Security Developer-in-Residence 2023 Q3 Report</title><content type='html'>&lt;p&gt;It’s been three months since I was first hired as the inaugural Security Developer-in-Residence. I’m quite proud of what I’ve accomplished so far and think it shows the value of investing into the security of Open Source through hiring folks to work full-time in roles like “Developer-in-Residence” programs. I’m thankful to the &lt;a href=&quot;https://alpha-omega.dev/&quot;&gt;Alpha-Omega project at OpenSSF&lt;/a&gt; for funding this work. Let’s review all of the accomplishments in the first quarter of this role and what to look forward to in the next quarter.&lt;br /&gt;&lt;br /&gt;If you’d like to follow along with my work more closely you can subscribe to my &lt;a href=&quot;https://sethmlarson.dev/blog#archive&quot;&gt;personal blog&lt;/a&gt; where I publish &lt;a href=&quot;https://sethmlarson.dev/security-developer-in-residence-weekly-report-13&quot;&gt;weekly updates&lt;/a&gt; about the work I’m doing. If you have questions or thoughts about what I’m working on you can contact me via email: &lt;a href=&quot;mailto:seth@python.org&quot;&gt;seth@python.org&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;The Python Software Foundation authorized as a CVE Numbering Authority (CNA)&lt;/h2&gt;&lt;p&gt;Back in late August the Python Software Foundation received notice that we’d successfully completed onboarding and had been &lt;a href=&quot;https://pyfound.blogspot.com/2023/08/psf-authorized-as-cna.html&quot;&gt;authorized by CVE as a CVE Numbering Authority&lt;/a&gt; or “CNA”. The &lt;a href=&quot;https://www.cve.org/PartnerInformation/ListofPartners/partner/PSF&quot;&gt;Python Software Foundation CNA scope&lt;/a&gt; covers Python and pip, two projects which are fundamental to the rest of the Python ecosystem.&lt;br /&gt;&lt;br /&gt;Being a CNA means that the PSF can offer staffing to improve the sustainability and responsiveness of coordination and vulnerability disclosure work for covered projects. The PSF CNA also provides &lt;a href=&quot;https://osv.dev/vulnerability/PSF-2023-8&quot;&gt;rich metadata for CVE records and advisories&lt;/a&gt;, including remediation information, so upgrading or patching for vulnerabilities is as straightforward as possible for downstream users of Python.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;CPython vulnerability advisories available in Open Source Vulnerability database&lt;/h2&gt;&lt;p style=&quot;text-align: left;&quot;&gt;The Python Software Foundation now hosts a &lt;a href=&quot;https://github.com/psf/advisory-database&quot;&gt;vulnerability database on GitHub&lt;/a&gt; using the &lt;a href=&quot;https://ossf.github.io/osv-schema/&quot;&gt;Open Source Vulnerability format&lt;/a&gt; (OSV). This database contains vulnerability information for CPython in addition to vulnerabilities getting published to the security-announce@python.org mailing list. The historical vulnerability information was sourced from Victor Stinner’s “&lt;a href=&quot;https://python-security.readthedocs.io/&quot;&gt;python-security&lt;/a&gt;” project in order to provide a complete history of vulnerabilities in CPython.&lt;br /&gt;&lt;br /&gt;By using the OSV format the vulnerabilities can be ingested and processed by the Open Source Vulnerability database which can be searched or &lt;a href=&quot;https://google.github.io/osv.dev/api/&quot;&gt;queried using an API&lt;/a&gt; for machine-consumable vulnerability information. &lt;br /&gt;&lt;br /&gt;Having vulnerability information in a machine-consumable format enables tools that scan software deployments for vulnerabilities to easily provide accurate and automatically updated reports for CPython. The Open Source Vulnerability database also is more discoverable compared to the CVE database, having a readily available public API to query for vulnerabilities, products, and versions.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Python Security Response Team&lt;/h2&gt;&lt;p style=&quot;text-align: left;&quot;&gt;I have been helping coordinate reports to the &lt;a href=&quot;https://www.python.org/dev/security/&quot;&gt;Python Security Response Team&lt;/a&gt; (PSRT) since joining the role. This work includes reviewing all reports, gathering information from reporters, discussing timelines, and working with core developers to create and release fixes and advisories in a coordinated manner. I also worked with CVE to get CVE IDs assigned on behalf of reports before the PSF was designated as a CNA.&lt;br /&gt;&lt;br /&gt;I revitalized the &lt;a href=&quot;https://mail.python.org/mailman3/lists/security-announce.python.org/&quot;&gt;security-announce@python.org mailing list&lt;/a&gt; to use for future advisory announcements so interested parties can be notified as soon as new vulnerabilities are published (subscribe to the linked list if you’d like to receive these). I coordinated the two recent vulnerabilities affecting CPython (&lt;a href=&quot;https://osv.dev/vulnerability/PSF-2023-8&quot;&gt;CVE-2023-40217&lt;/a&gt; and &lt;a href=&quot;https://osv.dev/vulnerability/PSF-2023-9&quot;&gt;CVE-2023-41105&lt;/a&gt;) end-to-end from report to published advisory.&lt;br /&gt;&lt;br /&gt;Doing this coordination work frees up volunteers on the PSRT to focus on determining whether a report is a vulnerability and working on fixes. I’m also working to further reduce the manual coordination work required by PSRT by moving the reporting and triage process to GitHub using GitHub Security Advisories.&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;OpenSSF Day Europe 2023&lt;/h2&gt;&lt;p style=&quot;text-align: left;&quot;&gt;I co-presented a talk titled “&lt;a href=&quot;https://sched.co/1P6TW&quot;&gt;We Make Python Safer than Ever&lt;/a&gt;” at OpenSSF Day Europe 2023 with PSF Board Member and OpenSSF Community Manager Cheuk Ting-Ho. The &lt;a href=&quot;https://static.sched.com/hosted_files/openssfdayeu2023/a3/Final%20-%20OpenSSF%20Day%20Europe%202023.pdf&quot;&gt;slides are available for download&lt;/a&gt; and the &lt;a href=&quot;https://www.youtube.com/watch?v=jhzv5RU56V4&quot;&gt;talk recording is available to watch on YouTube&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The talk introduced the Security Developer-in-Residence role, went over the challenges that are unique to securing Open Source and Python ecosystems, described completed and future projects to make the Python ecosystem more secure, and gave a list of items that viewers themselves could do right away to make their own usage of Python more secure.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Sigstore signatures for Python release artifacts&lt;/h2&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Python releases include signatures from the Release Managers using the signing tool “&lt;a href=&quot;https://www.sigstore.dev/&quot;&gt;Sigstore&lt;/a&gt;”. These signatures mean you can be sure that a given release artifact wasn’t tampered with and was created and vetted by the Release Manager for a given Python release.&lt;br /&gt;&lt;br /&gt;I did an audit of existing signatures and &lt;a href=&quot;https://github.com/sigstore/sigstore-python/issues/600#issuecomment-1634961707&quot;&gt;found some discrepancies&lt;/a&gt; between the documented identities and providers and what was published for each release. I worked with Release Managers to fix the discrepancies and &lt;a href=&quot;https://github.com/python/release-tools/pull/51&quot;&gt;added extra safeguards&lt;/a&gt; to release tooling to ensure signatures are verifiable as documented. I also was able to back-fill the &lt;a href=&quot;https://github.com/python/pythondotorg/issues/2300&quot;&gt;new Sigstore signature format&lt;/a&gt; from existing verification materials to make verifying signatures even easier!&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;$ python -m sigstore verify identity \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --bundle Python-3.12.0.tgz.sigstore \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --cert-identity thomas@python.org \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --cert-oidc-issuer https://accounts.google.com \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Python-3.12.0.tgz&lt;/span&gt;&lt;/blockquote&gt;Having consistent artifact signatures is important because any discrepancies while consuming these signatures should raise red flags for downstream users and redistributors. This also helps build confidence in the new signing method over existing methods like GPG.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Adoption of system trust stores via Truststore&lt;/h2&gt;&lt;p style=&quot;text-align: left;&quot;&gt;There are three packaging tools (pip, PDM, and Conda) that are important to the Python ecosystem that are at various stages of adopting “Truststore”, a library that I authored prior to joining the PSF to enable Python projects to use system trust stores for verifying HTTPS certificates instead of relying on certifi for certificates.&lt;br /&gt;&lt;br /&gt;PDM has started using Truststore by default starting in &lt;a href=&quot;https://github.com/pdm-project/pdm/releases/tag/2.9.0&quot;&gt;v2.9.0&lt;/a&gt;, Conda plans to release &lt;a href=&quot;https://github.com/conda/conda/milestone/63&quot;&gt;optional support for Truststore in v23.9.0&lt;/a&gt;, and pip already has &lt;a href=&quot;https://pip.pypa.io/en/stable/topics/https-certificates/#using-system-certificate-stores&quot;&gt;optional support for Truststore&lt;/a&gt; since v22.2 but has recently bundled Truststore into pip to remove the need to “bootstrap” into Truststore by pre-installing the library.&lt;br /&gt;&lt;br /&gt;Using the system trust store is important because any removals to a trust store (&lt;a href=&quot;https://osv.dev/vulnerability/PYSEC-2023-135&quot;&gt;like for e-Tugra root certificates&lt;/a&gt;) must be propagated to all end systems in order to avoid “monster-in-the-middle” attacks. Further challenging this propagation is that some tools like pip bundle certifi as a means of bootstrapping, which means that you need to upgrade both certifi and pip in order to completely propagate updates to certifi’s certificate bundle.&lt;br /&gt;&lt;br /&gt;This propagation is better suited to a centralized system like an OS package manager or an automatic centralized authority or IT department keeping the trust bundles up-to-date, which can only happen through using system trust stores.&lt;br /&gt;&lt;br /&gt;Recently the Python implementation PyPy added support for Python 3.10, thus enabling PyPy to also use Truststore. I &lt;a href=&quot;https://github.com/sethmlarson/truststore/pull/113&quot;&gt;subsequently added support and backwards compatibility tests for PyPy to Truststore&lt;/a&gt; to ensure all compliant implementations of Python can take advantage of the benefits.&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Future Projects and Challenges&lt;br /&gt; &lt;br /&gt;&lt;/h2&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Software Bills-of-Materials for CPython&lt;/h3&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Software Bill-of-Materials (SBOMs) are a hot topic in the world of software security due to new government requirements and improved software and vulnerability management tooling. Many tools generate or consume SBOMs as a universal format for describing software and its components and then matching those components to known vulnerabilities.&lt;br /&gt;&lt;br /&gt;I&#39;ve started working on an authoritative SBOM for the CPython project, you can follow along in &lt;a href=&quot;https://github.com/sethmlarson/cpython-sbom&quot;&gt;this GitHub repository&lt;/a&gt; if you are interested. This project is early and this will not be the final product or place where this information is published, this is only a place to experiment and get feedback on the approach and outputs before putting the final infrastructure in place.&lt;br /&gt;&lt;br /&gt;I started with the most straightforward release artifact, the source tarball, and I am planning to tackle the binary installers later since they&#39;ll require more research into the release processes. There is a work-in-progress SBOM file for Python-3.12.0.tgz available in the &lt;a href=&quot;https://github.com/sethmlarson/cpython-sbom/blob/main/sboms&quot;&gt;sboms/ directory on the repository&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Using vulnerability scanning tools I was able to see not only vulnerabilities in CPython, but &lt;b&gt;crucially in the bundled subcomponents like expat and pip&lt;/b&gt;. Without an SBOM the subcomponents to a project like CPython likely wouldn’t get detected properly and thus would be not covered by vulnerability management tooling.&lt;br /&gt;&lt;br /&gt;The challenges here will be integrating the creation and maintenance of the SBOMs into the CPython development and release processes while minimally disrupting other core developers workflows and avoiding the need to develop and maintain custom tooling for CPython’s specific use-case.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Tracking bundled dependencies in Python packages&lt;/h3&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Python is the premier “glue” language, meaning that Python is often used alongside many other programming languages like C, C++, Rust, Go, and more thanks to Python C API. This benefit also means that Python packages can include projects and source code from sources both within and external to the Python ecosystem.&lt;br /&gt;&lt;br /&gt;Those projects and source code from outside the Python ecosystem present a problem for vulnerability scanners &lt;b&gt;which typically rely on explicit metadata about projects and dependencies in order to find vulnerabilities in software manifests&lt;/b&gt;. Without a clear way to encode this information into packaging metadata it’s impossible to signal these dependencies even if a maintainer of a project wants to do so.&lt;br /&gt;&lt;br /&gt;C and C++ projects in particular pose additional issues due to their existence outside of a programming language packaging ecosystem like Python with PyPI or JavaScript and NPM. This makes tracking usage and vulnerabilities in these projects difficult and relies on other identification schemes like CPEs or redistributions in other packaging ecosystems like RPM/DEB. Without this information scanners today miss vulnerable components bundled in Python packages, meaning developers won’t know how or when their Python deployments are vulnerable.&lt;br /&gt;&lt;br /&gt;Solving this issue completely will be a multi-step process, starting with being able to encode information about bundled projects into Python distributions which will require a new packaging PEP. After the standard has been decided, next is getting bundled project metadata automatically captured to avoid needing an entire ecosystem to manually annotate every project. Concurrently to this I’ll collaborate with SBOM generation tooling to add support for consuming the new standard and adding that information to SBOMs generated from Python environments.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;CPython and pip release process improvements&lt;/h3&gt;&lt;p style=&quot;text-align: left;&quot;&gt;CPython and pip are two of the most important projects in the Python ecosystem and each have non-trivial release processes. In an effort to increase the integrity of these projects’ releases I’ve &lt;a href=&quot;https://sethmlarson.dev/security-developer-in-residence-weekly-report-9&quot;&gt;researched and documented their release process&lt;/a&gt; and with &lt;a href=&quot;https://slsa.dev/spec/v1.0/threats-overview&quot;&gt;SLSA’s list of historical supply chain attacks against software projects&lt;/a&gt; have been making suggestions and implementing improvements.&lt;br /&gt;&lt;br /&gt;These improvements include reproducibility of built artifacts, extra guarantees on the integrity of inputs, automating the build processes to reduce attack surface area to only services like GitHub Actions and Azure Pipelines instead of individuals’ computers, and making it so that in the event of an attack that it would need to be publicly detectable and traceable.&lt;br /&gt;&lt;br /&gt;By improving the integrity of these processes I am hoping to prevent disaster scenarios such as malware being injected into Python or pip at the “last mile” before being published to python.org. &lt;b&gt;Injection of malware during build time has happened to multiple other Open Source projects with disastrous results for users&lt;/b&gt;. This work means users can be even more confident in their usage of Python and upgrade early and often to take advantage of Python’s latest features.&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/8152679974540990831'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/8152679974540990831'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2023/10/security-developer-in-residence-2023-q3-report.html' title='Security Developer-in-Residence 2023 Q3 Report'/><author><name>Seth Michael Larson</name><uri>http://www.blogger.com/profile/16555309043643874359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8520.post-8195689563451734803</id><published>2023-09-27T11:44:00.000-04:00</published><updated>2023-09-27T11:44:10.863-04:00</updated><title type='text'>Python Developers Survey Numbers for 2022!</title><content type='html'>&lt;p&gt;We are excited to announce the results of the sixth official annual Python Developers Survey. This work is done each year as a collaborative effort between the Python Software Foundation and JetBrains. Late last year, more than 23,000 Python developers and enthusiasts from almost 200 countries/regions participated in the survey to reveal the current state of the language and the ecosystem around it. (Spoiler alert: Many people are using Python, and 51% are using it for both work AND personal projects.)&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://lp.jetbrains.com/python-developers-survey-2022/&quot;&gt;https://lp.jetbrains.com/python-developers-survey-2022/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We know the whole Python community finds this work useful. From Luciana Abud, product manager for Visual Studio Code, “Our teams at Microsoft are truly grateful to the Python Software Foundation and JetBrains for orchestrating the Python Developers Survey! The insights we gain allows us to take a data-driven approach to help with prioritizing feature development, addressing pain points, enhancing usability and anticipating future needs. This survey is invaluable in shaping our approach and continuously improving the Python development experience within the VS Code ecosystem!”&amp;nbsp;&lt;/p&gt;&lt;p&gt;We’d love to hear how you use these numbers, so please share your thoughts on social media, mentioning&lt;a href=&quot;https://twitter.com/jetbrains&quot;&gt; @jetbrains&lt;/a&gt; and &lt;a href=&quot;https://fosstodon.org/@ThePSF&quot;&gt;@ThePSF&lt;/a&gt; with the #pythondevsurvey hashtag. We are also open to any suggestions and feedback related to this survey which could help us run an even better one next time.&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/8195689563451734803'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/8195689563451734803'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2023/09/python-developers-survey-numbers-for.html' title='Python Developers Survey Numbers for 2022!'/><author><name>Deb Nicholson</name><uri>http://www.blogger.com/profile/06173618710147431813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8520.post-2962495443605827522</id><published>2023-09-14T14:52:00.000-04:00</published><updated>2023-09-14T14:52:45.358-04:00</updated><title type='text'>Announcing Python Software Foundation Fellow Members for Q2 2023! 🎉</title><content type='html'>&lt;p&gt;&lt;span style=&quot;caret-color: rgb(0, 0, 0); color: #666666; font-family: inherit; font-size: 13.2px;&quot;&gt;The PSF is pleased to announce its second batch of PSF Fellows for 2023! Let us welcome the new PSF Fellows for Q2! The following people continue to do amazing things for the Python community:&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;b style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Esteban Maya Cadavid&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;a href=&quot;https://twitter.com/esteban_x64&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;Twitter&lt;/a&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;a href=&quot;https://www.linkedin.com/in/esteban-x64&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;LinkedIn&lt;/a&gt;,&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://github.com/estebanx64&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;Github&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://instagram.com/estebanx64?igshid=OGQ5ZDc2ODk2ZA==&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;Instagram&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;b style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Martijn Pieters&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;span style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px;&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/users/100297/martijn-pieters&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;Stack Overflow&lt;/a&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://github.com/mjpieters&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt;&lt;span style=&quot;color: black;&quot;&gt;,&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.zopatista.com/&quot; style=&quot;color: #2b5b84; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;Website&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;b style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Philip Jones&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;span&gt;&lt;a href=&quot;https://fosstodon.org/@pgjones&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;Mastodon&lt;/a&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://github.com/pgjones&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt;&lt;span style=&quot;color: black;&quot;&gt;,&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://pgjones.dev&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;Website&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;b style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Yifei Wang&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;a href=&quot;https://github.com/Sarah-Yifei-Wang&quot; style=&quot;color: #2b5b84; font-size: 13.2px; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt;&lt;span style=&quot;font-size: 13.2px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;p style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-align: justify; text-size-adjust: auto;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Thank you for your continued contributions. We have added you to our Fellow roster&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.python.org/psf/fellows-roster/&quot; style=&quot;-webkit-print-color-adjust: exact; color: #4183c4; font-family: inherit; text-align: left; text-decoration-line: none;&quot;&gt;online&lt;/a&gt;&lt;span style=&quot;text-align: left;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-print-color-adjust: exact; caret-color: rgb(0, 0, 0); color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-align: justify; text-size-adjust: auto;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;The above members help support the Python ecosystem by being phenomenal leaders, sustaining the growth of the Python scientific community, maintaining virtual Python communities, maintaining Python libraries, creating educational material, organizing Python events and conferences, starting Python communities in local regions, and overall being great mentors in our community. Each of them continues to help make Python more accessible around the world. To learn more about the new Fellow members, check out their links above.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-print-color-adjust: exact; caret-color: rgb(0, 0, 0); color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-size-adjust: auto;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Let&#39;s continue recognizing Pythonistas all over the world for their impact on our community. The criteria for Fellow members is available online:&amp;nbsp;&lt;a href=&quot;https://www.python.org/psf/fellows/&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot;&gt;https://www.python.org/psf/fellows/&lt;/a&gt;. If you would like to nominate someone to be a PSF Fellow, please send a description of their Python accomplishments and their email address to psf-fellow at python.org. Quarter 3 nominations are currently in review. We are accepting nominations for Quarter 4 through November 20, 2023.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-print-color-adjust: exact; caret-color: rgb(0, 0, 0); color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-size-adjust: auto;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Are you a PSF Fellow and want to help the Work Group review nominations? Contact us at&amp;nbsp;psf-fellow at python.org.&lt;/span&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/2962495443605827522'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/2962495443605827522'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2023/09/announcing-python-software-foundation.html' title='Announcing Python Software Foundation Fellow Members for Q2 2023! 🎉'/><author><name>Olivia Sauls</name><uri>http://www.blogger.com/profile/02332425566237042576</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8520.post-478485117586567957</id><published>2023-08-29T15:26:00.000-04:00</published><updated>2023-08-29T15:26:14.697-04:00</updated><title type='text'>The Python Software Foundation has been authorized by the CVE Program as a CVE Numbering Authority (CNA)</title><content type='html'>&lt;p style=&quot;text-align: left;&quot;&gt;When a vulnerability is disclosed in software you&#39;re depending on, the last thing you want is for the remediation process to be confusing or ad-hoc. Towards the goal of a more secure and safe Python ecosystem, the Python Software Foundation has been &lt;a href=&quot;https://www.cve.org/Media/News/item/news/2023/08/29/Python-Software-Foundation-Added-as-CNA&quot;&gt;authorized by the CVE Program&lt;/a&gt; as a CVE Numbering Authority (CNA).&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Being authorized as a CNA is one milestone in the Python Software Foundation&#39;s strategy to improve the vulnerability response processes of critical projects in the Python ecosystem. The &lt;a href=&quot;https://www.cve.org/PartnerInformation/ListofPartners/partner/PSF&quot;&gt;Python Software Foundation CNA scope&lt;/a&gt; covers &lt;a href=&quot;https://github.com/python/cpython&quot;&gt;Python&lt;/a&gt; and &lt;a href=&quot;https://github.com/pypa/pip&quot;&gt;pip&lt;/a&gt;, two 
projects which are fundamental to the rest of Python ecosystem.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;By becoming a CNA, the PSF will be providing the following benefits to in-scope projects:&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li style=&quot;text-align: left;&quot;&gt;Paid staffing for CNA operations rather than requiring volunteer time. &lt;br /&gt;&lt;/li&gt;&lt;li style=&quot;text-align: left;&quot;&gt;Quicker allocations of CVE IDs after a vulnerability is reported.&lt;br /&gt;&lt;/li&gt;&lt;li style=&quot;text-align: left;&quot;&gt;Involvement of each projects&#39; security response teams during the reporting of vulnerabilities.&lt;/li&gt;&lt;li style=&quot;text-align: left;&quot;&gt;Richer published advisories and CVE Records including descriptions, metadata, and remediation information.&lt;/li&gt;&lt;li style=&quot;text-align: left;&quot;&gt;Consistent disclosures and publishing locations. &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: left;&quot;&gt;CNA operations will be staffed primarily by the &lt;a href=&quot;https://pyfound.blogspot.com/2023/06/announcing-our-new-security-developer.html&quot;&gt;recently hired Security Developer-in-Residence&lt;/a&gt; Seth Michael Larson, Ee Durbin, and Chloe Gerhardson.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;The PSF wants to help other Open Source organizations and will be sharing lessons learned and developing guidance on becoming a CNA and day-to-day operations.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;To be alerted of newly published vulnerabilities in Python or pip, subscribe to the &lt;a href=&quot;https://mail.python.org/mailman3/lists/security-announce.python.org/&quot; target=&quot;_blank&quot;&gt;security-announce@python.org mailing list&lt;/a&gt; for security advisories. There is also a &lt;a href=&quot;https://github.com/psf/advisory-database&quot;&gt;new advisory database&lt;/a&gt; published to GitHub using the machine-readable &lt;a href=&quot;https://ossf.github.io/osv-schema/&quot;&gt;Open Source Vulnerability&lt;/a&gt; (OSV) format.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;If you&#39;d like to report a security vulnerability to Python or pip, the vulnerability disclosure policy is &lt;a href=&quot;https://www.python.org/dev/security&quot;&gt;available on python.org&lt;/a&gt;.&lt;/p&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;&lt;p style=&quot;text-align: left;&quot;&gt;The mission of the Common Vulnerabilities and Exposures (CVE®) Program is to&lt;br /&gt;identify, define, and catalog publicly disclosed cybersecurity vulnerabilities. There&lt;br /&gt;is one CVE Record for each vulnerability in the catalog. The vulnerabilities are&lt;br /&gt;discovered then assigned and published by organizations from around the world&lt;br /&gt;that have partnered with the CVE Program. Partners publish CVE Records to&lt;br /&gt;communicate consistent descriptions of vulnerabilities. Information technology&lt;br /&gt;and cybersecurity professionals use CVE Records to ensure they are discussing&lt;br /&gt;the same issue, and to coordinate their efforts to prioritize and address the&lt;br /&gt;vulnerabilities.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;The Python Software Foundation (PSF) is the non-profit organization 
behind Python and PyPI. Our mission is to promote, protect, and advance 
the Python programming language, and to support and facilitate the 
growth of a diverse and international community of Python programmers. 
The PSF supports the Python community using corporate sponsorships, 
grants, and donations. Are you interested in sponsoring or donating to 
the PSF so it can continue supporting Python and its community? Check 
out our &lt;a href=&quot;https://www.python.org/psf/sponsorship/&quot;&gt;sponsorship program&lt;/a&gt;, &lt;a href=&quot;https://psfmember.org/civicrm/contribute/transact/?reset=1&amp;amp;id=2&quot;&gt;donate directly here&lt;/a&gt;, or contact our team!&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/478485117586567957'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/478485117586567957'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2023/08/psf-authorized-as-cna.html' title='The Python Software Foundation has been authorized by the CVE Program as a CVE Numbering Authority (CNA)'/><author><name>Seth Michael Larson</name><uri>http://www.blogger.com/profile/16555309043643874359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8520.post-6974714988759780968</id><published>2023-08-04T12:32:00.000-04:00</published><updated>2023-08-04T12:32:28.554-04:00</updated><title type='text'>Announcing Our New PyPI Safety &amp; Security Engineer!</title><content type='html'>&lt;p&gt;We &lt;a href=&quot;https://blog.pypi.org/posts/2023-05-09-announcing-pypi-safety-and-security-engr-role/&quot;&gt;announced our intention&lt;/a&gt; back in May to fill this role with &lt;a href=&quot;https://aws.amazon.com/blogs/opensource/securing-pypi-for-the-future/&quot;&gt;generous funding by Amazon Web Services (AWS)&lt;/a&gt;, and after a thorough search, we are delighted to announce &lt;a href=&quot;https://mike.fiedler.me/&quot;&gt;Mike Fiedler&lt;/a&gt; is joining the team! He joins the PSF for the next year as our first ever PyPI Safety &amp;amp; Security Engineer. Mike is already a dedicated member of the Python packaging community – he has been a Python user for some 15 years, maintains and contributes to open source, and became a PyPI Maintainer in 2022.&lt;/p&gt;&lt;p&gt;This critical role would not be possible without funding from &lt;a href=&quot;https://aws.amazon.com/opensource/&quot;&gt;AWS&lt;/a&gt;: &quot;&lt;i&gt;We are happy to be able to invest in the sustainable and secure development of Python and PyPI, and we look forward to Mike&#39;s contributions&lt;/i&gt;.&quot; - Tom Callaway, AWS. &lt;br /&gt;&lt;br /&gt;Mike begins his work with the &lt;a href=&quot;http://pypi.org&quot;&gt;Python Packaging Index&lt;/a&gt; (PyPI) this week. He says, “&lt;i&gt;Very excited to join the team in improving the safety and security of PyPI for end users, package publishers, maintainers, and PyPI moderators and administrators - that’s a huge audience!&lt;/i&gt;” We hope that everyone in the community will join us in welcoming Mike and supporting his critical work for Python packaging!&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQtH2F2N_fn2rburkNWVpr26ctTVpSbwdIo0c6gfgVpmoWa6E3sxBa9p8Jcnx1_9r4LsOT2hJkJrdN0ttP-EmMAA6o1AHptBHlcWnytl8fAvjBlIltUslJDHKE1lAKrUqX8aT1aE4CndI4Hp5-nMOvQyLXl6T80Boj30yN7wy1VeZmVsuxL3Q/s3289/49506768212_ac4f703527_o.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img alt=&quot;A photo of Mike Fiedler smiling to the camera.&quot; border=&quot;0&quot; data-original-height=&quot;3289&quot; data-original-width=&quot;2500&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQtH2F2N_fn2rburkNWVpr26ctTVpSbwdIo0c6gfgVpmoWa6E3sxBa9p8Jcnx1_9r4LsOT2hJkJrdN0ttP-EmMAA6o1AHptBHlcWnytl8fAvjBlIltUslJDHKE1lAKrUqX8aT1aE4CndI4Hp5-nMOvQyLXl6T80Boj30yN7wy1VeZmVsuxL3Q/w243-h320/49506768212_ac4f703527_o.jpg&quot; width=&quot;243&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;We are thrilled that for the first time we are able to bring on an engineer who will be dedicated full-time  to PyPI. PyPI is a massive project that has become key digital infrastructure serving millions of users. Up until now, PyPI has been almost entirely volunteer-run, depending on a tiny team with only one fraction of one person’s paid time. We’re expecting all PyPI users to have a tangibly improved experience from Mike’s work over the next year. Some of the outcomes we are targeting include increased support for package maintainers including multi-maintainer projects, improvements to reporting infrastructure for malicious projects, as well as a reduced response time for malware reports and account recovery requests. Mike will work closely with our also-recently-announced &lt;a href=&quot;https://pyfound.blogspot.com/2023/06/announcing-our-new-security-developer.html&quot;&gt;Security Developer in Residence, Seth Larson&lt;/a&gt;. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;This role is funded by a substantial investment from AWS, inaugural Security Sponsor for PyPI. AWS has been one of the top sponsors of the Python Software Foundation for the last five years, and our long-term partnership with AWS has also included important in-kind donations of cloud computing infrastructure and services to support PyPI.&amp;nbsp;&lt;/p&gt;&lt;p&gt;The Python Software Foundation (PSF) is the non-profit organization behind Python and PyPI. Our mission is to promote, protect, and advance the Python programming language, and to support and facilitate the growth of a diverse and international community of Python programmers. The PSF supports the Python community using corporate sponsorships, grants, and donations. Are you interested in sponsoring or donating to the PSF so it can continue supporting Python and its community? Check out our &lt;a href=&quot;https://www.python.org/psf/sponsorship/&quot;&gt;sponsorship program&lt;/a&gt;, &lt;a href=&quot;https://psfmember.org/civicrm/contribute/transact/?reset=1&amp;amp;id=2&quot;&gt;donate directly here&lt;/a&gt;, or contact our team!&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/6974714988759780968'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/6974714988759780968'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2023/08/announcing-our-new-pypi-safety-security.html' title='Announcing Our New PyPI Safety &amp; Security Engineer!'/><author><name>Loren Crary</name><uri>http://www.blogger.com/profile/06125752284896762014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-2AcMmDLDWxEuhuvXW351Zu80hAxm9SbDI2ANl_Tfx4dG8r--fPmO_0x5lPGrRijT-c2EDChrojKOellhEw5P7WJnQRQDXTOh-IAj55Z8xZfwtvf4LnGS0RR64H57ltY/s220/Loren+candid+.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQtH2F2N_fn2rburkNWVpr26ctTVpSbwdIo0c6gfgVpmoWa6E3sxBa9p8Jcnx1_9r4LsOT2hJkJrdN0ttP-EmMAA6o1AHptBHlcWnytl8fAvjBlIltUslJDHKE1lAKrUqX8aT1aE4CndI4Hp5-nMOvQyLXl6T80Boj30yN7wy1VeZmVsuxL3Q/s72-w243-h320-c/49506768212_ac4f703527_o.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-8520.post-2872726580734550057</id><published>2023-08-02T10:51:00.000-04:00</published><updated>2023-08-02T10:51:09.365-04:00</updated><title type='text'>Announcing Python Software Foundation Fellow Members for Q1 2023! 🎉</title><content type='html'>&lt;p&gt;&lt;span style=&quot;caret-color: rgb(0, 0, 0); color: #666666; font-family: inherit; font-size: 13.2px;&quot;&gt;The PSF is pleased to announce its first batch of PSF Fellows for 2023! Let us welcome the new PSF Fellows for Q1! The following people continue to do amazing things for the Python community:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px;&quot;&gt;&lt;span style=&quot;caret-color: rgb(0, 0, 0); font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;b style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Abhishek Mishra&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;a href=&quot;https://twitter.com/stalwartcoder&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;Twitter&lt;/a&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;a href=&quot;https://www.linkedin.com/in/stalwartcoder/&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;LinkedIn&lt;/a&gt;,&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://abhishekmishra.dev&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;Website&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;b style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Barney Gale&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;span face=&quot;&amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif&quot; style=&quot;color: #666666; font-size: 13.2px;&quot;&gt;&lt;a href=&quot;https://github.com/barneygale/&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt;&lt;span style=&quot;color: black;&quot;&gt;,&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.linkedin.com/in/bgale1/&quot; style=&quot;color: #2b5b84; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;LinkedIn&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;b style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Eric Traut&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;span&gt;&lt;a href=&quot;https://github.com/erictraut&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt;&lt;span style=&quot;color: black;&quot;&gt;,&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.linkedin.com/in/eric-traut-79a815137/&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;LinkedIn&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;b style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Gina Häußge&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;a href=&quot;https://chaos.social/@foosel&quot; style=&quot;color: #2b5b84; font-size: 13.2px; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;Mastodon&lt;/a&gt;&lt;span style=&quot;color: #0b5394; font-size: 13.2px;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://github.com/foosel&quot; style=&quot;color: #2b5b84; font-size: 13.2px; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt;&lt;span style=&quot;font-size: 13.2px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: black; font-size: 13.2px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://foosel.net&quot; style=&quot;color: #2b5b84; font-size: 13.2px; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;Website&lt;/a&gt;&lt;span style=&quot;font-size: 13.2px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;b style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Grishma Jena&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;a href=&quot;https://twitter.com/DebateLover &quot; style=&quot;color: #2b5b84; font-size: 13.2px; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;Twitter&lt;/a&gt;&lt;span style=&quot;color: #0b5394; font-size: 13.2px;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 13.2px;&quot;&gt;&lt;a href=&quot;https://www.linkedin.com/in/grishmajena/&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;LinkedIn&lt;/a&gt;&lt;span style=&quot;color: black;&quot;&gt;,&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://gjena.github.io/&quot; style=&quot;color: #2b5b84; font-size: 13.2px; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;Website&lt;/a&gt;&lt;span style=&quot;font-size: 13.2px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: black; font-size: 13.2px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://instagram.com/data_designtist&quot; style=&quot;color: #2b5b84; font-size: 13.2px; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;Instagram&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;b style=&quot;font-size: 13.2px;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Samuel Colvin&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;span&gt;&lt;a href=&quot;https://twitter.com/samuel_colvin &quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;Twitter&lt;/a&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://github.com/samuelcolvin&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;b style=&quot;font-size: 13.2px; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Saptak Sengupta&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;a href=&quot;https://toots.dgplug.org/@saptaks&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;Mastodon&lt;/a&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://github.com/saptaks&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt;,&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://saptaks.website&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;Website&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-align: center; text-size-adjust: auto;&quot;&gt;&lt;div style=&quot;font-size: medium; margin: 15px 0px; text-size-adjust: auto;&quot;&gt;&lt;b style=&quot;font-size: 13.2px; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Soon Seng Goh&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin: 15px 0px; text-size-adjust: auto;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-align: justify; text-size-adjust: auto;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Thank you for your continued contributions. We have added you to our Fellow roster&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.python.org/psf/fellows-roster/&quot; style=&quot;-webkit-print-color-adjust: exact; color: #4183c4; font-family: inherit; text-align: left; text-decoration-line: none;&quot;&gt;online&lt;/a&gt;&lt;span style=&quot;text-align: left;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-print-color-adjust: exact; caret-color: rgb(0, 0, 0); color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-align: justify; text-size-adjust: auto;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;The above members help support the Python ecosystem by being phenomenal leaders, sustaining the growth of the Python scientific community, maintaining virtual Python communities, maintaining Python libraries, creating educational material, organizing Python events and conferences, starting Python communities in local regions, and overall being great mentors in our community. Each of them continues to help make Python more accessible around the world. To learn more about the new Fellow members, check out their links above.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-print-color-adjust: exact; caret-color: rgb(0, 0, 0); color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-size-adjust: auto;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Let&#39;s continue recognizing Pythonistas all over the world for their impact on our community. The criteria for Fellow members is available online:&amp;nbsp;&lt;a href=&quot;https://www.python.org/psf/fellows/&quot; style=&quot;color: #2b5b84; text-decoration-line: none;&quot;&gt;https://www.python.org/psf/fellows/&lt;/a&gt;. If you would like to nominate someone to be a PSF Fellow, please send a description of their Python accomplishments and their email address to psf-fellow at python.org. Quarter 2 nominations are currently in review. We are accepting nominations for quarter 3 through August 20, 2023.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-print-color-adjust: exact; caret-color: rgb(0, 0, 0); color: #666666; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 13.2px; margin: 15px 0px; text-size-adjust: auto;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Are you a PSF Fellow and want to help the Work Group review nominations? Contact us at&amp;nbsp;psf-fellow at python.org.&lt;/span&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/2872726580734550057'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/2872726580734550057'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2023/08/announcing-python-software-foundation.html' title='Announcing Python Software Foundation Fellow Members for Q1 2023! 🎉'/><author><name>Olivia Sauls</name><uri>http://www.blogger.com/profile/02332425566237042576</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8520.post-8271427983184870250</id><published>2023-06-30T20:13:00.000-04:00</published><updated>2023-06-30T20:13:47.548-04:00</updated><title type='text'>Announcing the 2023 PSF Board Election Results!</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;It was a really lively and engaged election process for the PSF Board
 this year! First of all, we want to thank everyone who ran and was 
willing to serve on the PSF Board. Even if you were not elected, we 
appreciate all the time and effort you put into thinking about how to 
make the PSF better and how to represent the parts of the community that
 you participate in. We hope that you will continue to think about these
 issues and share your ideas. &lt;br /&gt;&lt;br /&gt;Congratulations to our five new Board members-elect!&amp;nbsp;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Cheuk Ting Ho&lt;/li&gt;&lt;li&gt;Denny Perez&lt;/li&gt;&lt;li&gt;Georgi Ker&lt;/li&gt;&lt;li&gt;Christopher Neugebauer&lt;/li&gt;&lt;li&gt;KwonHan Bae * &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;We’ll
 be in touch with all the elected candidates next week to schedule 
onboarding. * The fifth person is being invited to serve for a year to 
fill the off-cycle vacancy left by Joannah Nanjekye, who stepped down 
from the Board. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;I’d like to take this opportunity to thank 
our outgoing board members for their outstanding service; Dustin Ingram,
 Joannah Nanjekye, Jeff Triplett, Thomas Wouters and Nina Zakharenko. 
They served on the PSF Board through a particularly eventful time; 
helping us to navigate the global pandemic, rework PyCon US into a 
virtual event and hire a new Executive Director. Thank you for 
supporting the PSF and the Python community through so much change! &lt;br /&gt;&lt;br /&gt;Our
 heartfelt thanks go out to each of you who took the time to review the 
candidates and submit your votes. Your participation helps the PSF 
represent our community. We received 621 total votes, which easily 
reached quorum–1/3 of affirmed voting members (877). We’re especially 
grateful for your patience with navigating the changes to the voting 
process, which ultimately allowed for a valid election and a more 
sustainable elections system. &lt;br /&gt;&lt;br /&gt;I also want to thank everyone who helped promote this year’s board election, especially&lt;a href=&quot;https://pythoncommunitynews.com/&quot;&gt; Python Community News&lt;/a&gt;
 who took the initiative to cover this year’s election and produced 
informational videos from each candidate. I also want to highlight the 
PSF staff members who made some changes to our membership management on 
the back-end this year, enabling us to affirm voting intention for the 
first time ever and setting up OpaVote. Thanks to Ee Durbin and Joe 
Carey!&lt;br /&gt;&lt;br /&gt;Finally, it might feel a little early to mention this, but
 we will have four seats open again next year. If you&#39;re interested in 
running or learning more, we encourage you to reach out to a current 
board member or two this year and ask them about serving. &lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/8271427983184870250'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/8271427983184870250'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2023/06/announcing-2023-psf-board-election.html' title='Announcing the 2023 PSF Board Election Results!'/><author><name>Deb Nicholson</name><uri>http://www.blogger.com/profile/06173618710147431813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8520.post-5325337645245150961</id><published>2023-06-22T09:50:00.000-04:00</published><updated>2023-06-22T09:50:11.087-04:00</updated><title type='text'>Announcing Our New Security Developer in Residence!</title><content type='html'>&lt;p&gt;We &lt;a href=&quot;https://pyfound.blogspot.com/2023/01/the-psf-is-hiring-security-developer-in.html&quot;&gt;announced our intention&lt;/a&gt; to fill this role back in January, and after a thorough search, we have chosen &lt;a href=&quot;https://github.com/sethmlarson&quot;&gt;Seth Michael Larson&lt;/a&gt;! He joins the PSF for the next year as our first ever Security Developer-in-Residence. Seth is already well-known to the Python community – he was named a PSF Fellow last year and has already written a lot about Python and security on &lt;a href=&quot;https://sethmlarson.dev/blog&quot;&gt;his blog&lt;/a&gt;. &lt;br /&gt;&lt;/p&gt;This critical role would not be possible without funding from the OpenSSF &lt;a href=&quot;https://alpha-omega.dev/&quot;&gt;Alpha-Omega Project&lt;/a&gt;.  “At Alpha-Omega, we are excited to support the Python Software Foundation as they improve the security of PyPI, and more generally the Python ecosystem as a whole.” Alpha Omega Representative - Bob Callaway, Google&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMMjW7t6SUT_JHOfnctOA2PQf9X7rZqTSaPr298fwf-XynMa2DWodyEPPO85ECX87IhXt5B_vdtBJIjxJepuCxNhCRZ-PztzjN-GHU7ZnuaWxp1tTzYwY9x2kKe8TfK_U5YB0tgJtm6mxZwRXKO15-hfHJ8bzAJLQgAd9A2mhLgOUsGKEFlT8/s460/SML.jpeg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;460&quot; data-original-width=&quot;460&quot; height=&quot;258&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMMjW7t6SUT_JHOfnctOA2PQf9X7rZqTSaPr298fwf-XynMa2DWodyEPPO85ECX87IhXt5B_vdtBJIjxJepuCxNhCRZ-PztzjN-GHU7ZnuaWxp1tTzYwY9x2kKe8TfK_U5YB0tgJtm6mxZwRXKO15-hfHJ8bzAJLQgAd9A2mhLgOUsGKEFlT8/w258-h258/SML.jpeg&quot; width=&quot;258&quot; /&gt;&lt;/a&gt;Seth begins his work with Python and the&lt;a href=&quot;https://pypi.org/&quot;&gt; Python Package Index&lt;/a&gt; (PyPI) this week. He says, “The Python community is such a positive part of my life so I&#39;m grateful for this incredible opportunity to contribute back. I&#39;m looking forward to partnering with all of you to build a more secure Python ecosystem for everyone!” We hope that everyone in the community will welcome Seth and help him succeed in his audit and subsequent plans for key security improvements.&lt;/p&gt;&lt;p&gt;This role is funded by a substantial investment from the&lt;a href=&quot;https://openssf.org/&quot;&gt; Open Software Security Foundation&lt;/a&gt; (OpenSSF)&lt;a href=&quot;https://openssf.org/community/alpha-omega/&quot;&gt; Alpha-Omega Project&lt;/a&gt;. The OpenSSF is a non-profit cross-industry collaboration that brings together leaders to improve the security of open source software by building a broader community, targeted initiatives, and best practices. The OpenSSF unifies many open source security initiatives under one foundation to accelerate work through cross-industry support.&lt;/p&gt;&lt;p&gt;The Python Software Foundation (PSF) is a non-profit whose mission is to promote, protect, and advance the Python programming language, and to support and facilitate the growth of a diverse and international community of Python programmers. The PSF supports the Python community using corporate sponsorships, grants, and donations. Are you interested in sponsoring or donating to the PSF so it can continue supporting Python and its community? Check out our&lt;a href=&quot;https://www.python.org/sponsors/application/&quot;&gt; sponsorship program&lt;/a&gt;,&lt;a href=&quot;https://psfmember.org/civicrm/contribute/transact?reset=1&amp;amp;id=2&quot;&gt; donate directly here&lt;/a&gt;, or contact our team! &lt;br /&gt;&lt;br /&gt; &lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/5325337645245150961'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/5325337645245150961'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2023/06/announcing-our-new-security-developer.html' title='Announcing Our New Security Developer in Residence!'/><author><name>Deb Nicholson</name><uri>http://www.blogger.com/profile/06173618710147431813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMMjW7t6SUT_JHOfnctOA2PQf9X7rZqTSaPr298fwf-XynMa2DWodyEPPO85ECX87IhXt5B_vdtBJIjxJepuCxNhCRZ-PztzjN-GHU7ZnuaWxp1tTzYwY9x2kKe8TfK_U5YB0tgJtm6mxZwRXKO15-hfHJ8bzAJLQgAd9A2mhLgOUsGKEFlT8/s72-w258-h258-c/SML.jpeg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-8520.post-7439097174267703391</id><published>2023-06-20T13:47:00.003-04:00</published><updated>2023-06-21T11:39:15.341-04:00</updated><title type='text'>The 2023 PSF Board Election is Open!</title><content type='html'>&lt;p&gt;It’s time to cast your vote! Voting takes place from today Tuesday, June 20, through Friday, June 30, 2023 11:59pm UTC. If you are a voting member of the PSF, you should have gotten an email from “OpaVote Voting Link &amp;lt;noreply@opavote.com&amp;gt;” with your ballot, the subject line will read “Python Software Foundation Board of Directors Election 2023”. If you haven’t seen your ballot by Wednesday, please 1) check your spam folder for a message from “noreply@opavote.com” and if you don’t see anything 2) get in touch by emailing psf-elections@python.org so we can make sure we have the most up to date email for you.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Four seats are open, but you can approve as many candidates as you like. BUT! Choose carefully before you press the &lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;big green vote button&lt;/span&gt;&lt;/b&gt;. Once your vote is cast, it cannot be changed. &lt;br /&gt;&lt;br /&gt;We’re overwhelmed by how many of you are willing to contribute to the Python community by serving on the PSF board! Make sure you schedule some time to &lt;a href=&quot;https://www.python.org/nominations/elections/2023-python-software-foundation-board/nominees/&quot;&gt;look at all their statements&lt;/a&gt; and choose your candidates carefully. OpaVote doesn’t let you go back and change your vote once you’ve made your choices. &lt;br /&gt;&lt;br /&gt;Who can vote? You need to be a Contributing, Managing, Supporting, or Fellow member as of June 15, 2023 and have &lt;a href=&quot;https://pyfound.blogspot.com/2023/06/affirming-your-psf-membership-voting.html&quot;&gt;affirmed your voting&lt;/a&gt; intention by June 19, 2023 to vote in this election. Read more about our membership types&lt;a href=&quot;https://www.python.org/psf/membership/&quot;&gt; here&lt;/a&gt; or if you have questions about your membership status please email psf-elections@python.org&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/7439097174267703391'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/7439097174267703391'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2023/06/the-2023-psf-board-election-is-open.html' title='The 2023 PSF Board Election is Open!'/><author><name>Deb Nicholson</name><uri>http://www.blogger.com/profile/06173618710147431813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8520.post-5494829174430708233</id><published>2023-06-16T13:19:00.002-04:00</published><updated>2023-06-16T13:19:33.919-04:00</updated><title type='text'>Board Candidates for 2023 are Announced!</title><content type='html'>&lt;p&gt;What an exciting list! Please take a look at who is running for the PSF Board this year &lt;a href=&quot;https://www.python.org/nominations/elections/2023-python-software-foundation-board/nominees/&quot;&gt;here&lt;/a&gt;. This year there are 4 seats open on the PSF board. You can see who is on the board currently &lt;a href=&quot;https://www.python.org/psf/records/board/history/&quot;&gt;here&lt;/a&gt;. (Dustin Ingram, Jeff Triplett, Nina Zakharenko and Thomas Wouters are at the end of their current terms.) &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Board Election Timeline:&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Nominations are open, Thursday, June 1st, 2:00 pm UTC&lt;/li&gt;&lt;li&gt;Board Director Nomination cut-off: Thursday, June 15, 11:59 pm UTC&lt;/li&gt;&lt;li&gt;Voter application cut-off date: Thursday, June 15, 11:59 pm UTC&lt;/li&gt;&lt;li&gt;Announce candidates: Friday, June 16th&lt;/li&gt;&lt;li&gt;Voting start date: Tuesday, June 20, 12:01 am UTC&lt;/li&gt;&lt;li&gt;Voting end date: Friday, June 30, 11:59 pm UTC&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Not sure what UTC is for you locally? Check &lt;a href=&quot;https://savvytime.com/converter/utc&quot;&gt;here&lt;/a&gt;!&amp;nbsp;&lt;/p&gt;&lt;p&gt;Voting takes place from today Tuesday, June 20, through Friday, June 30, 2023 11:59pm UTC. Check &lt;a href=&quot;https://www.python.org/nominations/elections/&quot;&gt;here&lt;/a&gt; to see how much time you have left to vote. If you are a voting member of the PSF, you will get an email from “OpaVote Voting Link &amp;lt;noreply@opavote.com&amp;gt;” with your ballot, the subject line will read “Python Software Foundation Board of Directors Election 2023”. If you haven’t seen your ballot by Wednesday, please 1) check your spam folder for a message from “noreply@opavote.com” and if you don’t see anything 2) get in touch by emailing psf-elections@python.org so we can make sure we have the most up to date email for you. &lt;/p&gt;&lt;p&gt;If you have questions about your membership status or the election, please email &lt;a href=&quot;mailto:psf-elections@python.org&quot;&gt;psf-elections@python.org&lt;/a&gt; You are welcome to join the discussion about the PSF Board election on &lt;a href=&quot;http://psf-board.slack.com&quot;&gt;Slack&lt;/a&gt; or on &lt;a href=&quot;https://discuss.python.org/c/python-software-foundation/9&quot;&gt;our forum&lt;/a&gt;. &lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/5494829174430708233'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/5494829174430708233'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2023/06/board-candidates-for-2023-are-announced.html' title='Board Candidates for 2023 are Announced!'/><author><name>Deb Nicholson</name><uri>http://www.blogger.com/profile/06173618710147431813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8520.post-3334800395300896983</id><published>2023-06-07T13:57:00.000-04:00</published><updated>2023-06-07T13:57:53.023-04:00</updated><title type='text'>Affirming your PSF Membership voting status </title><content type='html'>Every PSF Voting Member (Supporting, Managing, Contributing, and Fellow) needs to affirm their membership in order to vote in this year’s election.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This year’s Board Election begins June 20th, and voter eligibility cut-off is June 15th. You should have received an email with instructions and you need to affirm your voting rights before June 15th in order to participate in this year&#39;s Board Election. Email will be from&amp;nbsp;&quot;psf@psfmember.org &amp;lt;Python Software Foundation&amp;gt;&quot; with subject &quot;[Action Required] Affirm your PSF Membership voting status&quot;&lt;br /&gt;&lt;br /&gt;Why you are being asked to do this: &lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;margin-left: 40px; text-align: left;&quot;&gt;Section 4.2 of the PSF Bylaws requires that “Members of any membership class with voting rights must affirm each year to the corporation in writing that such member intends to be a voting member for such year.”&lt;br /&gt;&lt;br /&gt;The PSF has not enforced this in the past, because it was technically challenging to do so. Now that our voting membership has been completely consolidated into psfmember.org, we are able to do so.&lt;br /&gt;&lt;br /&gt;Our motivation is to ensure that our elections can meet quorum as required by Section 3.9 of our bylaws. As our membership has grown we have seen that and increasing number of Contributing, Managing, and Fellow members with indefinite membership do not engage with our annual election, making quorum difficult to reach.&lt;/div&gt;&lt;p&gt;You can see your membership record and status on&amp;nbsp;&lt;a href=&quot;https://psfmember.org/user-information&quot;&gt;psfmember.org&lt;/a&gt;&amp;nbsp;(note you must be logged in to view that page). If you are a voting-eligible member and do not already have a login there, please&amp;nbsp;&lt;a href=&quot;https://psfmember.org/wp-login.php?action=register&quot;&gt;sign up&lt;/a&gt; and then email&amp;nbsp;psf-donations@python.org so we can link your membership to your account. You can click the emailed link to re-certify without signing in. But please create your account and ensure it is linked to your membership so that we can ensure we have the most up-to-date contact information for you in the future.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What happens next?&lt;/b&gt; You’ll get an email from OpaVote with a ballot on or before June 20th and then you can vote!&lt;/p&gt;&lt;p&gt;Learn more about membership&amp;nbsp;&lt;a href=&quot;https://www.python.org/psf/membership/&quot;&gt;here&lt;/a&gt; or if you have questions about membership or nominations please email&amp;nbsp;psf-elections@python.org In addition to&amp;nbsp;&lt;a href=&quot;http://psf-board.slack.com/&quot;&gt;Slack&lt;/a&gt; you are welcome to join the discussion about the PSF Board election on&amp;nbsp;&lt;a href=&quot;https://discuss.python.org/c/python-software-foundation/9&quot;&gt;our forum&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/3334800395300896983'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/3334800395300896983'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2023/06/affirming-your-psf-membership-voting.html' title='Affirming your PSF Membership voting status '/><author><name>Deb Nicholson</name><uri>http://www.blogger.com/profile/06173618710147431813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8520.post-4878121842838063233</id><published>2023-05-31T15:22:00.001-04:00</published><updated>2023-05-31T15:22:18.236-04:00</updated><title type='text'>Thinking about running for the Python Software Foundation Board of Directors? Let’s talk! </title><content type='html'>&lt;p dir=&quot;ltr&quot; id=&quot;docs-internal-guid-3aa0cbd5-7fff-fec0-3d7a-1819f76c6347&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;This year’s Board Election Nomination period is &lt;a href=&quot;https://pyfound.blogspot.com/2023/05/psf-board-election-dates-for-2023.html&quot;&gt;opening tomorrow&lt;/a&gt;. Current board members want to share what being on the board is like and are making themselves available to answer all your questions about responsibilities, activities and time commitments via online chat. Please come join us &lt;a href=&quot;https://www.python.org/join-psf-board-slack&quot;&gt;on Slack&lt;/a&gt; anytime in June to talk with us about being on the PSF board. &lt;br /&gt;&lt;br /&gt;Board Election Timeline:&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Nominations are open, Thursday, June 1st, 2:00 pm UTC&lt;/li&gt;&lt;li&gt;Board Director Nomination cut-off: Thursday, June 15, 11:59 pm UTC&lt;/li&gt;&lt;li&gt;Voter application cut-off date: Thursday, June 15, 11:59 pm UTC&lt;/li&gt;&lt;li&gt;Announce candidates: Friday, June 16th&lt;/li&gt;&lt;li&gt;Voting start date: Tuesday, June 20, 12:01 am UTC&lt;/li&gt;&lt;li&gt;Voting end date: Friday, June 30, 11:59 pm UTC&lt;/li&gt;&lt;/ul&gt;&lt;p dir=&quot;ltr&quot; id=&quot;docs-internal-guid-3aa0cbd5-7fff-fec0-3d7a-1819f76c6347&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;Not sure what UTC is for you locally? Check &lt;a href=&quot;https://savvytime.com/converter/utc&quot;&gt;here&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;Nominations will be accepted &lt;a href=&quot;https://www.python.org/nominations/elections/&quot;&gt;here&lt;/a&gt;. (Note: you will need to sign into or create your python.org user account first). Learn more about membership &lt;a href=&quot;https://www.python.org/psf/membership/&quot;&gt;here&lt;/a&gt; or if you have questions about membership or nominations please email &lt;a href=&quot;mailto:psf-elections@python.org&quot;&gt;psf-elections@python.org&lt;/a&gt;In addition to &lt;a href=&quot;http://psf-board.slack.com&quot;&gt;Slack&lt;/a&gt; you are welcome to join the discussion about the PSF Board election on &lt;a href=&quot;https://discuss.python.org/c/python-software-foundation/9&quot;&gt;our forum&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;Also, you can see your membership record and status on &lt;a href=&quot;https://psfmember.org/user-information&quot;&gt;psfmember.org&lt;/a&gt;. If you are a voting-eligible member and do not already have a login there, please &lt;a href=&quot;https://psfmember.org/wp-login.php?action=register&quot;&gt;sign up&lt;/a&gt; and then email &lt;a href=&quot;mailto:psf-donations@python.org&quot;&gt;psf-donations@python.org&lt;/a&gt; so we can link your membership to your account. </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/4878121842838063233'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/4878121842838063233'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2023/05/thinking-about-running-for-python.html' title='Thinking about running for the Python Software Foundation Board of Directors? Let’s talk! '/><author><name>Deb Nicholson</name><uri>http://www.blogger.com/profile/06173618710147431813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8520.post-7340321252014847424</id><published>2023-05-29T12:34:00.003-04:00</published><updated>2023-05-29T17:20:02.144-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="pycon"/><title type='text'>The Python Language Summit 2023: Towards Native Profiling for Python</title><content type='html'>
&lt;div class=&quot;markdown-body container-fluid comment-inner comment-enabled&quot; data-hard-breaks=&quot;true&quot; id=&quot;doc&quot;&gt;Joannah Nanjekye came to the &lt;a href=&quot;https://pyfound.blogspot.com/2023/05/the-python-language-summit-2023_29.html&quot; rel=&quot;nofollow&quot; target=&quot;&quot;&gt;Python Language Summit 2023&lt;/a&gt; to discuss innovations by &lt;a href=&quot;https://github.com/plasma-umass/scalene&quot;&gt;Scalene&lt;/a&gt;, a sampling-based Python profiler that can distinguish between native code and Python code in its reports. After its initial release in late 2019, Scalene has become one of the most popular Python profiling tools. It has now been downloaded 500,000 times from PyPI.&lt;/div&gt;&lt;div class=&quot;markdown-body container-fluid comment-inner comment-enabled&quot; data-hard-breaks=&quot;true&quot; id=&quot;doc&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;markdown-body container-fluid comment-inner comment-enabled&quot; data-hard-breaks=&quot;true&quot; id=&quot;doc&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;markdown-body container-fluid comment-inner comment-enabled&quot; data-hard-breaks=&quot;true&quot; id=&quot;doc&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4ACb3kr0fWAbdjl0tzHpGzioUYGYX9wrXnK915nFqYIKZPU_-DRDuiT1RVqY9FUs4-C4mwMeEnoKWP284KUtqm2Y7O4MJTSrUIHEeptUZl4U_dB4Q6Q3j_7mWveS-ksCQTD662HbZW3tInYRVrKia0qFxl6VC-TDg3pIrv3qcv6totiI/s1180/image_2023-05-27_222414441.png&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;480&quot; data-original-width=&quot;1180&quot; height=&quot;130&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4ACb3kr0fWAbdjl0tzHpGzioUYGYX9wrXnK915nFqYIKZPU_-DRDuiT1RVqY9FUs4-C4mwMeEnoKWP284KUtqm2Y7O4MJTSrUIHEeptUZl4U_dB4Q6Q3j_7mWveS-ksCQTD662HbZW3tInYRVrKia0qFxl6VC-TDg3pIrv3qcv6totiI/s320/image_2023-05-27_222414441.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;The Scalene project logo&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class=&quot;markdown-body container-fluid comment-inner comment-enabled&quot; data-hard-breaks=&quot;true&quot; id=&quot;doc&quot;&gt;&lt;br /&gt;&lt;p&gt;&lt;span&gt;A profiler is a tool that can monitor a program as it is running. Once the program has run, the profiler can provide a report analysing which lines of code were visited most often, which were the most expensive in terms of time spent, and which were the most expensive in terms of memory usage. Profilers can therefore be hugely useful tools for addressing performance issues in code. If you’re unsure where your program is spending most of its time, it can be hard to optimise it.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Profilers can be split into two broad categories: trace-based profilers and sampling-based profilers. Trace-based profilers work by intercepting each function call as your program is running and logging information about the time spent, memory usage, etc. Sampling-based profilers, meanwhile, take snapshots of your program at periodic intervals to monitor these things. A trace-based profiler has the advantage that it can provide a granular and precise level of detail about which lines of code were executed and when each function call finishes; this makes it ideal for use as a tool to monitor test coverage, for example. However, injecting tracing hooks into each function call can sometimes slow down a program and distort the analysis of where most time was spent. As a result, sampling-based profilers are sometimes preferred for profiling performance.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Scalene is a sampling-based profiler, and aims to address the shortcomings of previous sampling-based profilers for Python. One of the key challenges sampling-based profilers have faced in the past has been accurately measuring the time Python programs spend in “native code”.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghK9GiEpyTkxBrAoaC_bG_5ophtqVcxtc-70dyCa5Y2g35CoVdQiPjiTc2lr4x4UeRq6bJW-TwhfT0kDykcpTS3GZubW9BwrnqoWxnTHe5L5Vih6H-NsAkq_OrmCiWQyWTwG7u_2rQIH6mIsIHcRAtS2KHIyIrvofK1TIpIrSR-iJrOCw/s1192/Nanjekye%20slide%20screenshot.png&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;791&quot; data-original-width=&quot;1192&quot; height=&quot;212&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghK9GiEpyTkxBrAoaC_bG_5ophtqVcxtc-70dyCa5Y2g35CoVdQiPjiTc2lr4x4UeRq6bJW-TwhfT0kDykcpTS3GZubW9BwrnqoWxnTHe5L5Vih6H-NsAkq_OrmCiWQyWTwG7u_2rQIH6mIsIHcRAtS2KHIyIrvofK1TIpIrSR-iJrOCw/s320/Nanjekye%20slide%20screenshot.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Slide from Nanjekye’s talk, illustrating sampling-based profiling&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 class=&quot;raw&quot;&gt;Handling the problem of native code&lt;/h2&gt;&lt;p&gt;&lt;span&gt;“Native code”, also sometimes referred to as “machine code”, refers to code consisting of low-level instructions that can be interpreted directly by the hardware processor. Using extensions to Python written in &lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/C_(programming_language)&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;C&lt;/span&gt;&lt;/a&gt;&lt;span&gt;, &lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/C%2B%2B&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;C++&lt;/span&gt;&lt;/a&gt;&lt;span&gt; or &lt;/span&gt;&lt;a href=&quot;https://www.rust-lang.org&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;Rust&lt;/span&gt;&lt;/a&gt;&lt;span&gt; that will compile to native code – such as &lt;/span&gt;&lt;a href=&quot;https://numpy.org&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;NumPy&lt;/span&gt;&lt;/a&gt;&lt;span&gt;, &lt;/span&gt;&lt;a href=&quot;https://scikit-learn.org/stable/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;scikit-learn&lt;/span&gt;&lt;/a&gt;&lt;span&gt;, and &lt;/span&gt;&lt;a href=&quot;https://www.tensorflow.org&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;TensorFlow&lt;/span&gt;&lt;/a&gt;&lt;span&gt; – can lead to dramatic speedups for a program written in Python.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;It also, however, makes life difficult for sampling-based profilers. Samplers often use Python’s &lt;/span&gt;&lt;a href=&quot;https://docs.python.org/3/library/signal.html&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;code&gt;signal&lt;/code&gt;&lt;/a&gt;&lt;span&gt; module as a way of knowing when to take a periodic snapshot of a program as it is running. However, due to the way the &lt;/span&gt;&lt;code&gt;signal&lt;/code&gt;&lt;span&gt; module works, no signalling events will be delivered while a Python program is spending time in a function that has been compiled to native code via an extension module. The upshot of this is that sample-based profilers are often “flying blind” for Python code that makes extensive use of C extensions, and will sometimes erroneously report that no time at all was spent executing native code, even if the program in fact spent the majority of its time there.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Scalene’s solution to this problem is to monitor delays in signal delivery. It uses this information to deduce the amount of time that the program spent outside CPython’s main interpreter loop (due to the use of native, compiled code from an extension module). Further details on Scalene’s methods, and comparisons with other leading Python profilers, can be found in a recent paper by Emery D. Berger, Sam Stern and Juan Altmayer Pizzorno, &lt;/span&gt;&lt;a href=&quot;https://arxiv.org/pdf/2212.07597.pdf&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;“Triangulating Python Performance Issues with Scalene”&lt;/span&gt;&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Nanjekye also detailed Scalene’s sophisticated approach to measuring performance in child threads. Signal-based profilers often struggle with multi-threaded code, as signals can only be delivered and received from the main thread in Python. Scalene’s solution is to monkey-patch functions that might block the main thread, and add timeouts to these functions. This allows signals to be delivered even in multithreaded code.&lt;/span&gt;&lt;/p&gt;&lt;h2 class=&quot;raw&quot;&gt;&lt;span&gt;Discussion&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;span&gt;Nanjekye asked attendees at the Language Summit if they would be interested in integrating Scalene&#39;s ideas into the standard library&#39;s &lt;code&gt;&lt;a href=&quot;https://docs.python.org/3/library/profile.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;cProfile&lt;/a&gt;&lt;/code&gt; module, which was met with a somewhat muted response.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Pablo Galindo Salgado, a leading contributor to the &lt;/span&gt;&lt;a href=&quot;https://github.com/bloomberg/memray&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;Memray&lt;/span&gt;&lt;/a&gt;&lt;span&gt; profiler, criticised Scalene’s signal-based appr&lt;/span&gt;oach, arguing it relied on inherently brittle monkey-patching of the standard library. It also reported unreliable timings, Salgado said: for example, if code in a C extension checks for signals to support CTRL-C, the resulting delays measured by Scalene will be distorted.&lt;/p&gt;&lt;p&gt;&lt;span&gt;Salgado argued that integration with&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://docs.python.org/3.12/howto/perf_profiling.html#perf-profiling&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;the &lt;/span&gt;&lt;code&gt;perf&lt;/code&gt;&lt;span&gt; profiler&lt;/span&gt;&lt;/a&gt;&lt;span&gt;, which Python is introducing support for in Python 3.12, would be a better option for users. Mark Shannon, however, argued that &lt;/span&gt;&lt;code&gt;perf&lt;/code&gt;&lt;span&gt; distorted the execution time of Python programs; Salgado responded that Scalene did as well, as the use of signals came with its own overhead.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Nanjekye argued that the huge popularity of Scalene in the Python ecosystem was evidence that it had proved its worth. Carol Willing concurred, noting that Scalene was an especially useful tool with code that made heavy use of libraries such as NumPy, Scikit-Learn and PyTorch.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/7340321252014847424'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/7340321252014847424'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2023/05/the-python-language-summit-2023-towards.html' title='The Python Language Summit 2023: Towards Native Profiling for Python'/><author><name>Alex Waygood</name><uri>http://www.blogger.com/profile/18392244184145876843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqWrRywQc7r4CtGECU3Zc_uXAfDKghSO04gIg1NViJH0LSO2CheixJ64sYm4D1Rjh4ZYYUsfJEwPzk8UcvUCGVvdZ3epHA3sYwPST-B6mrh3IvA78v5yPhPhzPzuBsgDU/s113/linkedin+profile+pic.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4ACb3kr0fWAbdjl0tzHpGzioUYGYX9wrXnK915nFqYIKZPU_-DRDuiT1RVqY9FUs4-C4mwMeEnoKWP284KUtqm2Y7O4MJTSrUIHEeptUZl4U_dB4Q6Q3j_7mWveS-ksCQTD662HbZW3tInYRVrKia0qFxl6VC-TDg3pIrv3qcv6totiI/s72-c/image_2023-05-27_222414441.png" height="72" width="72"/><georss:featurename>Salt Lake City, UT, USA</georss:featurename><georss:point>40.7607793 -111.8910474</georss:point><georss:box>-13.137128671079765 177.7964526 90 -41.578547400000005</georss:box></entry><entry><id>tag:blogger.com,1999:blog-8520.post-4786056040780016467</id><published>2023-05-29T12:21:00.002-04:00</published><updated>2023-05-29T18:40:45.905-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="pycon"/><title type='text'>The Python Language Summit 2023: Burnout is Real</title><content type='html'>
&lt;div class=&quot;markdown-body container-fluid comment-inner comment-enabled&quot; data-hard-breaks=&quot;true&quot; id=&quot;doc&quot;&gt;Guido van Rossum, creator of the Python programming language, spoke at the &lt;a href=&quot;https://pyfound.blogspot.com/2023/05/the-python-language-summit-2023_29.html&quot; rel=&quot;nofollow&quot; target=&quot;&quot;&gt;2023&amp;nbsp;Python Language Summit&lt;/a&gt; on the subject of open-source burnout, strategies for tackling it, and how to avoid it.&lt;p&gt;&lt;span&gt;The first known case of burnout in the field of open-source software, van Rossum speculated, may have been Charles Babbage, who gave up the post of Lucasian Professor of Mathematics (the “Chair of Newton”) at Cambridge University in 1839.&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;span&gt;“In 1839 the demands of the Analytical Engine upon my attention had become so incessant and so exhausting, that even the few duties of the Lucasian Chair had a sensible effect in impairing my bodily strength. I therefore sent in my resignation.”&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;-- &lt;i&gt;Charles Babbage, “Passages from the Life of a Philosopher” (Chapter 4)&lt;/i&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;span&gt;Van Rossum described how the Python community had been hit multiple times by core developers, suffering from burnout, suddenly disappearing for extended periods of time. Van Rossum told the story of one core developer, previously one of the most prolific contributors to CPython, who had abruptly ceased contributing around a decade ago. He had hardly been heard from since.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Van Rossum himself, he recounted, had felt so burned out by the acrimonious debate around &lt;/span&gt;&lt;a href=&quot;https://peps.python.org/pep-0572/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;PEP 572&lt;/span&gt;&lt;/a&gt;&lt;span&gt; (proposing the “walrus operator”, &lt;/span&gt;&lt;code style=&quot;background-color: #cccccc;&quot;&gt;:=&lt;/code&gt;&lt;span&gt;), that it &lt;/span&gt;&lt;a href=&quot;https://lwn.net/Articles/759654/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;led to him stepping down&lt;/span&gt;&lt;/a&gt;&lt;span&gt; from his post as Benevolent Dictator For Life (“BDFL”) of Python in 2018. Decisions about the language were ceded to &lt;/span&gt;&lt;a href=&quot;https://peps.python.org/pep-8016/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;a democratically elected Steering Council&lt;/span&gt;&lt;/a&gt;&lt;span&gt;, which has governed Python ever since.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Burnout, van Rossum noted, was often connected to conflict – and it often didn’t matter whether or not you ended the conflict victorious. Merely having the conflict at all could be exhausting.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Van Rossum’s talk itself was fairly short, but was followed by a lengthy discussion among the assembled core developers on the experiences they’d had with burnout, and strategies that could be employed to tackle it.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Several attendees in the room commented that learning to recognise burnout in yourself was an important skill. Some participants in the discussion described times when they had suddenly realised that things that had previously been enjoyable had morphed into a source of stress. One core developer told the story of a conference they had organised, at which they had felt such extreme stress that they were unable to think of any of the things that had gone well. Instead, they found themselves fixated on all of the minor things that had gone wrong.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Learning to recognise burnout in others was perhaps an even harder problem to solve. Van Rossum noted that the developers most susceptible to burnout were generally those who were most active and engaged with the community. But how can you distinguish between somebody devoting their time to CPython because of the intense enjoyment they found in contributing to the project, somebody who might have formed an unhealthy addiction to open source, and somebody who was only continuing to contribute out of a misplaced sense of obligation?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Some developers spoke of strategies they used to decompress. Brett Cannon described how he periodically takes “open source breaks”, in which he forces himself to spend a period of time without looking at his GitHub notifications or thinking about his open-source commitments. Mariatta Wijaya spoke about how she found mentoring other Python programmers to be deeply healing. All agreed that it was crucial to talk to friends and relatives when you were feeling close to burnout.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;It was agreed that the Python community needed to do better in many ways. We needed to become better, as a community, at understanding when other people said that they were unable to complete something they had previously committed to. And perhaps we needed to normalise questions such as, “Hey, you’ve been super productive and responsive for too long. When do you think you’ll burn out?”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Russell Keith-Magee remarked that systems with single points of failure were bound to lead to situations of intense stress. These systems would inevitably, at some point, fail. The transition from a single BDFL (with an indefinite term) to a five-member Steering Council with one-year terms had been a very positive change in that regard, Keith-Magee said. But there were still places in CPython development where there were single points of failure. Examples included various esoteric platforms where support from CPython depended on a single core developer being able to give up their time to review PRs relating to the platform.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Carol Willing agreed with Keith-Magee, pointing out that no matter who you were, you were rarely the only person who could do a certain task. You &lt;/span&gt;&lt;em&gt;&lt;span&gt;might&lt;/span&gt;&lt;/em&gt;&lt;span&gt; be the person who could do it fastest or best – but sometimes, it was important to “see the people, and share the joy”.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Łukasz Langa spoke about his role as part of the current Code of Conduct Working Group, to which any violations of the &lt;/span&gt;&lt;a href=&quot;https://www.python.org/psf/conduct/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;Python Code of Conduct&lt;/span&gt;&lt;/a&gt;&lt;span&gt; can be reported. Langa remarked that being part of the Working Group had brought to the fore parts of the community which he had previously been mostly unaware of. He encouraged everybody in the room to report toxic members of the community who were discouraging or aggressive online.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Speaking personally, for a moment: I tried to take an open-source break earlier this year, when I felt myself close to burning out on some of my open-source commitments. I can’t say it was fully successful – my addiction to GitHub was too great for me to resist glancing at my notifications occasionally. But it was helpful, and re-energising, to spend some time doing a creative activity that bore with it a 0% risk of people shouting at me on the internet about it:&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW9jyCByps_8fSzctINDv6FRBbC8f-H_wz7eVrD_4aEGCy-hm0H1umibAftp2nXc4KYVrbABUvnLDLEQPmOi5necf69ruuyHTjABgJOyBZ64eO3lBsmHJ4S9ogosVzKVzvGloPjQMVXFWjB6fnD3djhfqsuKTBDxbiuRf4bMf-yDjpYHs/s572/image_2023-05-27_220847107.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;572&quot; data-original-width=&quot;271&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW9jyCByps_8fSzctINDv6FRBbC8f-H_wz7eVrD_4aEGCy-hm0H1umibAftp2nXc4KYVrbABUvnLDLEQPmOi5necf69ruuyHTjABgJOyBZ64eO3lBsmHJ4S9ogosVzKVzvGloPjQMVXFWjB6fnD3djhfqsuKTBDxbiuRf4bMf-yDjpYHs/s320/image_2023-05-27_220847107.png&quot; width=&quot;152&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/4786056040780016467'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/4786056040780016467'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2023/05/the-python-language-summit-2023-burnout.html' title='The Python Language Summit 2023: Burnout is Real'/><author><name>Alex Waygood</name><uri>http://www.blogger.com/profile/18392244184145876843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqWrRywQc7r4CtGECU3Zc_uXAfDKghSO04gIg1NViJH0LSO2CheixJ64sYm4D1Rjh4ZYYUsfJEwPzk8UcvUCGVvdZ3epHA3sYwPST-B6mrh3IvA78v5yPhPhzPzuBsgDU/s113/linkedin+profile+pic.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW9jyCByps_8fSzctINDv6FRBbC8f-H_wz7eVrD_4aEGCy-hm0H1umibAftp2nXc4KYVrbABUvnLDLEQPmOi5necf69ruuyHTjABgJOyBZ64eO3lBsmHJ4S9ogosVzKVzvGloPjQMVXFWjB6fnD3djhfqsuKTBDxbiuRf4bMf-yDjpYHs/s72-c/image_2023-05-27_220847107.png" height="72" width="72"/><georss:featurename>Salt Lake City, UT, USA</georss:featurename><georss:point>40.7607793 -111.8910474</georss:point><georss:box>12.450545463821157 -147.0472974 69.071013136178848 -76.7347974</georss:box></entry><entry><id>tag:blogger.com,1999:blog-8520.post-4891011556077925672</id><published>2023-05-29T12:18:00.002-04:00</published><updated>2023-05-30T11:11:40.288-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="pycon"/><title type='text'>The Python Language Summit 2023: Making the Global Interpreter Lock Optional</title><content type='html'>
&lt;div class=&quot;markdown-body container-fluid comment-inner comment-enabled&quot; data-hard-breaks=&quot;true&quot; id=&quot;doc&quot;&gt;The Global Interpreter Lock (“GIL”), is one of the most fundamental parts of how Python works today. It’s also one of the most controversial parts, as it prevents true concurrency between threads – another way of saying that it’s difficult to run two functions simultaneously while writing pure-Python code.&lt;p&gt;&lt;span&gt;If there’s one blog that really “took off” after I wrote last year’s coverage on the Python Language Summit, it was &lt;/span&gt;&lt;a href=&quot;https://pyfound.blogspot.com/2022/05/the-2022-python-language-summit-python_11.html&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;my blog on Sam Gross’s proposal to make Python’s Global Interpreter Lock (the “GIL”) optional&lt;/span&gt;&lt;/a&gt;&lt;span&gt;. One week following the publication of my articles, the blog had been viewed nearly 38,000 times; the blog in “second place” had only been viewed 5,300 times.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Interest in removing the GIL is clear, therefore – and this year, Gross returned to the &lt;a href=&quot;https://pyfound.blogspot.com/2023/05/the-python-language-summit-2023_29.html&quot; rel=&quot;nofollow&quot; target=&quot;&quot;&gt;Python Language Summit&lt;/a&gt; to discuss the development of his plans.&lt;/span&gt;&lt;/p&gt;&lt;h2 class=&quot;raw&quot;&gt;&lt;span&gt;Dare to dream of a GIL-free world&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;span&gt;Gross started off by giving an update on how work on &lt;/span&gt;&lt;code&gt;nogil&lt;/code&gt;&lt;span&gt; – Gross’s fork of CPython with the GIL removed – had progressed over the past year. Gross had been spending the last few months rebasing his fork onto CPython 3.12. As a result, he was now able to give an accurate estimate of how bad the performance costs to single-threaded code would be, if the GIL were removed.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Over the past year, Gross had also written a PEP – &lt;/span&gt;&lt;a href=&quot;https://peps.python.org/pep-0703/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;PEP 703&lt;/span&gt;&lt;/a&gt;&lt;span&gt; – which, following the Language Summit, was &lt;/span&gt;&lt;a href=&quot;https://github.com/python/steering-council/issues/188&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;submitted to the Steering Council for their consideration&lt;/span&gt;&lt;/a&gt;&lt;span&gt; on May 12. If the PEP is accepted by the Steering Council, a version of Python with the GIL disabled could be available as soon as Python 3.13. (To discuss the ideas in the PEP, head to &lt;/span&gt;&lt;a href=&quot;https://discuss.python.org/t/pep-703-making-the-global-interpreter-lock-optional-3-12-updates/26503/1&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;the thread on discuss.python.org&lt;/span&gt;&lt;/a&gt;&lt;span&gt;.)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Gross reported that the latest version of &lt;/span&gt;&lt;code&gt;nogil&lt;/code&gt;&lt;span&gt; was around 6% slower on single-threaded code than the CPython &lt;/span&gt;&lt;code&gt;main&lt;/code&gt;&lt;span&gt; branch, and that he was confident that the performance overhead could be reduced even further, possibly to nearly 0%. Most of the overhead was due to reference counting and changes that had been required to the operation of CPython’s new-in-3.11 &lt;/span&gt;&lt;a href=&quot;https://pyfound.blogspot.com/2022/05/the-2022-python-language-summit_2.html&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;specialising adaptive interpreter&lt;/span&gt;&lt;/a&gt;&lt;span&gt;. With multiple threads, the performance overhead was around 8%.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz0cEgI5ArFR9lfrczf74Z1y3C536LXYM7iW8WJKi3G_A_Usgp-Bhl8tbOqL7lCkZgpa4Nod76W7FRbSAZ6jwekyynJXd7CDYTSnoilbuGTvRpgvjkYpAMuTBCUwQYeFMpOKsRafkrus1HHzPUC6RFtS0Zu0okF4UVZyeJj_NnQD1C4ck/s1025/Sam%20Gross%20picture.png&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;585&quot; data-original-width=&quot;1025&quot; height=&quot;183&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz0cEgI5ArFR9lfrczf74Z1y3C536LXYM7iW8WJKi3G_A_Usgp-Bhl8tbOqL7lCkZgpa4Nod76W7FRbSAZ6jwekyynJXd7CDYTSnoilbuGTvRpgvjkYpAMuTBCUwQYeFMpOKsRafkrus1HHzPUC6RFtS0Zu0okF4UVZyeJj_NnQD1C4ck/s320/Sam%20Gross%20picture.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;A slide from Gross&#39;s talk&lt;br /&gt;(numbers indicate the per-thread overhead)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Having rebased onto Python 3.12, Gross was also able to give an estimate on the extent of the code changes that would be required to CPython, were &lt;/span&gt;&lt;code&gt;nogil&lt;/code&gt;&lt;span&gt; to be accepted. Excluding generated files, Gross reported that around 15,000 lines of code would need to be changed. There would also need to be some alterations to &lt;/span&gt;&lt;a href=&quot;https://github.com/microsoft/mimalloc&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;mimalloc&lt;/span&gt;&lt;/a&gt;&lt;span&gt;, which &lt;/span&gt;&lt;code&gt;nogil&lt;/code&gt;&lt;span&gt; depends on – but Gross was hopeful that these would be accepted to mimalloc itself, reducing the need for CPython to maintain mimalloc patches in its codebase.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Some audience members expressed concern about the prospect of “&lt;/span&gt;&lt;code&gt;#ifdef&lt;/code&gt;&lt;span&gt; hell” across the code base, to account for the two possible CPython build options. However, Gross countered that most of the changes required could be made unconditionally without resorting to &lt;/span&gt;&lt;code&gt;#ifdef&lt;/code&gt;&lt;span&gt;s, since the changes were simply no-ops with the GIL enabled.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;The plan for &lt;/span&gt;&lt;code&gt;nogil&lt;/code&gt;&lt;span&gt; remains that it would be enabled via a compile-time flag, named &lt;/span&gt;&lt;code&gt;--disable-gil&lt;/code&gt;&lt;span&gt;. Third-party C extensions would need to provide separate wheels for GIL-disabled Python.&lt;/span&gt;&lt;/p&gt;&lt;h2 class=&quot;raw&quot;&gt;&lt;span&gt;GIL gotta go&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;span&gt;Last year, it felt as though Gross’s proposal was met with a certain degree of excitement, but also a certain degree of scepticism. It was thrilling to see how far &lt;/span&gt;&lt;code&gt;nogil&lt;/code&gt;&lt;span&gt; had come, but there was a certain amount of frustration in the room at the lack of a concrete plan for where to go next.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;This year, it felt like the proposal was greeted much more warmly. Gross had come to the summit with a far more clearly defined roadmap for how we might get to &lt;/span&gt;&lt;code&gt;nogil&lt;/code&gt;&lt;span&gt;, and had taken the time to put together detailed estimates of the performance impact and the extent of the code changes.&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;span&gt;“Thank you for doing this… now we have something we can actually consider!”&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;--&lt;i&gt; Brandt Bucher, CPython Core Developer&lt;/i&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;span&gt;Attendees at the Language Summit were also impressed at how low the performance overhead of &lt;/span&gt;&lt;code&gt;nogil&lt;/code&gt;&lt;span&gt; was, although Mark Shannon commented that he thought the numbers might be “a slight underestimate”. Gross explained that he had managed to achieve a 2-3% speedup by optimising for the case where only a single thread was active. Even in multithreaded programs, he explained, this provided a performance boost, since even in multithreaded code, it was often the case that only a single thread would be attempting to access an object at any given point in time.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Larry Hastings expressed concern that &lt;/span&gt;&lt;code&gt;nogil&lt;/code&gt;&lt;span&gt; might make debugging code harder; Gross responded that there was some impact on debuggability, but that it wasn’t too bad, in his opinion. Pablo Galindo Salgado, release manager for Python 3.10 and 3.11, expressed concern that &lt;/span&gt;&lt;code&gt;nogil&lt;/code&gt;&lt;span&gt; could also make implementing debuggers trickier – but commented that “it might be worth the price” anyway.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Another point of discussion was the changes Gross had made to &lt;/span&gt;&lt;a href=&quot;https://peps.python.org/pep-0659/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;the specialising adaptive interpreter&lt;/span&gt;&lt;/a&gt;&lt;span&gt; in the &lt;/span&gt;&lt;code&gt;nogil&lt;/code&gt;&lt;span&gt; fork. In order for the specialisations to work with the GIL disabled, Gross had had to guard the adaptive specialisations to the bytecode behind a lock. As well as this, each thread had been limited to a single specialisation of any given bytecode; with the GIL enabled, the adaptive interpreter can respecialise bytecode multiple times. Gross commented that he thought it would probably be possible to allow multiple specialisations of bytecode in multithreaded code, but that this would require further investigation. His current solution was the simplest one he had found, for now.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/4891011556077925672'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/4891011556077925672'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2023/05/the-python-language-summit-2023-making.html' title='The Python Language Summit 2023: Making the Global Interpreter Lock Optional'/><author><name>Alex Waygood</name><uri>http://www.blogger.com/profile/18392244184145876843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqWrRywQc7r4CtGECU3Zc_uXAfDKghSO04gIg1NViJH0LSO2CheixJ64sYm4D1Rjh4ZYYUsfJEwPzk8UcvUCGVvdZ3epHA3sYwPST-B6mrh3IvA78v5yPhPhzPzuBsgDU/s113/linkedin+profile+pic.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz0cEgI5ArFR9lfrczf74Z1y3C536LXYM7iW8WJKi3G_A_Usgp-Bhl8tbOqL7lCkZgpa4Nod76W7FRbSAZ6jwekyynJXd7CDYTSnoilbuGTvRpgvjkYpAMuTBCUwQYeFMpOKsRafkrus1HHzPUC6RFtS0Zu0okF4UVZyeJj_NnQD1C4ck/s72-c/Sam%20Gross%20picture.png" height="72" width="72"/><georss:featurename>Salt Lake City, UT, USA</georss:featurename><georss:point>40.7607793 -111.8910474</georss:point><georss:box>12.450545463821157 -147.0472974 69.071013136178848 -76.7347974</georss:box></entry><entry><id>tag:blogger.com,1999:blog-8520.post-7383278761830184347</id><published>2023-05-29T12:13:00.002-04:00</published><updated>2023-05-29T17:20:59.083-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="pycon"/><title type='text'>The Python Language Summit 2023: Three Talks on the C API</title><content type='html'>The &lt;a href=&quot;https://pyfound.blogspot.com/2023/05/the-python-language-summit-2023_29.html&quot; rel=&quot;nofollow&quot; target=&quot;&quot;&gt;Python Language Summit 2023&lt;/a&gt; began with an extended discussion of Python’s &lt;a href=&quot;https://docs.python.org/3/c-api/index.html&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;C API&lt;/span&gt;&lt;/a&gt;&lt;span&gt; – the interface through which it is possible to communicate between code written in Python and code written in low-level languages, like C. The fullness of this interface is a significant factor behind the vibrancy of Python’s ecosystem, enabling libraries such as &lt;/span&gt;&lt;a href=&quot;https://github.com/numpy/numpy&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;NumPy&lt;/span&gt;&lt;/a&gt;&lt;span&gt; and &lt;/span&gt;&lt;a href=&quot;https://github.com/pandas-dev/pandas&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;pandas&lt;/span&gt;&lt;/a&gt;&lt;span&gt; that are foundational to Python’s widespread use in data science.&lt;/span&gt;&lt;p&gt;&lt;span&gt;Three speakers had booked slots to discuss the C API this year: Mark Shannon, Guido van Rossum, and Antonio Cuni. The conversation evolved naturally from one talk to the next, so in this blog post, I’ll be discussing the three talks together.&lt;/span&gt;&lt;/p&gt;&lt;h2 class=&quot;raw&quot;&gt;&lt;span&gt;All at sea on the C API&lt;/span&gt;&lt;/h2&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH_0AUlHvdFlA1D5qHlngSRaT8smzG9Su1UAdEMgz1reCrG_-ESm8WYB-zVK8j7LHT-qqxlWavJRBY7YJilLayk-EFAVAZDUp55w5q_IZ0wndNeuB_3Ibxar87rKePkdA9q8sCaAR0X3SOf7qa8WuSJOSE8yN6X2aUyqCIMmNjgN6uPqg/s1024/DALL%C2%B7E%202023-05-18%2016.24.34%20-%20A%20Van%20Gogh%20painting%20of%20a%20man%20doing%20computer%20programming%20on%20a%20dinghy%20in%20the%20middle%20of%20a%20storm%20at%20sea,%20sunlight%20dramatically%20piercing%20through%20the%20clouds.png&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH_0AUlHvdFlA1D5qHlngSRaT8smzG9Su1UAdEMgz1reCrG_-ESm8WYB-zVK8j7LHT-qqxlWavJRBY7YJilLayk-EFAVAZDUp55w5q_IZ0wndNeuB_3Ibxar87rKePkdA9q8sCaAR0X3SOf7qa8WuSJOSE8yN6X2aUyqCIMmNjgN6uPqg/s320/DALL%C2%B7E%202023-05-18%2016.24.34%20-%20A%20Van%20Gogh%20painting%20of%20a%20man%20doing%20computer%20programming%20on%20a%20dinghy%20in%20the%20middle%20of%20a%20storm%20at%20sea,%20sunlight%20dramatically%20piercing%20through%20the%20clouds.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;The C API at sea (illustration by DALL-E)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;span&gt;“I still don’t know what the C-API is, and I’ve been trying for years!”&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;-- &lt;i&gt;Mark Shannon, CPython Core Developer&lt;/i&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;span&gt;Mark Shannon spoke on the problems (as he saw them) with Python’s C API. Shannon lamented that with every minor Python version, a slew of third-party C extensions seemed to break. He argued that the root cause was that the needs of C extensions were not adequately met by the formal C API, which had evolved in a haphazard and often-unplanned way over the past three decades of Python’s existence.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;As a result of the C API’s flaws, Shannon said, extension authors were forced to reach beyond the formal API and into implementation details that had emerged as a kind of “implicit API”. The implementation details that constituted the new “implicit API” had become so widely depended upon that it was now impossible for CPython to change some parts of its code without breaking large parts of the Python ecosystem.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Shannon believes that the new “implicit API” should be formalised in Python 3.13. This, he argues, would put an end to the cycle of CPython releases inevitably leading to widespread breakages in C extensions.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Sam Gross, who (among &lt;/span&gt;&lt;a href=&quot;https://peps.python.org/pep-0703/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;other things&lt;/span&gt;&lt;/a&gt;&lt;span&gt;) has contributed to &lt;/span&gt;&lt;a href=&quot;https://github.com/pytorch/pytorch&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;pytorch&lt;/span&gt;&lt;/a&gt;&lt;span&gt;, agreed with Shannon that the C API was lacking in many areas. Gross argued that there was a great deal of important functionality that wasn’t exposed to extension authors. “Projects just end up copying-and-pasting CPython C code,” Gross said, meaning the extensions broke with each new release of CPython.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Pablo Galindo Salgado, release manager for Python 3.10 and 3.11, said that the release process for those versions had felt like a “game of whackamole” when it came to third-party C extensions breaking. Salgado argued that CPython needed to reach out to the authors of extensions such as pytorch to gather detailed feedback on what core functionality was missing from the API. Several attendees expressed frustration with a perceived tendency among C extension authors to immediately reach into CPython implementation details when something they needed was missing from the API. The result of this was that CPython core developers were often in the dark about which things the C API &lt;/span&gt;&lt;em&gt;&lt;span&gt;should&lt;/span&gt;&lt;/em&gt;&lt;span&gt; be providing, but currently wasn’t. “We might not be able to give you a solution,” Salgado said, “But please come to us and tell us what your problem is, if you have a problem!”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Gross proposed that CPython should run third-party test suites with new versions of CPython as they were being developed, so that the Core Dev team would be able to spot third-party breakages early and gauge the impact of their changes. Pytorch operated a similar programme, Gross said, and it had been successful in helping to limit breakages of third-party pytorch models as the core pytorch team evolved their API.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Brandt Bucher noted, however, that the problem often wasn’t so much that CPython was unaware when they were breaking third-party code – the benchmarks run in &lt;/span&gt;&lt;a href=&quot;https://github.com/python/pyperformance&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;the pyperformance suite&lt;/span&gt;&lt;/a&gt;&lt;span&gt; often served as an early warning signal for breakages in C extensions. The problem was often that CPython would offer to help affected projects, only to have their help rejected. Several core developers had previously sent pull requests to help third-party projects become compatible with an upcoming version of CPython, only for their pull requests to remain unmerged for several months due to burned-out maintainers of these projects.&lt;/span&gt;&lt;/p&gt;&lt;h2 class=&quot;raw&quot;&gt;&lt;span&gt;Let’s get specific&lt;/span&gt;&lt;/h2&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiO-1oRlIU4n4U5yQPoikvJjW6AHx9ke2CQxHtAPTlekE-bdXMCstMR2jRCaU74nO9ndcVJunKVHdC5NtLiTEFO0cjWDPpZWBe_rfMMtVEGNL5OWUImK-QZMZuW-OxBAi274wv_CbCZU6peUlUBVKErDJo-z5yBd0nS9tVcKFnpkNxJRwQ/s959/image_2023-05-27_221430833.png&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;719&quot; data-original-width=&quot;959&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiO-1oRlIU4n4U5yQPoikvJjW6AHx9ke2CQxHtAPTlekE-bdXMCstMR2jRCaU74nO9ndcVJunKVHdC5NtLiTEFO0cjWDPpZWBe_rfMMtVEGNL5OWUImK-QZMZuW-OxBAi274wv_CbCZU6peUlUBVKErDJo-z5yBd0nS9tVcKFnpkNxJRwQ/s320/image_2023-05-27_221430833.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Guido van Rossum speaks to the Language Summit on the C API&lt;br /&gt;(photo by Hugo van Kemenade)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span&gt;Shannon was clear about what he thought the problem with the C API was. The problem was that the C API was insufficient for the authors of C extensions, leading these authors to reach into CPython implementation details, leading to an unending cycle of projects breaking with each new release of CPython. Others, however, argued that this wasn’t so much a specific problem but a genre of problems. Each specific project might have a different notion about which things were imperfect with the C API, and which things were missing from the C API. Each imperfection or absence could be considered a concrete problem in its own way. “Things break for everybody, but things break in different ways for different people,” Carol Willing argued. “We need more granularity in our understanding of that.”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;As Mark Shannon’s slot drew to an end, Guido van Rossum opted to continue the discussion that Shannon had started, but sought to draw attention to a more precise enumeration of the difficulties C API users were facing.&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;span&gt;“There’s lots of ideas here, but I don’t know what the problem is!”&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;-- &lt;i&gt;Carol Willing, CPython Core Developer&lt;/i&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;span&gt;Simon Cross, a contributor to &lt;/span&gt;&lt;a href=&quot;https://github.com/hpyproject/hpy&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;the HPy project&lt;/span&gt;&lt;/a&gt;&lt;span&gt;, reported that the HPy project had, in the early stages of the project, put together a long list of the problems, as they saw them, with the CPython C API. Cross offered to share the list with the Core Dev team. Thomas Wouters, a Google employee, also offered to provide a list of difficulties Google had experienced when upgrading to recent Python releases, something the company keeps detailed records of. There was agreement that putting together a comprehensive list of problems with the existing API was an important first step, before CPython could consider drawing up plans to fix the problem.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;The C API discussions ended with an agreement that further discussion was required. Interested parties can follow the ongoing conversation at &lt;a href=&quot;https://github.com/capi-workgroup/problems/issues&quot;&gt;https://github.com/capi-workgroup/problems/issues&lt;/a&gt;. The plan is to work towards an informational PEP, with input from an array of stakeholders, outlining a consensus around the problems and pitfalls in the current C API. Once the problems with the status quo have been enumerated in detail, the community might be in a position to consider possible solutions.&lt;/p&gt;&lt;h2 class=&quot;raw&quot;&gt;&lt;span&gt;HPy: A possible solution?&lt;/span&gt;&lt;/h2&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPyFD0leE8UsskX9WuC7J1LZA2470XLK2seL82YQrGQJnqix-bdWFgei-_q02a2k-NCoccvTWV9E7oWg8LEEJvfiNIiZ71P3YorGvuefXGY4YsvEvMybNEA0RyoeyUYWF_NfIon8DQ3J_A_UM5epaSEaFg6BQoeNiR9XFMp-J_EK5Vkzk/s1216/Cuni%20slide%20screenshot.png&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;690&quot; data-original-width=&quot;1216&quot; height=&quot;182&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPyFD0leE8UsskX9WuC7J1LZA2470XLK2seL82YQrGQJnqix-bdWFgei-_q02a2k-NCoccvTWV9E7oWg8LEEJvfiNIiZ71P3YorGvuefXGY4YsvEvMybNEA0RyoeyUYWF_NfIon8DQ3J_A_UM5epaSEaFg6BQoeNiR9XFMp-J_EK5Vkzk/s320/Cuni%20slide%20screenshot.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;A slide from Antonio Cuni&#39;s talk on HPy&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;span&gt;While the C API discussions ended with a detailed discussion of the problems in the current C API, the first talk of the day was in fact by Antonio Cuni, a core developer with &lt;/span&gt;&lt;a href=&quot;https://github.com/hpyproject/hpy&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;the HPy project&lt;/span&gt;&lt;/a&gt;&lt;span&gt;. HPy is an alternative C API for Python – an API that seeks to avoid many of the pitfalls of the current API. The contention of the HPy developers is that the current C API is bad for CPython, bad for alternative implementations of Python such as &lt;/span&gt;&lt;a href=&quot;https://www.pypy.org&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;PyPy&lt;/span&gt;&lt;/a&gt;&lt;span&gt; or &lt;/span&gt;&lt;a href=&quot;https://github.com/oracle/graalpython&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;GraalPython&lt;/span&gt;&lt;/a&gt;&lt;span&gt;, and, ultimately, bad for end users.&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;span&gt;HPy is a specification of a new API and ABI for extending Python that is Python implementation agnostic and designed to hide and abstract internal details&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;--&amp;nbsp;&lt;a href=&quot;https://github.com/hpyproject/hpy&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;&lt;i&gt;The HPy GitHub README&lt;/i&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;span&gt;Cuni began by describing the key goals of the HPy project:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;span&gt;An API that doesn’t leak CPython-specific implementation details&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;A 0% (or close to 0%) performance overhead when compared with CPython’s current C API&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;A “Universal ABI” that allows compiled extension modules to use the same interface to communicate with PyPy (for example) as they would do to communicate with CPython&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;An API that is garbage-collection friendly.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span&gt;Cuni argued that if the Python ecosystem as a whole moved to using HPy, instead of the “official” C API, there would be dramatically fewer breakages of C extensions with each new Python release. Cuni’s proposal was that CPython should “officially bless” HPy as the recommended C API for Python.&lt;/span&gt;&lt;/p&gt;&lt;h2 class=&quot;raw&quot;&gt;&lt;span&gt;HPy Hpy Hooray?&lt;/span&gt;&lt;/h2&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5SAdpZyRNSY-AqgNxZ6KGXs030pc2EiBkPt7c34tZPisLgt72Ps36i6GfdL9kql4bou9lEFpfqBBRAEMc8CIACo78Mr1wlHwVinPsuU3SNxXlQcsI72m4Yxwk_YrCbU1aEVATPvPAH_ZM4-_ylFfsuvOLqm4bKL0V_yAGJTNlB9C2MJE/s959/image_2023-05-27_221734482.png&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;719&quot; data-original-width=&quot;959&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5SAdpZyRNSY-AqgNxZ6KGXs030pc2EiBkPt7c34tZPisLgt72Ps36i6GfdL9kql4bou9lEFpfqBBRAEMc8CIACo78Mr1wlHwVinPsuU3SNxXlQcsI72m4Yxwk_YrCbU1aEVATPvPAH_ZM4-_ylFfsuvOLqm4bKL0V_yAGJTNlB9C2MJE/s320/image_2023-05-27_221734482.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Simon Cross, HPy Core Developer&lt;br /&gt;(photo by Hugo van Kemenade)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;span&gt;Cuni’s talk was exuberant, but it was at times somewhat unclear what exactly he was asking for from the room. “The investment from CPython,” Cuni argued “would be a political investment rather than a technical one”. Thomas Wouters, however, argued that the CPython team didn’t have the “moral authority” to coerce extension authors into using HPy. Hynek Schlawack agreed, arguing that it was perhaps unrealistic to migrate the entire Python ecosystem towards HPy.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Many were uncertain about what it would even mean to “officially bless” HPy – would CPython host HPy’s documentation on &lt;/span&gt;&lt;a href=&quot;http://docs.python.org&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;docs.python.org&lt;/span&gt;&lt;/a&gt;&lt;span&gt;? Or would CPython simply add a note to the documentation of the C API that the “official” C API was no longer the &lt;/span&gt;&lt;em&gt;&lt;span&gt;recommended&lt;/span&gt;&lt;/em&gt;&lt;span&gt; way to write a C extension? Guido van Rossum emphasised that a top-down approach from the Core Dev team to extension authors wouldn’t work: nobody wanted a repeat of the decade-long transition from Python 2 to Python 3. Carol Willing agreed that pushing C extension authors to use HPy could be counterproductive, arguing that it was important to remember the impact of our decisions on end users of Python.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Other core developers were sceptical about the fundamentals of HPy itself. HPy’s origin story lies in &lt;a href=&quot;https://www.pypy.org/posts/2018/09/inside-cpyext-why-emulating-cpython-c-8083064623681286567.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;difficulties PyPy encountered when it trying to use CPython’s existing C API&lt;/a&gt;. These difficulties led to attempts to create an API that could be easily used on either Python implementation. Larry Hastings argued that blessing an API that was friendlier to PyPy had clear benefits to PyPy (and other implementations), but that it was less clear where CPython stood to gain from this change.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Cuni’s response was that if the ecosystem migrated to an API that exposed fewer implementation details directly, CPython would be able to refactor its internal implementation far more seamlessly, as CPython would no longer have to worry about breaking a multitude of third-party C extensions with every internal reorganisation of code. Cuni mentioned &lt;a href=&quot;https://pyfound.blogspot.com/2022/05/the-2022-python-language-summit-python.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;efforts to run CPython using WebAssembly&lt;/a&gt; as a specific area where CPython could stand to gain, as the HPy API could interact far more easily with the Javascript garbage collector. And Cuni also noted that HPy made it easy for extension authors to test whether they were sticking to the API or not, something which is famously hard to know with the current C API. “We don’t know all the experimentation that this might enable,” Cuni exclaimed, however, “Because we haven’t implemented this change yet!”&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0jGMJJRJ-p-vUDoVQIKuEoMM61NmDLbLXDQALevgnSOaiGfI728qgxcuHau8OxqciLoVxuMJslnd7vuizRHWau4prrClJn3XyKkgPaftHrSFdK-FE2QOgiE8wshlhIoxp3l4FuqbP-tp0t3vcbWUD4gwVBnlEOmiGEkCgQ8XAslBHcdg/s1231/image_2023-05-18_145653379.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;702&quot; data-original-width=&quot;1231&quot; height=&quot;182&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0jGMJJRJ-p-vUDoVQIKuEoMM61NmDLbLXDQALevgnSOaiGfI728qgxcuHau8OxqciLoVxuMJslnd7vuizRHWau4prrClJn3XyKkgPaftHrSFdK-FE2QOgiE8wshlhIoxp3l4FuqbP-tp0t3vcbWUD4gwVBnlEOmiGEkCgQ8XAslBHcdg/s320/image_2023-05-18_145653379.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;span&gt;Mark Shannon was another core developer expressing scepticism about HPy. Shannon argued that while HPy had strengths over the “official” C API, it was far from perfect. “We should try to fix CPython’s API” before CPython recommended users switch to HPy, Shannon argued. Simon Cross, also of the HPy project, said that the team welcomed feedback about where they could improve. It was still easy for HPy to make changes, Cross argued, given they had not yet achieved widespread adoption.&lt;/span&gt;&lt;/p&gt;&lt;h2 class=&quot;raw&quot;&gt;&lt;span&gt;Further Reading on HPy&lt;/span&gt;&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/hpyproject/hpy/wiki/c-api-next-level-manifesto&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;HPy’s overview of changes needed to the C API&lt;/span&gt;&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/hpyproject/hpy/wiki/c-api-next-level-changes&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;HPy’s explanation of why the changes are needed&lt;/span&gt;&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/7383278761830184347'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/8520/posts/default/7383278761830184347'/><link rel='alternate' type='text/html' href='https://pyfound.blogspot.com/2023/05/the-python-language-summit-2023-three.html' title='The Python Language Summit 2023: Three Talks on the C API'/><author><name>Alex Waygood</name><uri>http://www.blogger.com/profile/18392244184145876843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqWrRywQc7r4CtGECU3Zc_uXAfDKghSO04gIg1NViJH0LSO2CheixJ64sYm4D1Rjh4ZYYUsfJEwPzk8UcvUCGVvdZ3epHA3sYwPST-B6mrh3IvA78v5yPhPhzPzuBsgDU/s113/linkedin+profile+pic.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH_0AUlHvdFlA1D5qHlngSRaT8smzG9Su1UAdEMgz1reCrG_-ESm8WYB-zVK8j7LHT-qqxlWavJRBY7YJilLayk-EFAVAZDUp55w5q_IZ0wndNeuB_3Ibxar87rKePkdA9q8sCaAR0X3SOf7qa8WuSJOSE8yN6X2aUyqCIMmNjgN6uPqg/s72-c/DALL%C2%B7E%202023-05-18%2016.24.34%20-%20A%20Van%20Gogh%20painting%20of%20a%20man%20doing%20computer%20programming%20on%20a%20dinghy%20in%20the%20middle%20of%20a%20storm%20at%20sea,%20sunlight%20dramatically%20piercing%20through%20the%20clouds.png" height="72" width="72"/><georss:featurename>Salt Lake City, UT, USA</georss:featurename><georss:point>40.7607793 -111.8910474</georss:point><georss:box>12.450545463821157 -147.0472974 69.071013136178848 -76.7347974</georss:box></entry></feed>