<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.3.4">Jekyll</generator><link href="https://www.pyopensci.org/feed.xml" rel="self" type="application/atom+xml" /><link href="https://www.pyopensci.org/" rel="alternate" type="text/html" /><updated>2026-05-29T22:34:35+00:00</updated><id>https://www.pyopensci.org/feed.xml</id><title type="html">pyOpenSci</title><subtitle>pyOpenSci&apos;s Website</subtitle><author><name>pyOpenSci</name></author><entry><title type="html">Tools Track, GenAI Bof and Roundtables: This year’s PyCon US Maintainer Summit was something special</title><link href="https://www.pyopensci.org/blog/pycon-us-2026-maintainers-summit.html" rel="alternate" type="text/html" title="Tools Track, GenAI Bof and Roundtables: This year’s PyCon US Maintainer Summit was something special" /><published>2026-05-29T00:00:00+00:00</published><updated>2026-05-29T00:00:00+00:00</updated><id>https://www.pyopensci.org/blog/pycon-us-2026-maintainers-summit</id><content type="html" xml:base="https://www.pyopensci.org/blog/pycon-us-2026-maintainers-summit.html"><![CDATA[<p><em>This post is Part 2 of a 4-part series on pyOpenSci at PyCon US 2026. <a href="/blog/pycon-us-2026-community-connection.html">Part 1</a> covers community, connection, and what comes next.</em></p>

<p>I first attended the <a href="https://us.pycon.org/2026/events/maintainers-summit/">PyCon US Maintainer Summit</a> five years ago as a speaker. I’m still here — now as a co-organizer. This year felt like a milestone for many different reasons.</p>

<figure>
  <picture>
    <source srcset="/images/blog/2026/pycon-us-2026-maintainers-summit-organizers-slide.webp" type="image/webp" />
    <img src="/images/blog/2026/pycon-us-2026-maintainers-summit-organizers-slide.png" alt="Maintainer Summit organizers slide with headshots of Inessa Pawson, Leah Wasser, and Mariatta Wijaya beneath the Maintainers Summit title and PyCon US Long Beach branding." />
  </picture>
  <figcaption>Maintainer Summit co-organizers <a href="https://github.com/InessaPawson">Inessa Pawson</a>, Leah Wasser, and <a href="https://github.com/mariatta">Mariatta Wijaya</a>.</figcaption>
</figure>

<h2 id="building-the-summit-a-year-round-labor-of-love">Building the summit: a year-round labor of love</h2>

<p>What most people don’t realize is that organizing the PyCon US Maintainer Summit is a year-round effort. We start thinking about the next one almost as soon as the last one wraps — collecting participant feedback, reflecting on what worked, and thinking about what to change.</p>

<p>This year we focused on something we’ve been working toward for a while: making the Maintainer Summit a more formal part of the PyCon US schedule. The Maintainer Summit has been running since 2019; this year we took a big step forward. Attendees could officially register, we could communicate directly with them through the PyCon US registration website, and we were formally listed on the PyCon US schedule. These might seem like small steps, but it takes a lot to make these types of changes in a large event like PyCon US that is organized by both PyCon US staff but also depends on a large team of volunteers.</p>

<p>This year’s successes wouldn’t have happened without the incredible support of PyCon US co-chairs <a href="https://github.com/elainewong">Elaine Wong</a> and <a href="https://github.com/jonafato">Jon Bonafato</a>, and PSF infrastructure lead <a href="https://github.com/jacobcoffee">Jacob Coffee</a>.</p>

<h2 id="new-structure-and-event-features-for-the-day">New structure and event features for the day</h2>

<p>We also rethought the structure of the Maintainer Summit this year. We added a Tools Track, inspired by the Tools Track at SciPy. We also added a GenAI Birds of a Feather session, and roundtables focused on lively discussions around packaging, security, and AI tools in open source.</p>

<figure>
  <picture>
    <source srcset="/images/blog/2026/pycon-us-2026-maintainers-summit-cary-hatch-tools-track.webp" type="image/webp" />
    <img src="/images/blog/2026/pycon-us-2026-maintainers-summit-cary-hatch-tools-track.png" alt="Cary Hawkins presents on Hatch in the Tools Track at the PyCon US Maintainer Summit in Long Beach, standing at a podium beside a slide titled From Sidelines to Maintainer: How one conversation sparked new development in Hatch." />
  </picture>
  <figcaption><a href="https://github.com/cjames23">Cary Hawkins</a> presents on <a href="https://hatch.pypa.io/">Hatch</a> in the Maintainer Summit during the newly added Tools Track that featured both Hatch and UV.</figcaption>
</figure>

<p>We also helped launch an unofficial Discord with an automated bot — built with help from some wonderful folks in the Python community — that provided real-time session updates and gave attendees a way to connect with each other throughout the day. A first for the summit. This was a great way to help attendees connect with each other and follow the conference schedule without having to keep checking the schedule website.</p>

<p>None of this happens without an incredible team. <a href="https://github.com/InessaPawson">Inessa Pawson</a> and <a href="https://github.com/mariatta">Mariatta Wijaya</a> bring deep experience organizing events like this, and I’ve learned so much working alongside them. From the call for proposals, to reading submissions, to managing last-minute schedule changes — there’s an enormous amount of work that goes into making a day like this feel seamless.</p>

<figure>
  <picture>
    <source srcset="/images/blog/2026/pycon-us-2026-maintainers-summit-organizers.webp" type="image/webp" />
    <img src="/images/blog/2026/pycon-us-2026-maintainers-summit-organizers.png" alt="Maintainer Summit co-organizers Leah Wasser, Inessa Pawson, and Mariatta Wijaya smile together for a selfie on an outdoor patio at PyCon US in Long Beach, wearing conference lanyards." />
  </picture>
  <figcaption>Maintainer Summit co-organizers Leah Wasser, Inessa Pawson, and Mariatta Wijaya at PyCon US in Long Beach.</figcaption>
</figure>

<h2 id="a-day-full-of-energy">A day full of energy</h2>

<p>This year our registrations peaked at 150+ people for a full day of conversation around packaging, security, and AI. The event ran from 10am to 6pm, and while attendance dipped after lunch (this always happens at these types of events), energy in the room kept building. People sticking around until 6pm when they closed down the room was a great sign that the community is growing and that people are interested in the topics we were discussing.</p>

<figure>
  <picture>
    <source srcset="/images/blog/2026/pycon-us-2026-maintainers-summit-room.webp" type="image/webp" />
    <img src="/images/blog/2026/pycon-us-2026-maintainers-summit-room.png" alt="A wide view of the PyCon US Maintainer Summit in Long Beach, with dozens of maintainers seated at round tables, many with open laptops, listening to a session." />
  </picture>
</figure>

<p>It was especially meaningful to have pyOpenSci community members represented. <a href="https://github.com/flpm">Felipe Moreno</a> spoke about the translations infrastructure he built for our <a href="https://www.pyopensci.org/python-package-guide/">Python packaging guide</a> — work that started at our <a href="/blog/pyopensci-pyconus-2024-sprints.html">2024 sprint</a> and has grown into a multilingual contribution community. <a href="/blog/pycon-us-2026-sprints.html">Part 3 of this series</a> tells the full 2026 sprint story, including Portuguese translation work that built on Felipe’s infrastructure. <a href="https://github.com/ab93">Avik Basu</a> shared work on a package he’s been developing. Having pyOpenSci members on stage alongside maintainers of core Python tools like <a href="https://docs.astral.sh/uv/">uv</a> (<a href="https://github.com/zanieb">Zanie Blue</a>) and <a href="https://hatch.pypa.io/">Hatch</a> (<a href="https://github.com/cjames23">Cary Hawkins</a>), and community leaders like <a href="https://github.com/willingc">Carol Willing</a> and <a href="https://github.com/miketheman">Mike Fiedler</a> from the PSF covering security and AI, made for a powerful and well-rounded day.</p>

<figure>
  <picture>
    <source srcset="/images/blog/2026/pycon-us-2026-maintainers-summit-felipe-talk.webp" type="image/webp" />
    <img src="/images/blog/2026/pycon-us-2026-maintainers-summit-felipe-talk.png" alt="Felipe Moreno presents How Translations Work for pyOpenSci at the PyCon US Maintainer Summit in Long Beach, with a slide showing the pyOpenSci logo projected on screen." />
  </picture>
  <figcaption><a href="https://github.com/flpm">Felipe Moreno</a> presents on translation infrastructure for the pyOpenSci Python packaging guide at the Maintainer Summit.</figcaption>
</figure>

<h2 id="roundtables-where-the-magic-happens">Roundtables: where the magic happens</h2>

<p>The roundtables are always the best part of this event. I will never forget my first roundtable discussion at this event four years ago. I sat with Travis Oliphant (creator of NumPy, SciPy, Numba) and Chase Million (<a href="https://millionconcepts.com/about.html">Million Concepts</a> CEO) and we talked about business development in open source. Chase, to this day, is not only a long-standing colleague but also a good friend. These types of events allow attendees to build connections that they never forget.</p>

<p>This year, roundtable topics included packaging led by <a href="https://github.com/zanieb">Zanie Blue</a> from uv and <a href="https://github.com/cjames23">Cary Hawkins</a> from Hatch, security led by <a href="https://github.com/miketheman">Mike Fiedler</a> from the Python Software Foundation, and AI tools in open source led by the incredible <a href="https://github.com/willingc">Carol Willing</a>.</p>

<p>What makes roundtables so powerful is that they’re real conversations with experts and peers. At the end of a long day, when energy could easily be fading, the roundtables sparked connection and lifted the room.</p>

<figure>
  <picture>
    <source srcset="/images/blog/2026/pycon-us-2026-maintainers-summit-roundtables.webp" type="image/webp" />
    <img src="/images/blog/2026/pycon-us-2026-maintainers-summit-roundtables.png" alt="Two maintainers sit side by side at a round table during the PyCon US Maintainer Summit, focused on a session with laptops and conference lanyards on the table." />
  </picture>
</figure>

<h2 id="the-most-electric-moment">The most electric moment</h2>

<p>Our Generative AI Birds of a Feather session, co-hosted with <a href="https://github.com/jackiekazil">Jackie Kazil</a>, was an energizing addition to this year’s summit. Jackie reached out to us about hosting this part of the day. Maintainers everywhere are feeling overwhelmed and drained by the pace of AI change. Now more than ever, protecting our mental health and making space to connect, problem-solve together, and support each other matters.</p>

<figure>
  <picture>
    <source srcset="/images/blog/2026/pycon-us-2026-maintainers-summit-genai-bof.webp" type="image/webp" />
    <img src="/images/blog/2026/pycon-us-2026-maintainers-summit-genai-bof.png" alt="Jackie Kazil co-hosts the Generative AI Birds of a Feather session at the PyCon US Maintainer Summit, with a live Mentimeter poll on screen asking maintainers how useful they find GenAI in their workflows." />
  </picture>
</figure>

<p>But there’s also genuine hope. The majority of people in the room are already using GenAI tools thoughtfully, and that energy of working through hard things <em>together</em> was everywhere — echoed beautifully in Amanda Casari’s keynote on hope in the age of AI.</p>

<p>I have a lot more to say about AI tools and generative AI in open source in <a href="/blog/pycon-us-2026-generative-ai-open-source.html">Part 4 of this series</a>.</p>

<h2 id="wrap-up">Wrap up</h2>

<figure>
  <picture>
    <source srcset="/images/blog/2026/pycon-us-2026-maintainers-summit-discussion.webp" type="image/webp" />
    <img src="/images/blog/2026/pycon-us-2026-maintainers-summit-discussion.png" alt="Two attendees have a focused one-on-one discussion at a table during the PyCon US Maintainer Summit, leaning in as they talk through a shared challenge." />
  </picture>
</figure>

<p>This year’s Maintainer Summit felt like a turning point — 150+ maintainers in one room, a more formal home within PyCon US, and new formats that gave people space to connect, learn, and work through hard problems together. That’s exactly what this community needs.</p>

<p>pyOpenSci is proud to be an organizing partner for the PyCon US Maintainer Summit. Maintainer work can be isolating; days like this remind us we’re not doing it alone. If you couldn’t join us in Long Beach, we hope to see you next year.</p>

<p>See you in there.</p>

<hr />

<p><em>This is Part 2 of a 4-part series on pyOpenSci at PyCon US 2026. <a href="/blog/pycon-us-2026-community-connection.html">Part 1</a>: community and connection · <a href="/blog/pycon-us-2026-sprints.html">Part 3: pyOpenSci sprints</a> · <a href="/blog/pycon-us-2026-generative-ai-open-source.html">Part 4: generative AI and open source</a>.</em></p>]]></content><author><name>Leah Wasser</name></author><category term="blog-post" /><category term="community" /><summary type="html"><![CDATA[As a co-organizer of the PyCon US Maintainer Summit, Leah Wasser reflects on a milestone year—150+ maintainers, formal PyCon registration, new community tools, and roundtables on packaging, security, and generative AI.]]></summary></entry><entry><title type="html">PyCon US 2026: Community, connection, and what comes next</title><link href="https://www.pyopensci.org/blog/pycon-us-2026-community-connection.html" rel="alternate" type="text/html" title="PyCon US 2026: Community, connection, and what comes next" /><published>2026-05-21T00:00:00+00:00</published><updated>2026-05-21T00:00:00+00:00</updated><id>https://www.pyopensci.org/blog/pycon-us-2026-community-connection</id><content type="html" xml:base="https://www.pyopensci.org/blog/pycon-us-2026-community-connection.html"><![CDATA[<p>Times are hard right now. Communities like pyOpenSci matter more than ever. We saw it at <a href="https://us.pycon.org/2026/">PyCon US</a> this year — the political strain, the GenAI hype cycle and anxiety, the rapid changes reshaping open source. People are tired. People are frustrated. But here’s what else we saw: people still showing up. Still connecting. Still supporting each other.</p>

<p>When things get hard, when the ground shifts beneath us, we need each other more than ever. We need spaces to connect, to learn together, to solve challenging problems as a community. PyCon reminded me why I love this work so much.</p>

<p>I’ll never forget my very first PyCon in Salt Lake City. I was intimidated. It’s a really big conference, and I only knew a few people. That first sprint? We had one person show up who wasn’t already part of our community. He sat down and spent the entire day working on our website, helping us improve our infrastructure. He gave his time to help a nonprofit organization like pyOpenSci grow.</p>

<p><a href="/blog/pycon-2023-packaging-presentation-sprints-leah-wasser.html">Read more about that first PyCon experience in Salt Lake City</a>.</p>

<figure>
  <picture>
    <source srcset="/images/blog/2026/pycon-us-sprint-collaboration.webp" type="image/webp" />
    <img src="/images/blog/2026/pycon-us-sprint-collaboration.png" alt="Two people collaborating on laptops at a round table during a PyCon US coding sprint. One person wears a PyCon US 2024 lanyard. The laptop on the right is covered in stickers for NumPy, NumFocus, Hubble, and other scientific open source projects." />
  </picture>
  <figcaption>Community members working together during a pyOpenSci sprint at PyCon US.</figcaption>
</figure>

<p>Fast forward three years to Long Beach, California. We filled rooms with our open spaces. We had tables of people sprinting, working on pyOpenSci projects, learning together. People who attended multiple sprints with us — people I remembered struggling to submit their first pull request, now confident in their GitHub skills. This is what community support looks like. This is what pyOpenSci’s mission is all about: helping people grow. <a href="/blog/pycon-us-2026-maintainers-summit.html">Read about the Maintainer Summit</a> and the <a href="/blog/pycon-us-2026-sprints.html">full sprint story</a> from PyCon US 2026.</p>

<figure>
  <picture>
    <source srcset="/images/blog/2026/pycon-us-2026-sprint-attendees.webp" type="image/webp" />
    <img src="/images/blog/2026/pycon-us-2026-sprint-attendees.png" alt="Two smiling PyCon US 2026 attendees sitting at a round table with laptops during a conference sprint. Both wear purple PyCon US 2026 lanyards from Long Beach." />
  </picture>
  <figcaption>Building connections and working together during the PyCon US 2026 sprints in Long Beach.</figcaption>
</figure>

<p>PyCon US has become my favorite conference. Not because of the topics covered or how it’s organized, but because of the people. The people who were strangers a few years ago and have now become my closest friends and colleagues. The hallway conversations. The way people show up for each other.</p>

<figure>
  <picture>
    <source srcset="/images/blog/2026/pycon-us-2026-community-friends.webp" type="image/webp" />
    <img src="/images/blog/2026/pycon-us-2026-community-friends.png" alt="Three pyOpenSci community members smiling together at an outdoor patio during PyCon US 2026 in Long Beach. The person in the center wears a PyCon US 2026 conference lanyard and name badge." />
  </picture>
  <figcaption>Friendships and connections that grow year after year at PyCon US.</figcaption>
</figure>

<p>Even in a hard year — especially in a hard year — I left the conference feeling fulfilled, feeling whole, and so grateful for the friendships and relationships I’ve deepened over time.</p>

<h2 id="in-this-series">In this series</h2>

<p><strong>Part 1: Community, connection, and what comes next</strong> — You’re reading it. An overview of PyCon US 2026 and why the people in the room are what make open source work.</p>

<p><strong>Part 2: <a href="/blog/pycon-us-2026-maintainers-summit.html">The Maintainer Summit</a></strong> — A milestone year for the summit: formal PyCon registration, 150+ maintainers, and roundtables on packaging, security, and generative AI.</p>

<p><strong>Part 3: <a href="/blog/pycon-us-2026-sprints.html">The sprints</a></strong> — From one person in Salt Lake City to a room full of contributors working together. Growth, learning, and community in action.</p>

<p><strong>Part 4: <a href="/blog/pycon-us-2026-generative-ai-open-source.html">Generative AI and open source</a></strong> — GenAI was everywhere at PyCon this year. Not as hype, but as a real challenge the community is wrestling with. Between our open space, the Maintainer Summit BoF, and Amanda Casari’s powerful closing keynote, a theme emerged: the path forward is human.</p>

<h2 id="what-it-all-comes-down-to">What it all comes down to</h2>

<p>If there’s one thing that tied all of these experiences together, it’s this: <strong>the humans are what make open source work.</strong> The tools change, the challenges evolve, but the connections, the learning, the care people bring to this work — that’s the irreplaceable part.</p>

<hr />

<p><em>This is Part 1 of a 4-part series on pyOpenSci at PyCon US 2026. <a href="/blog/pycon-us-2026-maintainers-summit.html">Part 2: Maintainer Summit</a> · <a href="/blog/pycon-us-2026-sprints.html">Part 3: pyOpenSci sprints</a> · <a href="/blog/pycon-us-2026-generative-ai-open-source.html">Part 4: generative AI and open source</a>.</em></p>]]></content><author><name>Leah Wasser</name></author><category term="blog-post" /><category term="community" /><summary type="html"><![CDATA[Times are hard, but communities like pyOpenSci still show up. At PyCon US 2026 in Long Beach, we saw people connecting, sprinting, and supporting each other—and why the humans are what make open source work.]]></summary></entry><entry><title type="html">Ship It Cohort One: What We Built, What We Learned, and What’s Next</title><link href="https://www.pyopensci.org/blog/ship-it-cohort-one.html" rel="alternate" type="text/html" title="Ship It Cohort One: What We Built, What We Learned, and What’s Next" /><published>2026-05-04T00:00:00+00:00</published><updated>2026-05-04T00:00:00+00:00</updated><id>https://www.pyopensci.org/blog/ship-it-cohort-one</id><content type="html" xml:base="https://www.pyopensci.org/blog/ship-it-cohort-one.html"><![CDATA[<p>Python packaging can be overwhelming — standards and tools evolve quickly, and the terminology is technical. To address these challenges, pyOpenSci recently launched <strong>Ship It: Python Packaging in the Generative AI Era</strong>. This 10-day asynchronous course connects university researchers and learners with open source experts, guiding them through the process of transforming code into a published, tested, and documented package — while weaving in a framework for using generative AI thoughtfully. The curriculum is informed by our community-driven resources, including the <a href="https://www.pyopensci.org/python-package-guide/">pyOpenSci Python packaging guide</a> and our beginner-friendly <a href="https://www.pyopensci.org/python-package-guide/tutorials/create-python-package.html">packaging tutorials</a>.</p>

<h2 id="what-is-ship-it">What is Ship It?</h2>

<p>Ship It is a 10-day, fully online, asynchronous cohort course that takes you from zero to a published Python package — with tests, documentation, and automated workflows built on the <a href="https://github.com/pyOpenSci/pyos-package-template">pyOpenSci packaging template</a>.</p>

<p>The course was designed as an accessible entry point for researchers, academics, research software engineers, and anyone who wants to package and share their work using modern best practices. Participants learn how to use packaging tools like <a href="https://hatch.pypa.io/">Hatch</a> for environment management and task running, <a href="https://docs.astral.sh/uv/">uv</a> for fast dependency resolution, and <a href="https://pytest.org/">pytest</a> for testing — all inside GitHub Codespaces, so nobody gets stuck on local setup.</p>

<p>Each weekday, a new module drops, made up of videos and text lessons. Each week, participants complete interactive “milestones” in which they share their own package or day’s work and then test a classmate’s. This project-based learning approach mirrors the spirit of open source collaboration. Engagement was also encouraged by a gamified points system, where participants earned points working toward a final LinkedIn badge and completion certificate. For many, the community aspect of the course was an unexpected — but carefully designed — highlight.</p>

<p>In response to “what was your favorite part of the course”, one participant said:</p>

<blockquote class="highlight-quote highlight">
  <p class="quote">Probably the community part. Don't misunderstand me, the lectures are great, clear and well structured. Easy to follow. But interacting with the community, testing each other's code, has been sincerely great.</p>
  
</blockquote>

<h2 id="learning-from-the-people-who-build-the-tools">Learning from the people who build the tools</h2>

<p>Sprinkled throughout the course were interviews with open source leaders like Carol Willing (Jupyter, CPython) and Melissa Mendonça (NumPy, Napari), so learners got more than technical skills — they received insights from the people building the tools they use every day.</p>

<p>The async format was a deliberate choice. pyOpenSci has run synchronous training events for years, but fixed timing limits who can attend, leaves little room for digestion, and tends to keep engagement within single institutions. An async cohort format gives participants flexibility to learn at their own pace while still building real connections across universities.</p>

<p>We also wove a thread of responsible AI throughout the course. We’ve been thinking deeply about this topic for a few years, and we wanted to offer a clear framework for using AI tools in ways that grow your skills and sustain — rather than drain — the open source ecosystem.</p>

<h2 id="ship-it-by-the-numbers">Ship It by the numbers</h2>

<p>This first cohort was generously sponsored by Open Source at Stanford University and supported by the <a href="https://curioss.org/">CURIOSS OSPO network</a>, making it free for all 55 participants.</p>

<ul>
  <li><strong>55</strong> registered participants from universities across the US</li>
  <li><strong>27</strong> videos across 10 modules</li>
  <li><strong>6</strong> gamified milestones — 14 participants completed all of them</li>
  <li><strong>~30</strong> participants created and published a Python package — for many, their first ever</li>
  <li>Sponsored by <a href="https://opensource.stanford.edu/">Stanford University</a> and supported by the CURIOSS OSPO network</li>
</ul>

<p>It was incredible to see that ~30 people published a Python package, many for the very first time. But the numbers only tell part of the story.</p>

<h2 id="what-participants-experienced">What participants experienced</h2>

<p>Ship It was designed to be hands-on from day one — and that showed in the outcomes. One participant, a structural biologist,was able to clean up a package they had been working on and share it at her departmental retreat. She shared her story with us:</p>

<blockquote class="highlight-quote highlight">
  <p class="quote">This week I presented my Python package 'PDBCleanV2' at the Structural Biology Departmental Retreat. It was well received by attendees and, overall, a great experience. I wanted to thank you because pyOpenSci was a great influence in getting my package in shape.</p>
  
  <footer class="highlight-quote__cite">
    <cite>Fatima Pardo, Structural Biologist</cite>
  </footer>
  
</blockquote>

<p>That’s the goal. Real code, real learning, real impact.</p>

<h3 id="the-community-made-it-real">The community made it real</h3>

<p>The milestone structure pushed participants to engage with each other’s work — and that turned out to be one of the most talked-about parts of the course.</p>

<blockquote class="highlight-quote highlight">
  <p class="quote">I finally caught up on the content of the workshop, and I have been loving it. Some concepts used to seem very intimidating, but I liked how they were explained clearly. I have also been enjoying the community aspect, checking other people's packages and getting comments on mine.</p>
  
</blockquote>

<h3 id="structure-and-clarity-mattered">Structure and clarity mattered</h3>

<p>Participants consistently called out the clear, step-by-step progression as a highlight. Going from “what even is a <code class="language-plaintext highlighter-rouge">pyproject.toml</code>” on Day 2 to “I just published my package to TestPyPi on Day 3 allowed for big early wins that helped people stay oriented and keep moving.</p>

<blockquote class="highlight-quote highlight">
  <p class="quote">My favorite part of the course has been the step-by-step guidance and the hands-on experience of building a package. I also really liked the videos where the mentor shares the challenges they faced — it made the process feel more real and relatable. Testing classmates' packages was another highlight, as it helped me learn from others and see different approaches.</p>
  
</blockquote>

<blockquote class="highlight-quote highlight">
  <p class="quote">Loved how interactive the workshop was, and how responsive the instructors were. The content was great, and the videos made it so easy to understand the concepts. And having the text below helped me when I wanted to review.</p>
  
</blockquote>

<h3 id="hands-on-from-day-one">Hands-on from day one</h3>

<p>Learners also commented on how the course broke down  technical packaging terms and content into easy to digest lessons.
Imposter syndrome is real and pyOpenSci works hard to break down
those barriers for everyone.</p>

<blockquote class="highlight-quote highlight">
  <p class="quote">I am very motivated. The workshop made me less afraid of certain aspects of creating the package; the explanations have been very clear and to the point. I am planning to implement what we learned on my own package, and I feel confident that I can do it.</p>
  
</blockquote>

<h3 id="honest-takes-on-generativeai">Honest takes on GenerativeAI</h3>

<p>Several participants specifically called out the AI content — not just the technical pieces, but the perspective. The responsible AI framing resonated, as did the expert interviews.</p>

<p>In response to a question about the Generative AI content, one participant had this to say about the associated Generative AI milestone activities:</p>

<blockquote class="highlight-quote highlight">
  <p class="quote">[the genAi module] It was an interesting session. I got more than I expected, in particular from the milestone. Seeing how other people interacted with AI and what we learned from it. I think it is important to have these discussions.</p>
  
</blockquote>

<p>GenerativeAI has such a profound impact on all aspects of writing code right now. We encouraged participants to experiment with using GenAI tools to write tests and implement “defensive code strategies” in their package modules and then reflect and share the outcomes of this effort with each other.</p>

<h3 id="the-course-design-flexibility-made-it-accessible">The course design flexibility made it accessible</h3>

<blockquote class="highlight-quote highlight">
  <p class="quote">I attended a conference during this course (full day for two days) and was still able to complete the course once the conference ended. I appreciate the structure of the course, and the flexibility was also needed.</p>
  
</blockquote>

<h2 id="a-window-into-the-python-ecosystem--and-the-ai-conversation">A window into the Python ecosystem — and the AI conversation</h2>

<p>Ship It was about more than packaging mechanics. Through interviews with Python leaders like Carol Willing, CPython core developer, and Melissa Mendonça from Quansight, participants got an inside look at the Python ecosystem that most of us simply aren’t exposed to in traditional academic environments.</p>

<p>That included an honest conversation about AI — specifically, how the explosion of generative AI is placing real pressure on the open source human ecosystem. The people maintaining the tools you rely on are volunteers. That context matters.</p>

<p>The course also explored how to use AI thoughtfully — as a tool for building more robust test suites, writing defensive code, and deepening your own understanding. Not something to become reliant on, but something to grow with.</p>

<h2 id="what-we-learned-from-cohort-one">What we learned from cohort one</h2>

<p>The flexibility of the async format resonated more than we expected. Participants were logging in at 2 am, at 7 am, whenever it fit their lives and time zones.</p>

<p>My favorite part of running this course was the cross-institutional engagement. Learners at Stanford, Berkeley, UC Davis, UC Santa Barbara, Harvard, Wisconsin, and universities across the country were connecting with each other in ways that simply don’t happen within a single institution. That’s exactly what pyOpenSci is built for — bringing the broader community together rather than keeping expertise siloed.</p>

<p>That community connection extended to the experts, too. Participants learned directly from the people building the tools they use every day through real conversations. That kind of engagement is what makes pyOpenSci’s trainings shine, and it’s hard to replicate.</p>

<p>For pyOpenSci, the async cohort model also supports our sustainability goals. Running the course multiple times for different groups, at their own pace, means we can reach more people — and build toward long-term sustainability by doing what we do best: making packaging and sharing code more accessible so researchers can spend more time solving the world’s greatest challenges and less time fighting with tooling.</p>

<h2 id="bringing-ship-it-to-your-institution">Bringing Ship It to your institution</h2>

<p>If you’re running an OSPO, a research computing program, or any initiative that supports academics who write and share code, ShipIt was built with you in mind. The course gives your community direct access to modern Python packaging practices, responsible AI frameworks, and — crucially — real connections to the people building the tools within the open source ecosystem.</p>

<p><a href="/learn-universities-labs.html">Click here to learn more about our partnership program.</a>. We’d love to talk with you about how we can support your community.</p>

<h2 id="whats-next">What’s next</h2>

<p>The first cohort proved the model works. Researchers published packages, made connections across institutions, and left with skills and confidence they didn’t have before. We’re building on that for fall 2026.</p>

<p>Keep an eye on our <a href="https://www.pyopensci.org/events.html">events page</a> for cohort announcements.</p>]]></content><author><name>Leah Wasser</name></author><category term="blog-post" /><category term="training" /><category term="community" /><summary type="html"><![CDATA[pyOpenSci recently wrapped up the first cohort of Ship It: Python Packaging in the Generative AI Era — a 10-day async course that took 55 university researchers from zero to a published Python package. Here's what we built, what participants said, and what's coming next.]]></summary></entry><entry><title type="html">Ship It: Research Software Development in the GenAI Era</title><link href="https://www.pyopensci.org/events/shipit-python-package-gen-ai-april-2026.html" rel="alternate" type="text/html" title="Ship It: Research Software Development in the GenAI Era" /><published>2026-03-03T00:00:00+00:00</published><updated>2026-03-03T00:00:00+00:00</updated><id>https://www.pyopensci.org/events/course-python-packaging-gen-ai</id><content type="html" xml:base="https://www.pyopensci.org/events/shipit-python-package-gen-ai-april-2026.html"><![CDATA[<div class="feature__wrapper">

  
    <div class="feature__item--center">
      <div class="archive__item">
        
        

        <div class="archive__item-body">


          
            <div class="archive__item-excerpt">
              <p>Transform your code into something others can easily install, use, and trust.</p>

            </div>
          

          
        </div>
      </div>
    </div>
  

</div>

<div class="content noimage">

  <div class="notice notice--success">
    <h2 id="everything-you-need-to-know">Everything you need to know</h2>

    <ul>
      <li><strong>When:</strong> Friday, 10 April 2026 – Thursday, 23 April 2026</li>
      <li><strong>Where:</strong> Online asynchronous course with live office hours</li>
    </ul>

    <h3 id="cost">Cost</h3>

    <p>This course was paid for by the Stanford University Open Source
Program Office (OSPO) and is available to both Stanford OSPO
researchers and other OSPOs in the CURIOSS network.</p>

    <p>Learn more about our partnership with Stanford in this short video:
<a href="https://www.youtube.com/watch?v=9HDAZJS_Wck">Ship It with Stanford OSPO</a></p>

  </div>

  <h2 id="about-the-course">About the course</h2>
  <p>Learn directly from leaders in the open source space. Featuring hands-on
activities, expert interviews with Python core developers and scientific Python
maintainers, and live office hours where you can get help and ask questions,
this 10-day asynchronous course empowers university researchers and
practitioners to reliably build and share critical tools.</p>

  <p>Developed by pyOpenSci in partnership with the Stanford Open Source Program
Office (OSPO), this program delivers a trusted, expert-led curriculum that
guides you through the lifecycle of a modern Python package. You will evolve a
working script into a tested, documented, and automated package published on
PyPI.</p>

  <p>By participating in this course, you’re also joining a vibrant open source
ecosystem. Expect to work with today’s industry-standard
tools—including uv,
Hatch, pytest, and Sphinx—while exploring open-source workflows and learning
how to use Generative AI critically, thoughtfully, and responsibly.</p>

  <h2 id="what-youll-learn">What you’ll learn</h2>

  <ul>
    <li>Structure a Python package from scratch.</li>
    <li>Configure your package using pyproject.toml.</li>
    <li>Build and publish your package to (test) PyPI.</li>
    <li>Write and run different types of tests using pytest.</li>
    <li>Automate your development workflows with task runners.</li>
    <li>Create the core documentation files every package needs.</li>
    <li>Use AI tools responsibly in your development workflow.</li>
  </ul>

  <p>This course is part of pyOpenSci’s <strong>Ship It</strong> curriculum — designed for
researchers, scientists, and developers who want to build sustainable,
production-ready open source software.</p>

  <h2 id="who-this-course-is-for">Who this course is for</h2>

  <p>This course is designed for:</p>

  <ul>
    <li><strong>Researchers, scientists, and postdocs</strong> who write Python code and want to
share it</li>
    <li><strong>University faculty, staff, and students</strong> looking to teach or adopt modern
Python packaging practices</li>
    <li><strong>Developers</strong> who are new to open source packaging and want a structured,
guided path</li>
  </ul>

  <p><em>No prior packaging experience is required.</em> If you are comfortable with Python
programming and can write a Python function, then you’re ready for this course.</p>

  <h2 id="what-makes-this-course-different">What makes this course different</h2>

  <p>pyOpenSci’s unique advantage is its community. You’re not just watching videos;
you’re learning alongside — and from — the people who maintain Python’s
packaging ecosystem.</p>

  <p>The course is delivered in a flexible, async format designed for busy
researchers: each day you’ll discover 10–15 minutes of video content, and
then you’ll complete a short bite-sized activity. Use the weekend to catch up
if you fall behind.</p>

</div>

<div class="pyos-section purple">
<div class="content noimage">

    <h2 id="course-schedule-at-a-glance">Course Schedule at a Glance</h2>

    <h3 id="week-0-setup">Week 0: Setup</h3>

    <p>The week before the course begins is focused on setup. You can complete the
course either using GitHub Codespaces or locally on your computer.</p>

    <h3 id="week-1-foundation--structure">Week 1: Foundation &amp; Structure</h3>

    <ul>
      <li><i class="fas fa-folder-tree" style="color: #999;"></i> Day 1 — Create and
run your package</li>
      <li><i class="fas fa-folder-tree" style="color: #999;"></i> Day 2 — Metadata and
dependencies: the pyproject.toml file</li>
      <li><i class="fas fa-hammer" style="color: #999;"></i> Day 3 — Build and publish
your package</li>
      <li><i class="fas fa-vial" style="color: #999;"></i> Day 4 — Introduction to
testing</li>
      <li><i class="fas fa-comments" style="color: #999;"></i> Day 5 — Live office
hours: show up, ask questions, get help.</li>
    </ul>

    <h3 id="week-2-task-runners-genai--documentation">Week 2: Task runners, GenAI &amp; Documentation</h3>

    <ul>
      <li><i class="fas fa-sync-alt" style="color: #999;"></i> Day 6 — Automate your
workflows: task runners and environments</li>
      <li><i class="fas fa-robot" style="color: #999;"></i> Day 7 — GenAI to support
your workflows</li>
      <li><i class="fas fa-users" style="color: #999;"></i> Day 8 — Documentation that
matters most to build your community and maintainer team</li>
      <li><i class="fas fa-flag-checkered" style="color: #999;"></i> Day 9 — Office
hours &amp; wrap up</li>
    </ul>

  </div>
</div>

<div class="content noimage">

  <h3 id="what-youll-walk-away-with">What you’ll walk away with</h3>

  <ul>
    <li><strong>Complete Package Template:</strong> Ready-to-use project structure</li>
    <li><strong>Automation Workflows:</strong> GitHub Actions for testing and publishing</li>
    <li><strong>Quality Checklists:</strong> Never miss important packaging steps</li>
    <li><strong>Publishing Guide:</strong> Step-by-step instructions for secure PyPI deployment
using GitHub Actions</li>
  </ul>

  <h3 id="pre-requisites">Pre-requisites</h3>

  <p>To successfully follow along in this workshop, you should:</p>

  <ul>
    <li>Know how to write Python code</li>
    <li>Understand how to write and use Python functions</li>
    <li>Have a free GitHub account. You can work using GitHub Codespaces during this
workshop, and setting up this account is free if you don’t already have one.</li>
    <li>Have internet access to access the course materials and tools.</li>
  </ul>

  <h3 id="your-instructors--helpers">Your instructors &amp; helpers</h3>

  <div class="event-instructors">
  <div class="grid event-instructors__grid">
    
    <div class="cards people-card event-instructor">
      <div class="people-card__content">
        <div class="person_img event-instructor__avatar">
          <img src="https://github.com/lwasser.png" alt="GitHub profile photo of Leah Wasser" width="400" height="400" loading="lazy" />
        </div>
        <div class="event-instructor__text">
          <h4 class="person_name">
            <a href="https://github.com/lwasser" rel="noopener noreferrer">
              Leah Wasser
            </a>
            <a href="https://github.com/lwasser" class="event-instructor__github-link" rel="noopener noreferrer" aria-label="Leah Wasser on GitHub">
            </a>
          </h4>
          <p class="event-instructor__bio">The Executive Director and Founder of pyOpenSci, Leah brings over 20 years of experience teaching technical data science topics in the scientific space. pyOpenSci has worked with hundreds of scientific Python package maintainers and has helped over 50 packages improve their structure and distribution through our peer review process.</p>
        </div>
      </div>
    </div>
    
    <div class="cards people-card event-instructor">
      <div class="people-card__content">
        <div class="person_img event-instructor__avatar">
          <img src="https://github.com/ucodery.png" alt="GitHub profile photo of Jeremiah Paige" width="400" height="400" loading="lazy" />
        </div>
        <div class="event-instructor__text">
          <h4 class="person_name">
            <a href="https://github.com/ucodery" rel="noopener noreferrer">
              Jeremiah Paige
            </a>
            <a href="https://github.com/ucodery" class="event-instructor__github-link" rel="noopener noreferrer" aria-label="Jeremiah Paige on GitHub">
            </a>
          </h4>
          <p class="event-instructor__bio">An open source author, contributor, and speaker, specifically working with Python for over 12 years. He is also a software engineer in the secure supply chain industry during work hours.</p>
        </div>
      </div>
    </div>
    
    <div class="cards people-card event-instructor">
      <div class="people-card__content">
        <div class="person_img event-instructor__avatar">
          <img src="https://github.com/inessaPawson.png" alt="GitHub profile photo of Inessa Pawson" width="400" height="400" loading="lazy" />
        </div>
        <div class="event-instructor__text">
          <h4 class="person_name">
            <a href="https://github.com/inessaPawson" rel="noopener noreferrer">
              Inessa Pawson
            </a>
            <a href="https://github.com/inessaPawson" class="event-instructor__github-link" rel="noopener noreferrer" aria-label="Inessa Pawson on GitHub">
            </a>
          </h4>
          <p class="event-instructor__bio">Bio coming soon.</p>
        </div>
      </div>
    </div>
    
  </div>
</div>

</div>]]></content><author><name>pyOpenSci</name></author><category term="events" /><summary type="html"><![CDATA[A trusted 10-day hands-on asynchronous cohort-based course developed by pyOpenSci for Stanford University and the CURIOSS network.]]></summary></entry><entry><title type="html">Building Resilience: pyOpenSci in 2026</title><link href="https://www.pyopensci.org/blog/2026-building-resilience-together.html" rel="alternate" type="text/html" title="Building Resilience: pyOpenSci in 2026" /><published>2026-01-22T00:00:00+00:00</published><updated>2026-01-22T00:00:00+00:00</updated><id>https://www.pyopensci.org/blog/building-resilience-2026</id><content type="html" xml:base="https://www.pyopensci.org/blog/2026-building-resilience-together.html"><![CDATA[<h2 id="the-world-has-changed">The world has changed</h2>

<p>I’m not going to sugarcoat it—2025 was hard.</p>

<p>Watching organizations like the <a href="https://pyfound.blogspot.com/2025/10/NSF-funding-statement.html">Python Software Foundation turn down million-dollar National Science Foundation (NSF) grants</a>
because DEIA work was no longer supported made something painfully clear: the funding landscape that has grounded so many of us is no longer reliable.</p>

<p>At the same time, Generative AI fundamentally changed how open source work happens. Maintainers found themselves reviewing more code than ever—much of it machine-generated—while navigating ethical questions about authorship and responsibility they didn’t sign up to solve on their own.</p>

<p>For many of us, the ground felt unstable—not just months out, but sometimes day to day.</p>

<p>And yet, something important happened.</p>

<p>Instead of pulling back, <strong>the pyOpenSci community leaned in</strong>. People showed up
for each other. They reviewed, mentored, taught, organized, and adapted—often
quietly, often while navigating uncertainty of their own.</p>

<figure>
  <picture>
    <source srcset="/images/blog/2025/pyos-sprint-group.webp" type="image/webp" />
    <img src="/images/blog/2025/pyos-sprint-group.png" alt="pyOpenSci community members working together" />
  </picture>
  <figcaption>The pyOpenSci community showing up for each other. SciPy 2025 beginner-friendly sprint.</figcaption>
</figure>

<h2 id="the-moment-that-changed-everything">The moment that changed everything</h2>

<p>One moment from 2025 keeps coming back to me: our sprint at SciPy.</p>

<p>We had record attendance at that sprint compared to previous years! The large group self-organized. Tables moved. Whiteboards filled with ad-hoc lessons
on Git and GitHub. Experienced contributors mentored newcomers.</p>

<p>I think about the colleague who sat down, saw the size of the sprint group,
and asked—”how can I help?”. He spent the day working with other sprinters,
helping them make their first contributions to open source.</p>

<p>This is one example of how baking structure and strong value systems into a community can yield incredible returns. The <strong>community members show up for each other because that is just how pyOpenSci operates</strong>. It’s who we are, and it’s magical.</p>

<figure>
  <picture>
    <source srcset="/images/blog/2025/tracey-james-scipy-2025.webp" type="image/webp" />
    <img src="/images/blog/2025/tracey-james-scipy-2025.png" alt="Tracey and James at the SciPy 2025 sprint" />
  </picture>
  <figcaption>Tracey and James at the SciPy 2025 sprint, where community
  members came together to support each other and make their first
  contributions to open source.</figcaption>
</figure>

<blockquote class="highlight-quote magenta">
  <p>Community members show up for each other because that is how pyOpenSci operates. It’s who we are and it’s magical.</p>
</blockquote>

<figure>
  <picture>
    <source srcset="/images/blog/2025/bof-group-inessa.webp" type="image/webp" />
    <img src="/images/blog/2025/bof-group-inessa.png" alt="SciPy 2025 sprint participants working in small groups" />
  </picture>
  <figcaption>SciPy 2025 community session participants discussing challenges in scientific Open Source.</figcaption>
</figure>

<p>That day felt like the manifestation of a blueprint. It showed what happens when you create the
right environment and empower a community to help each other. That model—
shared ownership, peer learning, mutual support—changed how I think about
building sustainable infrastructure and community.</p>

<p>Resilience is about building inclusive spaces for people to both engage, learn, and support each other.</p>

<h2 id="what-were-building-in-2026">What we’re building in 2026</h2>

<h3 id="shifting-how-we-think-about-sustainability">Shifting how we think about sustainability</h3>

<p>One of the clearest lessons from 2025 is that a grant-dependent model alone
can’t support the community-centered infrastructure pyOpenSci is
building. Grants will always matter, but they can’t be the only pillar
holding us up.</p>

<p>As we move into 2026, pyOpenSci is shifting toward a more
diversified sustainability plan–one that centers on training, sponsorship, and
community support. And as always, our focus will remain on human-centered growth and development, which is particularly critical in our current moment of Generative AI-driven rapid change.</p>

<p>Value-alignment will continue to be critical as we make this shift.</p>

<h3 id="training-that-connects-people-and-builds-responsible-practice">Training that connects people and builds responsible practice</h3>

<p>In 2026, we’re investing in a new type of training: programs that bring
researchers from around the world together to learn both software development
best practices <em>and</em> the responsible use of Generative AI in scientific and
open source workflows. The training will be held asynchronously to reduce barriers
to participation and increase accessibility. And it will feature incredible leaders in the open source community in an effort to connect learners to the <strong>real heart of Open Source–people</strong>.</p>

<p>We’re piloting this new training format through our <a href="https://www.pyopensci.org/events/pyopensci-stanford-create-python-package-workshop.html">partnership with
Stanford’s Open Source Program Office (OSPO)</a>. Building on the momentum, we’ll expand this model to other university OSPOs, leveraging the strong connections within the CURIOSS network and building an organizational membership program that supports researchers at scale. While our courses will initially be designed for OSPO researchers they will be valuable to anyone looking to develop the open source and responsible us of Generative
AI skills that are in high demand in today’s tech-driven job market.</p>

<p>Generative AI can support open source workflows, but it can’t fully replace
the thought, design, and vision that only a human can implement. It also can’t replace
mentorship, care, and compassion—human parts of the tech world that both fuel the
open source ecosystem and are also straining the fragile social web that supports it. Our training will continue to emphasize foundational open source skills, critical thinking and shared open source norms and workflows.</p>

<p>Our goal is to create learning spaces that reduce isolation, build
confidence, connect learners to the humans that drive open source, and strengthen the
communities behind scientific software.</p>

<figure>
  <picture>
    <source srcset="/images/blog/2025/scipy-workshop-teaching.webp" type="image/webp" />
    <img src="/images/blog/2025/scipy-workshop-teaching.png" alt="Teaching a pyOpenSci workshop at SciPy 2025" />
  </picture>
  <figcaption>Teaching a pyOpenSci workshop at SciPy 2025, focused on Python
  packaging and open source best practices.</figcaption>
</figure>

<h2 id="the-people-who-make-this-possible">The people who make this possible</h2>

<p>None of what we learned in 2025—or what we’re building toward in 2026—
happened in isolation.</p>

<p>I’m deeply grateful to our 2025 Executive Council, <strong><a href="https://github.com/kcranston">Karen Cranston</a>
and <a href="https://github.com/aprilmj">April Johnson</a></strong>, for their steady guidance
and support as we navigated a challenging year. They encouraged me to embrace
sustainable leadership and supported me as I developed new programs to ensure
our long-term sustainability.</p>

<p>Our Editors-in-Chief—<strong><a href="https://github.com/coatless">James Balamuta</a>,
<a href="https://github.com/eliotwrobson">Eliot Robson</a>, and <a href="https://github.com/yeelauren">Lauren Yee</a></strong>—
led the peer review process through a period of rapid change, navigating
AI-fueled submissions while keeping quality and care at the center.
<strong><a href="https://github.com/crhea93">Carter Rhea</a></strong> stepped up as an editor
numerous times, supporting volunteers who were overburdened and leading one
of our largest reviews—Astropy—which was just accepted in early 2026.</p>

<figure>
  <picture>
    <source srcset="/images/blog/2025/maintainers-summit-dan.webp" type="image/webp" />
    <img src="/images/blog/2025/maintainers-summit-dan.png" alt="PyCon US 2025 Maintainers Summit" />
  </picture>
  <figcaption>PyCon US 2025 Maintainers Summit, where we created space for
  those who keep scientific Python running.</figcaption>
</figure>

<p>Members of our Advisory Council—<strong><a href="https://github.com/willingc">Carol Willing</a>,
<a href="https://github.com/InessaPawson">Inessa Pawson</a>, and <a href="https://github.com/cmillion">Chase Million</a></strong>—
helped me think through sustainability, partnerships, and long-term direction
with wisdom and generosity.</p>

<figure>
  <picture>
    <source srcset="/images/blog/2025/carol-willing-micromentor.webp" type="image/webp" />
    <img src="/images/blog/2025/carol-willing-micromentor.png" alt="Carol Willing presenting on micromentoring" />
  </picture>
  <figcaption>Carol Willing from our Advisory Council presenting on
  micromentoring at the Maintainers Summit, co-organized by pyOpenSci at PYCON US 2025.</figcaption>
</figure>

<p><strong>And to the many community members who contributed through reviews, workshops,
sprints, writing, mentoring, and quiet acts of support—thank you. This
organization exists because you choose to show up.</strong></p>

<h2 id="community-matters-most">Community matters most</h2>

<p>When things are uncertain, community infrastructure matters most.
It’s how people find support that institutions can’t provide. It’s how
knowledge gets shared when traditional collaboration pathways break down.
It’s how we take care of each other.</p>

<p>That SciPy sprint showed me what’s possible. When you create spaces where
people can show up, learn together, and support each other—when you do that
consistently—the community becomes the infrastructure.</p>

<p>This is how we build resilience. This is how we help make the world better. <strong>Together.</strong></p>]]></content><author><name>pyOpenSci</name></author><category term="blog-post" /><category term="community" /><summary type="html"><![CDATA[pyOpenSci learned a lot about resilience in 2025. As we navigate generative AIs impact on scientific open source and shifting funding landscapes, pyOpenSci is building resilience through training, sponsorship, and community-centered leadership. Learn more about our plan.]]></summary></entry><entry><title type="html">CyNetDiff: A Python Library for Accelerated Implementation of Network Diffusion Models</title><link href="https://www.pyopensci.org/blog/cynetdiff.html" rel="alternate" type="text/html" title="CyNetDiff: A Python Library for Accelerated Implementation of Network Diffusion Models" /><published>2026-01-12T00:00:00+00:00</published><updated>2026-01-12T00:00:00+00:00</updated><id>https://www.pyopensci.org/blog/cynetdiff</id><content type="html" xml:base="https://www.pyopensci.org/blog/cynetdiff.html"><![CDATA[<p>Network diffusion models study how information and epidemics spread over social networks, and have garnered increasing interest in recent years. Two of the most widely used models are the <strong>independent cascade (IC)</strong> and <strong>linear threshold (LT) models</strong>. These models simulate spread through a network by starting with a set of seed nodes that are designated as “active”, and all other nodes are “inactive”. Then, in each iteration, some inactive nodes become active, and the iterations continue until no other nodes can be activated.</p>

<p>Many tasks related to these models, particularly influence maximization, require running simulations on large graphs many times, which can be computationally expensive. There has been significant prior work on reducing the number of simulations needed for these tasks, demonstrating the importance of an efficient implementation.</p>

<p>While researchers often prefer high-level languages like Python for their flexibility and quick development, these computationally intensive tasks are better suited for low-level, compiled languages. To bridge this gap, we’ve developed <strong>CyNetDiff</strong>, a Python library that uses components written in Cython to provide the performance of a compiled language with the flexibility of a high-level language.</p>

<hr />

<h2 id="package-features">Package Features</h2>

<p>The performance-critical parts of CyNetDiff are written in <strong>Cython</strong>, a language extension that compiles to C++ while remaining callable from Python. To take advantage of Cython’s speed, the library uses the <strong>compressed sparse row (CSR) format</strong> in an array-based representation. This data structure has low memory overhead and allows for efficient, repeated traversals, making it ideal for diffusion process simulations.</p>

<p>The implementation also uses a <strong>BFS-based traversal algorithm</strong> that only explores the out-neighbors of nodes activated in the previous iteration. This means the work done is proportional to the number of edges connected to activated nodes, which can be much smaller than the size of the entire graph, especially when there are few seed nodes.</p>

<p>The package also includes utility functions to easily convert well-established NetworkX graphs into the CSR format, allowing for seamless integration into existing research pipelines.</p>

<hr />

<h2 id="development">Development</h2>

<p>The development and review process for CyNetDiff was lengthy, partly due to the complex packaging requirements for Cython. After trying many different tools, we eventually settled on PDM and Meson as the packaging tools for this project. Our greatest difficulty in converting from prior tools was understanding the configuration files necessary for building and releasing our package.</p>

<h3 id="use-of-generative-ai">Use of Generative AI</h3>

<p>During development, we used Google Gemini to help interpret and understand Meson’s configuration syntax for our project’s build system. The AI-generated configuration suggestions were carefully reviewed, tested, and adapted to our specific project needs before implementation. All code was validated through our test suite and the pyOpenSci review process.</p>

<p>pyOpenSci encourages transparency about AI tool use in package development. To learn more about our approach to generative AI in open source software, see our <a href="/blog/generative-ai-peer-review-policy.html">generative AI peer review policy</a>.</p>

<hr />

<h2 id="citing">Citing</h2>

<p>This library is joint work with Dhemath Reddy and <a href="https://ece.illinois.edu/about/directory/faculty/aumrawal">Abhishek K. Umrawal</a>.
This post is adapted from our <a href="https://dl.acm.org/doi/abs/10.14778/3685800.3685887">VLDB paper</a>, which
should be used for citations.</p>]]></content><author><name>Eliot W. Robson</name></author><category term="blog-post" /><category term="cynetdiff" /><category term="network-diffusion" /><category term="pyos-accepted" /><summary type="html"><![CDATA[CyNetDiff is a Python package for accelerating network diffusion simulations, recently accepted into the pyOpenSci ecosystem.]]></summary></entry><entry><title type="html">Navigating LLMs in Open Source: pyOpenSci’s New Peer Review Policy</title><link href="https://www.pyopensci.org/blog/generative-ai-peer-review-policy.html" rel="alternate" type="text/html" title="Navigating LLMs in Open Source: pyOpenSci’s New Peer Review Policy" /><published>2025-11-18T00:00:00+00:00</published><updated>2025-11-18T00:00:00+00:00</updated><id>https://www.pyopensci.org/blog/generative-ai-peer-review</id><content type="html" xml:base="https://www.pyopensci.org/blog/generative-ai-peer-review-policy.html"><![CDATA[<p>authors: Leah Wasser, Jed Brown, Carter Rhea, Ellie Abrahams, Carol Willing, Stefan van der Walt, Eliot Robson</p>

<h2 id="generative-ai-meets-scientific-open-source">Generative AI meets scientific open source</h2>

<p>Some developers believe that using Generative AI products increases
efficiency. However, in scientific open source, speed isn’t
everything—transparency, quality, and community trust are just as
important as understanding the environmental impacts of using large
language models in our everyday work. Similarly, ethical questions
arise when tools may benefit some communities while harming others.</p>

<h2 id="why-we-need-guidelines">Why we need guidelines</h2>

<p>At pyOpenSci, <a href="https://github.com/pyOpenSci/software-peer-review/pull/344">we’ve drafted a new policy</a> for our peer review process to set clear expectations for disclosing the use of LLMs in scientific open-source software.</p>

<p>Our goal is transparency and fostering reproducible research. For scientific rigor, we want maintainers to <strong>disclose when and how they’ve used LLMs</strong> so editors and reviewers can fairly and efficiently evaluate submissions. Further, we want to avoid burdening our volunteer editorial and reviewer team with being the initial reviewers of generated code.</p>

<p>This is the beginning of our work to ensure that Gen AI tools are not
creating undue burden on our volunteer software review team. Humans
cannot perform in depth reviews at the rate at which these tools can
create large volumes of code.</p>

<h2 id="a-complex-topic-benefits-and-concerns">A complex topic: benefits and concerns</h2>

<p>LLMs are perceived as helping developers:</p>

<ul>
  <li>Explain complex codebases</li>
  <li>Generate unit tests and docstrings</li>
  <li>Simplify language barriers for participants in open source around
the world</li>
  <li>Speed up everyday workflows</li>
</ul>

<p>Some contributors perceive these products as making open source more
accessible. And for some, maybe they do. However, LLMs also present
unprecedented social and environmental challenges that we have to
critically evaluate.</p>

<h3 id="incorrectness-of-llms-and-misleading-time-benefits">Incorrectness of LLMs and misleading time benefits</h3>

<p>Although it is commonly stated that LLMs help improve the productivity
of high-level developers, recent scientific explorations of this
hypothesis <a href="https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/">indicate the
contrary</a>.
What’s more is that the responses of LLMs for complex coding tasks
<a href="https://arxiv.org/html/2407.06153v1">tend to be
incorrect</a> and/or overly
verbose/inefficient. It is crucial that, if you use an LLM to help
produce code, you should independently evaluate code correctness and
efficiency.</p>

<h3 id="environmental-impacts">Environmental impacts</h3>

<p>Training and running LLMs <a href="https://www.unep.org/news-and-stories/story/ai-has-environmental-problem-heres-what-world-can-do-about">requires massive energy
consumption</a>,
raising sustainability concerns that sit uncomfortably alongside much
of the global-scale scientific research that our community supports.</p>

<h3 id="impact-on-learning">Impact on learning</h3>

<p>Heavy reliance on LLMs risks producing developers who can prompt, but
not debug, maintain, or secure production code. This risk undermines
long-term project sustainability and growth. In the long run, it will
make it <a href="https://knowledge.wharton.upenn.edu/article/without-guardrails-generative-ai-can-harm-education/">harder for young developers to learn how to code and
troubleshoot
independently</a>.</p>

<blockquote>
  <p>We’re really worried that if humans don’t learn, if they start using these tools as a crutch and rely on it, then they won’t actually build those fundamental skills to be able to use these tools effectively in the future. <em>Hamsa Bastani</em></p>
</blockquote>

<h3 id="ethics-and-inclusion">Ethics and inclusion</h3>

<p>LLM outputs can reflect and amplify bias in training data. In
documentation and tutorials, that bias can harm the very communities
we want to support.</p>

<h2 id="our-approach-transparency-and-disclosure">Our approach: transparency and disclosure</h2>

<p>We acknowledge that social and ethical norms, as well as concerns
about environmental and societal impacts, vary widely across the
community. We are not here to judge anyone who uses or doesn’t use
LLMs. Our focus centers on supporting informed decision-making and
consent regarding LLM use in the pyOpenSci software submission,
review, and editorial process.</p>

<p>Our community’s expectation for maintainers submitting a package is simple: <strong>be open and disclose any Generative AI use in your package</strong> when you submit it to our open software review process.</p>

<ul>
  <li>Disclose LLM use in your README and at the top of relevant modules.</li>
  <li>Describe how the Generative AI tools were used in your package’s development.</li>
  <li>Be clear about what human review you performed on Generative AI
outputs before submitting the package to our open peer review
process.</li>
</ul>

<p>Transparency helps reviewers understand context, trace decisions, and
focus their time where it matters most. We do not want the burden of
reviewing code generated from a model, placed on a volunteer. That
effort belongs to the maintainer who ran the model that generated that
code.</p>

<h3 id="human-oversight">Human oversight</h3>

<p>LLM-assisted code must be <strong>reviewed, edited, and tested by humans</strong>
before submission.</p>

<ul>
  <li>Run your tests and confirm the correctness of the code that you submitted.</li>
  <li>Check for security and quality issues.</li>
  <li>Ensure style, readability, and concise docstrings. Depending on the
AI tool, generated docstrings can sometimes be overly verbose without
adding meaningful understanding.</li>
  <li>Explain your review process in your software submission to pyOpenSci.</li>
</ul>

<p>Please <strong>don’t offload vetting of generative AI content to volunteer
reviewers</strong>. Arrive with human-reviewed code that you understand,
have tested, and can maintain. As the submitter, you are accountable
for your submission: you take responsibility for the quality,
correctness, and provenance of all code in your package, regardless of
how it was generated.</p>

<h3 id="watch-out-for-licensing-issues">Watch out for licensing issues.</h3>

<p>LLMs are trained on large amounts of open source code, and most of
that code has licenses that require attribution (including permissive
licenses like MIT and BSD-3). The problem? LLMs sometimes produce
near-exact copies of that training data, but without any attribution
or copyright notices. <strong>LLM output does not comply with the license
requirements of the input code, even when the input is permissively
licensed</strong>, because it fails to provide the required attribution.</p>

<p>Not all code carries the same licensing risk. The risk varies
depending on what you’re generating.</p>

<p>Risk of license infringement is <strong>lower for routine tasks</strong> like
refactoring existing code, test suite improvements, creating
boilerplate code, simple utility functions, and docstring generation.
These tasks are more common, often use widely documented patterns,
and are not as likely to be substantially similar to copyrighted
training data.</p>

<p>Tasks that are <strong>higher risk</strong> include:</p>

<ul>
  <li>Algorithm implementations</li>
  <li>Developing workflows for complex data structures</li>
  <li>Domain-specific logic that is potentially already published or
copyrighted</li>
</ul>

<p>For high-risk content (e.g., algorithm implementations), you need to
understand the algorithm to vet its correctness, ensure the approach
is not already published and copyrighted, vet its performance, and
evaluate edge cases. If you understand it well enough to review it
thoroughly, you can often implement it yourself. In these cases, use
LLMs as learning aids—ask questions, study approaches, then write
your own implementation.</p>

<p>Why this matters:</p>

<ul>
  <li>LLM-generated code may be <em>substantially similar</em> to copyrighted
training data; sometimes it is identical. Copyright law focuses on
how similar your content is compared to the original.</li>
  <li>You can’t trace what content the LLM learned from (the black box
problem); this makes due diligence impossible on your part. You
might accidentally commit plagiarism or copyright infringement by
using LLM output in your code even if you modify it.</li>
  <li>License conflicts occur because of both items above. Read on…</li>
</ul>

<p>When licenses clash, it gets particularly messy. Even when licenses
are compatible (e.g., MIT-licensed training data and MIT-licensed
output), you still have a violation because attribution is missing.
With incompatible licenses (say, an LLM outputs GPL code and your
package uses MIT), you can’t just add attribution to fix it—you’d
technically have to delete everything and rewrite it from scratch
using clean-room methods to comply with licensing requirements.</p>

<p>The reality of all of this is that you can’t eliminate this risk of
license infringement or plagiarism with current LLM technology. But
you can be more thoughtful about how you use the technology.</p>

<h3 id="what-you-can-do-now">What you can do now</h3>

<p>Consider the following:</p>

<ul>
  <li>Assess the licensing risk based on what you’re generating: routine
refactoring carries lower risk than implementing novel algorithms or
domain-specific logic.</li>
  <li>Be aware that when you directly use content from an LLM, there will
be inherent license conflicts and attribution issues.</li>
  <li><strong>Use LLMs as learning tools</strong>: Ask questions, review outputs
critically, then write your own implementation based on
understanding. Often the outputs of LLMs are messy or inefficient.
Use them to learn, not to copy. This is especially important for
high-risk content like algorithms.</li>
  <li>Understand and transform code returned from an LLM: Don’t paste LLM
outputs directly. Review, edit, and ensure you fully understand what
you’re using. You can ask the LLM questions to better understand its
outputs. This approach also helps you learn, which addresses the
education concerns that we raised earlier.</li>
  <li>Consider <a href="https://en.wikipedia.org/wiki/Clean-room_design">clean-room
techniques</a>: Have
one person review LLM suggestions for approach; have another person
implement from that high-level description.</li>
  <li><strong>Document your process</strong>: If you plan to submit a Python package
for pyOpenSci review, we will ask you about your use of LLMs in your
work. Document the use of LLMs in your project’s README file and in
any modules where LLM outputs have been applied. Confirm that it has
been reviewed by a human prior to submitting it to us, or any other
volunteer-led peer review process.</li>
</ul>

<p>You can’t control what’s in training data, but you can be thoughtful
about how you use these tools.</p>

<div class="notice">
  <p>Examples of how these licensing issues are impacting and stressing our
legal systems:</p>

  <ul>
    <li><a href="https://githubcopilotlitigation.com/case-updates.html">GitHub Copilot litigation</a></li>
    <li><a href="https://arxiv.org/abs/2505.12546">Litigation around text from LLMs</a></li>
    <li><a href="https://dwheeler.com/essays/floss-license-slide.html">incompatible licenses</a></li>
  </ul>
</div>

<h3 id="review-for-bias">Review for bias</h3>

<p>Inclusion is part of quality. Treat AI-generated text with the same
care as code.
Given the known biases that can manifest in Generative AI-derived text:</p>

<ul>
  <li>Review AI-generated text for stereotypes or exclusionary language.</li>
  <li>Prefer plain, inclusive language.</li>
  <li>Invite feedback and review from diverse contributors.</li>
</ul>

<h2 id="things-to-consider-in-your-development-workflows">Things to consider in your development workflows</h2>

<p>If you are a maintainer or a contributor, some of the above can apply
to your development and contribution process, too. Similar to how
peer review systems are being taxed, rapid, AI-assisted pull requests
and issues can also overwhelm maintainers too. To combat this:</p>

<ul>
  <li>If you are using generative AI tools in your daily workflows, keep each task small, focused, and well-defined. This is particularly important if you are using agent mode. This will produce smaller changes to your codebase that
will be easier to thoughtfully review and evaluate.</li>
  <li>Open an issue first before submitting a pull request to a repository that you don’t own to ensure it’s
welcome and needed</li>
  <li>Keep your pull requests small with clear scopes.</li>
  <li>If you use LLMs, test and edit all of the output before you submit a
pull request or issue.</li>
  <li>Flag AI-assisted sections of any contribution so maintainers know
where to look closely.</li>
  <li>Be responsive to feedback from maintainers, especially when
submitting code that is AI-generated.</li>
</ul>

<h2 id="where-we-go-from-here">Where we go from here</h2>

<p>A lot of thought and consideration has gone into the development of
<a href="https://www.pyopensci.org/software-peer-review/our-process/policies.html#policy-for-use-of-generative-ai-llms">pyOpenSci’s Generative AI
policies</a>.</p>

<p>We will continue to suggest best practices for embracing modern
technologies while critically evaluating their realities and the
impacts they have on our ecosystem. These guidelines help us maintain
the quality and integrity of packages in our peer review process while
protecting the volunteer community that makes open peer review
possible. As AI tools evolve, so will our approach—but transparency,
human oversight, and community trust will always remain at the center
of our work.</p>

<h2 id="join-the-conversation">Join the conversation</h2>

<p>This policy is just the beginning. As AI continues to evolve, so will
our practices. We invite you to:</p>

<p>👉 <a href="https://github.com/pyOpenSci/software-peer-review/pull/344">Read the full draft policy and discussion</a>
👉 Share your feedback and help us shape how the scientific Python
  community approaches Generative AI in open source.</p>

<p>The conversation is only starting, and your voice matters.</p>]]></content><author><name>pyOpenSci</name></author><category term="blog-post" /><category term="community" /><summary type="html"><![CDATA[Generative AI products are reducing the effort and skill necessary to generate large amounts of code. In some cases, this strains volunteer peer review programs like ours. Learn about pyOpenSci's approach to developing a Generative AI policy for our software peer review program.]]></summary></entry><entry><title type="html">Why We Choose What We Choose</title><link href="https://www.pyopensci.org/blog/how-we-choose-python-tools.html" rel="alternate" type="text/html" title="Why We Choose What We Choose" /><published>2025-10-02T00:00:00+00:00</published><updated>2025-10-02T00:00:00+00:00</updated><id>https://www.pyopensci.org/blog/why-we-choose-what-we-choose</id><content type="html" xml:base="https://www.pyopensci.org/blog/how-we-choose-python-tools.html"><![CDATA[<p>A primary focus at pyOpenSci, one of our petals of support, is selecting packaging tools that work well for our users and work well together. We use our curated selection of tooling in our packaging guide, in our online tutorials, and in our trainings. We don’t require the use of any of our selected tools to submit a package to our peer review program but we will suggest them if the package authors ask for help trying to clean up or adopt new workflows.</p>

<p>The members of pyOpenSci spend a great deal of time selecting these tools, debating tradeoffs, test-driving them in new situations, looking at new community trends, and listening to feedback from events we run. But up until now we haven’t typically posted in the open either how or why we have come to the decisions we did. This post outlines, in not very strict terms, the rubric we use when selecting a project that we want to recommend. We focus on a beginner-leaning happy path for packaging workflows. In other words, what works really well for new projects that don’t have a lot, if any, non-conventional requirements to share their code.</p>

<p>Our rubric comes from five categories, approximately ordered as follows:</p>

<h2 id="tools-that-are-free-and-open">Tools that are free and open</h2>

<p>We love open software! It’s even in our name. We are always looking to nurture and support open source software, even beyond packaging projects. It should come as no surprise, then, that we only choose tools in our packaging guide that are themselves open source.</p>

<p>We don’t just appreciate open source, though, we also look for projects that are open contribution – that do most of their maintenance, stewardship, and designing in public. This means there is a public bug tracker where new issues are accepted from anyone, and fixes for those bugs are also accepted from non-maintainers. It may also mean that new feature ideas are accepted from the community, or even given a period of public comment. Contributions from everyone, including members and non-members, should be respected as the exchange of free ideas. Project authors should not seek to take exclusive ownership of the collaborative efforts of the community they are a part of. This means that contributors of any level and for any purpose of the project should be recognized publicly. It also means that the project is not asking for the exclusive rights to those contributors’ ideas (through overly restrictive Contributor License Agreements).</p>

<p>Our commitment to open software goes beyond just projects that choose to host their code and bugs in a public manner. We also value Free Software; both as in Beer and as in Freedom. Permissive open source software empowers its users to take control of their tools and fix, extend, secure, and adapt code for the purposes that will best fit their own needs. Choosing projects that do not require a financial exchange in order to be used ensures that we can recommend our choices to anyone no matter their situation or location.</p>

<h2 id="tools-that-are-inclusive">Tools that are inclusive</h2>

<p>Inclusivity is very important to us; it is a critical component of tooling projects we select. Programming, including packaging of that software, is a skill that should be available to everyone.</p>

<p>The tools we advocate for should not seek to limit their use through actions such as: adoption of a restrictive license; poor, missing, obfuscated, or expert-only documentation; charging for use of the tool or any process related to its successful usage; not supporting mainstream operating systems. The projects behind the tools should welcome constructive bug reports from users of all levels, and ideally also welcome contributions from all their users.</p>

<p>There are some signals that we look for to tell if the project is inclusive. We want all of our recommended tools to have a code of conduct for their project. The project should also have a contributors guide that is easy to find. Labeling issues or running sprints aimed at fostering commits from new contributors is also a great indicator.</p>

<p>Projects that manage to attract and maintain a broad base of contributors will be viewed more positively. We value projects that strive to do this not only in code, but also in documentation, engagement with the bug tracker, external write-ups and tutorials, and so forth.</p>

<h2 id="tools-that-implement-open-standards">Tools that implement open standards</h2>

<p>It is very important to us that the tools and processes we stand behind support the full set of community standards.</p>

<p>For Python, this typically means conforming to <a href="https://peps.python.org">Python Enhancement Proposals</a>, but may also involve other standard bodies such as <a href="https://scientific-python.org/specs/">Scientific Python Ecosystem Coordination</a>.</p>

<p>Supporting community standards demonstrates that the project respects the community it is working within and is serious about interoperability with other tools and processes. When done right, these tools empower their users to move this workflow, or any of its inputs or outputs, to another standards-compliant tool or process with little to no friction. It also makes it easier to teach since many of the concepts, as well as in some cases entire parts of project data, are tool-agnostic and can feel “familiar” even to those that have never used the tool before. There is also likely to be more documentation developed through forums, blogs, workshops, and other online platforms, because they apply to more than one tool.</p>

<p>It can be a lot of work for tool maintainers to keep up-to-date with changes in standardization, especially in a large and eclectic community such as Python. While we understand that it can take time to implement new features imposed from outside of a project, we also know that a selectively-implemented standard is often worse than no standard.</p>

<h2 id="tools-that-are-well-supported">Tools that are well supported</h2>

<p>We would like to only recommend projects that we can confidently say are healthy, correct, and here to stay. A well-maintained project is a somewhat subjective metric that is hard to pin down, but whenever possible we would apply our <a href="https://www.pyopensci.org/software-peer-review/how-to/author-guide.html#does-your-package-meet-packaging-requirements">same standard</a> for Peer Reviews of Scientific Software.</p>

<p>Authors and maintainers should respond to open issues and continue to make fixes to the project. We do not have any expectation or metric of response time, open bug count, time to close commit requests, security artifacts, or any other level of effort requirement; only that the project is alive and healthy to the degree that is appropriate for its function. We also strongly prefer projects that have a team of core maintainers as opposed to an individual maintainer.</p>

<h2 id="tools-that-reduce-user-choices">Tools that reduce user choices</h2>

<p>Python packaging suffers, perhaps infamously, from <a href="https://www.pyopensci.org/blog/python-packaging-friends-dont-let-friends-package-alone.html#just-say-no-to-tmo">Too Many Options</a>. We would like to make as many pragmatic choices as we can on behalf of the learner. Better yet is to make choices that will eliminate further choices and complexity later on in the process; this can help learners from getting stuck in runaway analysis paralysis.</p>

<p>This means that these tools should implement sensible defaults for any configurable value. Like with Python, they should make the simple easy and the difficult possible.</p>

<p>It also means that we will generally select one tool when two or more could do the same job. So long as the one tool fits our other criteria it doesn’t have to “win” at every single task it is capable of doing when compared against a plethora of other tools.</p>]]></content><author><name>Jeremiah Paige</name></author><category term="blog-post" /><category term="community" /><summary type="html"><![CDATA[In selecting one workflow to package a Python project, pyOpenSci chooses between a lot of code tools. These choices often come after months of exploration and debate. Find out what motivates us to make the decisions that we do.]]></summary></entry><entry><title type="html">From Surviving to Thriving: A Convening to Reclaim and Sustain Open Science Communities</title><link href="https://www.pyopensci.org/blog/pyopensci-surviving-to-thriving.html" rel="alternate" type="text/html" title="From Surviving to Thriving: A Convening to Reclaim and Sustain Open Science Communities" /><published>2025-09-14T00:00:00+00:00</published><updated>2025-09-14T00:00:00+00:00</updated><id>https://www.pyopensci.org/blog/pyopensci-surviving-to-thriving</id><content type="html" xml:base="https://www.pyopensci.org/blog/pyopensci-surviving-to-thriving.html"><![CDATA[<p><em>Authors: Kari L. Jordan, Erin Becker, Daniela Saderi, Vanessa Fairhurst, Patricia Herterich, Noam Ross, Yanina Bellini Saibene, Leah Wasser, Yo Yehudi</em></p>

<figure>
  <picture>
  <source srcset="/images/blog/2025/waterfall-flikr.webp" type="image/webp" />
  <img src="/images/blog/2025/waterfall-flikr.jpg" alt="A photograph of a waterfall cascading down rocks in a rich green forest setting" style="width: 80%;" />
  </picture>
    <figcaption>"Black Forest: waterfall" by *rboed* is licensed under CC BY 2.0. To view a copy of this license, visit https://creativecommons.org/licenses/by/2.0/?ref=openverse.</figcaption>
</figure>

<p>Open science has transformed how research is conducted, shared, and reused. Yet the organisations at the heart of this transformation are often left vulnerable, underfunded, and disconnected from one another. To move from simply surviving to truly thriving, five leading open science organisations -- <a href="https://carpentries.org/">The Carpentries</a>, <a href="https://we-are-ols.org/">OLS</a>, <a href="https://ropensci.org/">rOpenSci</a>, <a href="https://www.pyopensci.org/">pyOpenSci</a>, and <a href="https://prereview.org/">PREreview</a>) -- are convening to chart a collective path forward. We are so grateful to The Navigation Fund for supporting this work, and invite our communities to review the <a href="https://commons.datacite.org/doi.org/10.71707/qttn-3j47">full proposal</a> online.</p>

<h2 id="why-this-convening-matters">Why This Convening Matters</h2>

<p>Our work has reshaped scientific culture by modeling inclusive, participatory, and transparent practices. But despite the global reach and impact of our communities, we face shared challenges:</p>

<ul>
  <li>Chronic underfunding that undermines our ability to plan and grow.</li>
  <li>Fragmentation across networks, which weakens collective visibility and coordination.</li>
  <li>Unsustainable engagement models that over-rely on volunteers without adequate support systems.</li>
</ul>

<p>Like a single thread, each of our organisations is fragile alone; together, we can weave a stronger, more resilient open science fabric.</p>

<h2 id="current-gaps">Current Gaps</h2>

<p>Open science is built on collaboration and transparency, but too often the organisations building this infrastructure operate in silos. The result is uneven visibility, duplicated efforts, and missed opportunities to align strategies. Community-driven organisations like ours face distinct challenges compared with technical infrastructure projects: recruiting contributors is not enough if the structures and motivation to sustain their engagement are missing.</p>

<p>This fragmentation is not just an internal problem; it’s a loss for the broader research ecosystem that depends on our work.</p>

<h2 id="our-approach">Our Approach</h2>

<p>We are planning a strategic, in-person convening of leadership from our five organisations. This gathering will focus on:</p>

<ul>
  <li>Shared financial sustainability: Developing collective, value-aligned models for funding and resource generation.</li>
  <li>Collaborative engagement strategies: Designing systems that strengthen and connect our communities across roles, regions, and lived experiences.</li>
  <li>Equity-centered design: Ensuring accessibility, usability, and meaningful participation for all involved.</li>
</ul>

<p>Facilitated by <a href="https://wildlyopen.com/">Wildly Open</a>, we are excited to explore and better understand what is (and isn’t) working, and then build durable models for collaboration and sustainability.</p>

<h2 id="what-we-aim-to-deliver">What We Aim to Deliver</h2>

<ul>
  <li>A coordinated sustainability strategy that reflects the shared values of our organisations.</li>
  <li>A funder-facing pitch to mobilise resources in support of this strategy.</li>
  <li>Stronger ties among our organisations that extend beyond the convening, creating lasting impact.</li>
</ul>

<h2 id="the-bigger-picture">The Bigger Picture</h2>

<p>This convening is not an isolated event. It’s the first step in scaling a movement that reimagines how values-driven open science organisations can grow together, share resources, and strengthen the ecosystem we collectively serve. By working together, we can ensure that the future of open science is not only innovative, but also equitable, sustainable, and resilient.</p>

<div class="notice">

  <h2 id="connect-with-us">Connect with us!</h2>

  <p>There are lots of ways to get involved if you are interested!</p>

  <ul>
    <li>If you read through our lessons and want to suggest changes, open an issue in our <a href="https://github.com/pyOpenSci/lessons">lessons repository here</a>.</li>
    <li><a href="https://docs.google.com/forms/u/6/d/e/1FAIpQLSeVf-L_1-jYeO84OvEE8UemEoCmIiD5ddP_aO8S90vb7srADQ/viewform?usp=send_form">Volunteer to be a reviewer for pyOpenSci’s software review process</a>.</li>
    <li><a href="https://www.pyopensci.org/software-peer-review/how-to/author-guide.html#submit-your-package-for-peer-review">Submit a scientific Python package to pyOpenSci for peer review.</a></li>
    <li><a href="https://give.communityin.org/pyopensci_2024?ref=ab_0sHhtifYvgR0sHhtifYvgR">Donate to pyOpenSci</a> to support scholarships for future training events and the development of new learning content.</li>
    <li>Check out our <a href="https://www.pyopensci.org/volunteer.html">volunteer page</a> for other ways to get involved.</li>
  </ul>

  <p>You can also:</p>

  <ul>
    <li>Keep an eye on our <a href="https://www.pyopensci.org/events.html">events page</a> for upcoming training events.</li>
  </ul>

  <p>Follow us on social platforms:</p>

  <ul>
    <li><a href="https://fosstodon.org/@pyopensci">Mastodon</a></li>
    <li><a href="https://bsky.app/profile/pyopensci.org">Bluesky</a></li>
    <li><a href="https://www.linkedin.com/company/pyopensci/">LinkedIn</a></li>
    <li><a href="https://github.com/pyOpenSci">GitHub</a></li>
  </ul>

  <p>If you are on LinkedIn, check out and <a href="https://www.linkedin.com/newsletters/7179551305344933888/?displayConfirmation=true">subscribe to our newsletter</a>, too.</p>

</div>]]></content><author><name>pyOpenSci</name></author><category term="blog-post" /><category term="community" /><summary type="html"><![CDATA[Building resilience in open science starts with collaboration. Learn how pyOpenSci is partnering with the Carpentries, Prereview, Open Life Sciences, and rOpenSci to reinvision how open communities can work together to share the future of open science in uncertain times.]]></summary></entry><entry><title type="html">What’s New in pyOpenSci: September Updates + Community Shoutouts</title><link href="https://www.pyopensci.org/blog/pyopensci-september-2025-updates.html" rel="alternate" type="text/html" title="What’s New in pyOpenSci: September Updates + Community Shoutouts" /><published>2025-09-11T00:00:00+00:00</published><updated>2025-09-11T00:00:00+00:00</updated><id>https://www.pyopensci.org/blog/pyopensci-september-news-2025</id><content type="html" xml:base="https://www.pyopensci.org/blog/pyopensci-september-2025-updates.html"><![CDATA[<p>The summer was full of connection, collaboration, and momentum in the pyOpenSci community. Whether you joined us at SciPy, submitted a package for review, or just lurked, we’re so grateful you’re here!</p>

<p>Here’s what’s been happening 👇</p>

<hr />

<h2 id="-community-shoutouts"><strong>💬 Community Shoutouts</strong></h2>

<p><strong>Welcome, Philip Narteh!</strong></p>

<p>We’re thrilled to welcome <a href="https://github.com/Phinart98"><strong>Philip Narteh</strong></a> as pyOpenSci’s very first <strong>Open Source Infrastructure Intern</strong>, supported by <a href="https://quansight.com/">Quansight</a>, <a href="https://github.com/melissawm">Melissa Mendonça</a>, and <a href="https://github.com/trallard">Tania Allard</a>. Philip will be helping us migrate our website to <a href="https://www.djangoproject.com/">Django</a>, bringing valuable experience in accessibility within the Django ecosystem. We’re so excited to have you here, Philip!</p>

<p><strong>Contributor milestones</strong></p>

<p>We’ve also had some meaningful leadership transitions happen.</p>

<ul>
  <li><a href="https://github.com/tracykteal"><strong>Tracy Teal</strong></a> completed her term as our founding Executive Council Chair after three transformative years. The Executive Council is the leadership body that guides pyOpenSci’s strategy, governance, and long-term sustainability. You can think of it as the group that helps us make big-picture decisions and ensures our work stays aligned with our mission. <a href="https://www.pyopensci.org/handbook/governance/executive-council.html">Learn more about the Executive Council.</a></li>
  <li><a href="https://github.com/kcranston"><strong>Karen Cranston</strong></a> has stepped in as our new Executive Council Chair, and <strong>April Johnson</strong> has joined as a new Council member.</li>
</ul>

<p>These transitions highlight pyOpenSci’s growing maturity and sustainability as an organization.</p>

<p>We also want to celebrate our editorial team:</p>

<ul>
  <li><a href="https://github.com/eliotwrobson"><strong>Eliot Robson</strong></a> transitioned into the Editor-in-Chief role for our peer review process.</li>
  <li><a href="https://github.com/cmarmo"><strong>Chiara Marmo</strong></a> and <a href="https://github.com/isabelizimm"><strong>Isabel Zimmerman</strong></a> wrapped up their terms as Editors after years of thoughtful reviews and community care. Thank you both!</li>
</ul>

<hr />

<h2 id="-scipy-2025-highlights"><strong>🎤 SciPy 2025 Highlights</strong></h2>

<p>Over 60 people joined our Birds of a Feather (BoF) session to discuss challenges in research software and what community-driven peer review can do to help. It was one of our most energizing community sessions yet!</p>

<p>We also:</p>

<ul>
  <li>Kicked off the conference with our packaging workshop, introducing folks to our user-friendly template and modern tools like Hatch and UV.</li>
  <li>Welcomed many first-time contributors at our community sprint, with <strong>over 30 PRs opened in one day</strong>!</li>
  <li>Shared lightning talks, saw Pixi in action, and even got a <strong>SciPy Song shoutout</strong>.</li>
</ul>

<p>Big thanks to everyone who contributed to our SciPy presence—especially Jonny Saunders, Avik Basu, Jeremiah Paige, Inessa Pawson, Carol Willing, Tetsuo Koyama, and many others who made our workshop and sprints welcoming and impactful.</p>

<p>📖Read: <a href="https://www.pyopensci.org/blog/pyopensci-at-scipy-2025.html">Highlights from SciPy 2025: Building Community, Code, and Culture</a></p>

<hr />

<h2 id="-peer-review-updates"><strong>🔍 Peer Review Updates</strong></h2>

<p>We’re excited to see continued momentum in our software review process! Right now, <strong>13 packages are actively under review,</strong> and another <strong>10 are in prereview</strong> (the early stage before formal review begins). You can explore the <a href="https://www.pyopensci.org/metrics/peer-review/current-review-status.html">live review status board</a> anytime to follow along.</p>

<p>🎉 Recently accepted packages include:</p>

<ul>
  <li><a href="https://github.com/pudeIko/piva"><strong>PIVA</strong></a> (August 4, 2025) — A visualization and analysis toolkit for experimental data from <a href="https://arpes.stanford.edu/research/tool-development/angle-resolved-photoemission-spectroscopy">Angle-Resolved Photoemission Spectroscopy (ARPES)</a>.</li>
  <li><a href="https://github.com/eliotwrobson/CyNetDiff"><strong>CyNetDiff</strong></a> (August 22, 2025) — A performance-focused library for simulating network diffusion processes using <a href="https://cython.org/">Cython</a>.</li>
</ul>

<p>A big congratulations to the maintainers of these projects, and a thank you to the reviewers and editors who supported them through the process.</p>

<p>📦 Interested in submitting your own Python package?</p>

<p>👉 <a href="https://www.pyopensci.org/python-package-guide/">Read our guide and submit here</a></p>

<hr />

<h2 id="-community-learning--behind-the-scenes"><strong>🧠 Community Learning + Behind-the-Scenes</strong></h2>

<p><strong>Event Recap: <a href="https://www.pyopensci.org/events/pyopensci-stanford-ospo-peer-review.html">Improving Research Software through Peer Review</a></strong></p>

<p>On August 7, we partnered with Stanford’s OSPO for a virtual session exploring how pyOpenSci’s peer review model strengthens research software and supports contributor recognition.</p>

<p><strong>New blog updates</strong></p>

<p>If our blog posts feel a little more structured, community-centered, and friendly lately—say hi to our new <strong>Communications and Community Lead, Mandy Moore!</strong> She’s been working behind the scenes on everything from SEO-friendly image tags to blog polish to social media storytelling.</p>

<p>Bonus: She even learned a little HTML for it. 😉</p>

<p>📖Read: <a href="https://www.pyopensci.org/blog/mandy-moore-communications-lead.html">Meet Mandy Moore, pyOpenSci’s new Communications and Community Lead!</a></p>

<hr />

<h2 id="-upcoming-events">📅 Upcoming Events</h2>

<p><strong>October 2, 2025 – <a href="https://www.pyopensci.org/events/pyopensci-stanford-create-python-package-workshop.html">Create a Python Package: A Hands-On Workshop</a></strong></p>

<p>This workshop is being held for the Stanford Open Source Program office community through our new membership model. We are excited to host another live online workshop on Spatial Chat, where we’ll walk you through building your first Python package using Hatch, UV, and other modern tools—complete with a ready-to-use GitHub Codespace. (9 AM PT / 10 AM MT)</p>

<p><strong>November 6, 2025 – <a href="https://www.pyopensci.org/events/python-packaging-workshop-november-2025.html">Create a Python Package: A Hands-On Workshop</a></strong></p>

<p>It’s not too late to grab a seat in our second Python packaging workshop. Python packaging at your fingertips!</p>

<p>Here, we’ll walk you through building your first Python package using Hatch, UV, and other modern tools—complete with a ready-to-use GitHub Codespace using a custom pyOpenSci template. (9 AM PT / 10 AM MT)</p>

<p>✨ More workshops and events are always in the works—stay tuned via our <a href="https://www.pyopensci.org/events.html">events page</a> for the latest updates.</p>

<hr />

<h2 id="️-how-you-can-get-involved"><strong>🛠️ How You Can Get Involved</strong></h2>

<ul>
  <li>Volunteer with pyOpenSci – from peer review to outreach, we welcome contributors of all kinds.</li>
  <li>Follow us – <a href="https://www.linkedin.com/company/pyopensci/">LinkedIn</a>, <a href="https://fosstodon.org/@pyOpenSci">Mastodon</a>, <a href="https://bsky.app/profile/pyopensci.org">Bluesky</a>.</li>
</ul>

<hr />

<h2 id="-on-our-radar"><strong>👀 On Our Radar</strong></h2>

<ul>
  <li>We’re working on new policies around the role of generative AI in peer review and open source. It’s a challenging and timely topic, and we’ve opened a <a href="https://github.com/pyOpenSci/software-peer-review/issues/331">GitHub discussion</a> to gather thoughts from the community.</li>
  <li>We’re also developing policies to support review of packages already reviewed by our partner journal, JOSS.</li>
  <li>Curious about next-gen Python packaging? Check out <a href="https://github.com/astral-sh/uv">uv</a>, <a href="https://pixi.sh/">Pixi</a>, and <a href="https://hatch.pypa.io/latest/">Hatch</a>.</li>
  <li>Keep an eye out for more blogs and contributor spotlights—we’ll be highlighting both technical insights and the people who make this community thrive.</li>
</ul>

<hr />

<p>✨ Let’s keep building together.</p>

<p>Until next time,</p>

<p>The pyOpenSci Team 💛</p>

<div class="notice">

  <h2 id="connect-with-us">Connect with us!</h2>

  <p>There are lots of ways to get involved if you are interested!</p>

  <ul>
    <li>If you read through our lessons and want to suggest changes, open an issue in our <a href="https://github.com/pyOpenSci/lessons">lessons repository here</a>.</li>
    <li><a href="https://docs.google.com/forms/u/6/d/e/1FAIpQLSeVf-L_1-jYeO84OvEE8UemEoCmIiD5ddP_aO8S90vb7srADQ/viewform?usp=send_form">Volunteer to be a reviewer for pyOpenSci’s software review process</a>.</li>
    <li><a href="https://www.pyopensci.org/software-peer-review/how-to/author-guide.html#submit-your-package-for-peer-review">Submit a scientific Python package to pyOpenSci for peer review.</a></li>
    <li><a href="https://give.communityin.org/pyopensci_2024?ref=ab_0sHhtifYvgR0sHhtifYvgR">Donate to pyOpenSci</a> to support scholarships for future training events and the development of new learning content.</li>
    <li>Check out our <a href="https://www.pyopensci.org/volunteer.html">volunteer page</a> for other ways to get involved.</li>
  </ul>

  <p>You can also:</p>

  <ul>
    <li>Keep an eye on our <a href="https://www.pyopensci.org/events.html">events page</a> for upcoming training events.</li>
  </ul>

  <p>Follow us on social platforms:</p>

  <ul>
    <li><a href="https://fosstodon.org/@pyopensci">Mastodon</a></li>
    <li><a href="https://bsky.app/profile/pyopensci.org">Bluesky</a></li>
    <li><a href="https://www.linkedin.com/company/pyopensci/">LinkedIn</a></li>
    <li><a href="https://github.com/pyOpenSci">GitHub</a></li>
  </ul>

  <p>If you are on LinkedIn, check out and <a href="https://www.linkedin.com/newsletters/7179551305344933888/?displayConfirmation=true">subscribe to our newsletter</a>, too.</p>

</div>]]></content><author><name>pyOpenSci</name></author><category term="blog-post" /><category term="community" /><summary type="html"><![CDATA[This summer brought incredible momentum to pyOpenSci—from 60+ attendees at our SciPy session to 13 packages actively under review and exciting new leadership transitions. Join our November Python packaging workshop or explore how you can get involved in peer review.]]></summary></entry></feed>