You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -21,9 +21,9 @@ I have been working full-time building pyOpenSci for two years now, thanks to fu
21
21
22
22
It's time to take a breath and celebrate everything the pyOpenSci community has accomplished. Before we move on to the next big thing—[our pyOpenSci Fall Festival](https://www.pyopensci.org/events/pyopensci-2024-fall-festival.html) (more on that below)—I want to take a moment to reflect on:
23
23
24
-
*Where we've been
25
-
*What we've accomplished
26
-
*The incredible community of practice that we've built
24
+
*where we've been,
25
+
*what we've accomplished, and
26
+
*the incredible community of practice that we've built.
27
27
28
28
I'll wrap up by discussing what's next for pyOpenSci.
29
29
@@ -36,9 +36,9 @@ fueled by making open science best practices more accessible to scientists.
36
36
37
37
pyOpenSci makes open science more accessible by [developing educational resources](/learn.html), [running training events](/events/index.html), running an [open software peer review process](/about-peer-review/index.html) and [partnering with other communities](/partners.html). From humble beginnings characterized by small community meetings, pyOpenSci has blossomed into a thriving community marked by:
38
38
39
-
* a robust editorial team
40
-
* hundreds of contributors
41
-
* numerous valuable community partners and friends
39
+
* a robust editorial team,
40
+
* hundreds of contributors, and
41
+
* numerous valuable community partners and friends.
42
42
43
43
Our software peer review program has seen **over 50 packages**; we've [accepted 35 scientific Python packages into our growing library of trusted scientific Python packages](https://www.pyopensci.org/python-packages.html) and have **17 packages** in [active stages of review](https://github.com/orgs/pyOpenSci/projects/7) as I write this post.
44
44
@@ -138,34 +138,33 @@ In just under a year, pyOpenSci created a [comprehensive packaging guide](https:
138
138
139
139
[Check out the GitHub pull requests for packaging guide pages](https://github.com/pyOpenSci/python-package-guide/pulls?q=is%3Apr+sort%3Acomments-desc+is%3Aclosed) if you're curious about the feedback and discussions that we had when writing the packaging guide. Notice the number of comments on the most popular PRs. The sheer volume of comments on some of the early PRs associated with packaging build tools speaks to the various issues, complexity, and decisions we needed to make.
140
140
141
-
## **Building Python packaging consensus and developing the pyOpenSci Python packaging guide**
141
+
## **Building Python packaging consensus and developing the pyOpenSci Python Packaging Guide**
142
142
143
-
The success of our Python packaging guide is due to extensive community input.
143
+
The success of our Python Packaging Guide is due to extensive community input.
144
144
We directed Python Packaging Guide contributors towards the objective of simplifying Python packaging for beginners. Focusing on a specific audience allowed contributors to make decisions about the content in the Guidebook more easily. It also ensured that the outcome text is easy to understand for beginners and for scientists who prefer to avoid delving into packaging nuances. In each review, we made sure to include a diverse group of reviewers, including:
145
145
146
-
***Packaging tool maintainers:** We asked each maintainer from Flit, PDM, Hatch, and Poetry to provide feedback on our overviews of their tools
147
-
***[PyPA](https://www.pypa.io/en/latest/) members** who have already developed packaging resources that serve the broader Python community
148
-
***Core scientific Python community members** who are maintaining tools like Matplotlib, Numpy, and Pandas that require more technical complex builds
149
-
***Scientists with varying levels of packaging expertise:** This group is most important as packaging beginners provide the lens of what is confusing and ensure that the technical content is more beginner-friendly.
150
-
The truly collaborative effort of creating the Python packaging guide resulted in a beginner-friendly and accurate guide that the pyOpenSci community now maintains and continuously updates.
146
+
***packaging tool maintainers:** We asked each maintainer from Flit, PDM, Hatch, and Poetry to provide feedback on our overviews of their tools,
147
+
***[PyPA](https://www.pypa.io/en/latest/) members** who have already developed packaging resources that serve the broader Python community,
148
+
***core scientific Python community members** who are maintaining tools like Matplotlib, Numpy, and Pandas that require more technical complex builds, and
149
+
***scientists with varying levels of packaging expertise:** This group is most important as packaging beginners provide the lens of what is confusing and ensure that the technical content is more beginner-friendly.
150
+
The truly collaborative effort of creating the Python Packaging Guide resulted in a beginner-friendly and accurate guide that the pyOpenSci community now maintains and continuously updates.
151
151
152
152
It was essential to have a mix of content reviewers with a range of packaging expertise to make the guide accurate and accessible. Some were packaging experts building packaging tools, and others were beginners, the audience for whom we wrote the guide.
153
153
154
-
### What's in the pyOpenSci Python packaging guide?
154
+
### What's in the pyOpenSci Python Packaging Guide?
155
155
156
156
The pyOpenSci packaging guide provides an overview of the Python packaging ecosystem to support users who want to understand the packaging landscape. These users may want to decide on their own which tools best serve their needs. The guide also defines core packaging terms that can make the ecosystem seem more complex than it is, such as:
*[wheel](https://www.pyopensci.org/python-package-guide/package-structure-code/python-package-distribution-files-sdist-wheel.html#wheel-whl-files), and
Our Python Packaging Guide aims to translate the technical jargon that gets in the way of new users having a successful packaging experience. Over time, we
164
164
hope that this will make packaging less confusing and more accessible to more people.
165
165
166
-
167
166
<figure>
168
-
<ahref="{{ site.baseurl }}/images/python-packaging/"><imgsrc="{{ site.baseurl }}/images/python-packaging/publish-python-package-pypi-conda.png"alt="Diagram that has the pyOpenSci logo in the upper left-hand corner with the pyOS flower. The diagram has four steps for making a package: create package structure, add code, add metadata to pyproject.toml, and finally, pip install package. The four steps are within arrows that point to two building shapes representing the PyPI and conda-forge warehouses. Below each of those steps, represented as storage houses, the code instructions for installing using a package from that warehouse is written out. "></a>
167
+
<ahref="{{ site.baseurl }}/images/python-packaging/"><imgsrc="{{ site.baseurl }}/images/python-packaging/publish-python-package-pypi-conda.png"alt="Diagram that has the pyOpenSci logo in the upper left-hand corner with the pyOS flower. The diagram has four steps for making a package: create package structure, add code, add metadata to pyproject.toml, and finally, pip install package. The four steps are within arrows that point to two building shapes representing the PyPI and conda-forge warehouses. Below each of those steps, represented as storage houses, the code instructions for installing using a package from that warehouse is written out--python -m pip install yourpackage and conda install -c conda-forge yourpackage. "></a>
169
168
<figcaption>Our opinionated Python packaging tutorials demonstrate one way to create a Python package using modern packaging best practices. Through these tutorials, pyOpenSci has reduced the cognitive load for scientists who want to share their code. This graphic represents the steps a user needs to understand to make their code installable and create a basic Python package.</figcaption>
170
169
</figure>
171
170
@@ -177,18 +176,19 @@ hope that this will make packaging less confusing and more accessible to more pe
177
176
<figcaption> This response ratio of most people either struggling to create a package or never having created a Python package before is common when I ask this questions at events. More often than not, people want help learning packaging.</figcaption>
178
177
</figure>
179
178
180
-
In addition to the ecosystem overview provided in the guide, I knew that we needed to have opinionated, complete Python packaging tutorials that guided users through the entire packaging process from
181
-
*[creating a package](https://www.pyopensci.org/python-package-guide/tutorials/installable-code.html) to
182
-
* publishing it on [PyPI](https://www.pyopensci.org/python-package-guide/tutorials/publish-pypi.html) and
In addition to the ecosystem overview provided in the guide, I knew that we needed to have opinionated, complete Python packaging tutorials that guided users through the entire packaging process including:
180
+
181
+
*[creating a package](https://www.pyopensci.org/python-package-guide/tutorials/installable-code.html),
182
+
* publishing it on [PyPI](https://www.pyopensci.org/python-package-guide/tutorials/publish-pypi.html), and
Most scientists (and packaging beginners) want to get the job done; they don't want to become packaging experts. A community presenter made this statement directly at the PyCon US 2023 Python packaging summit:
186
186
187
187
> I just want to create a Python package. Where is the tutorial or
188
188
> documentation that teaches me how to do that?
189
189
{: .highlight-quote }
190
190
191
-
Our Python packaging tutorials went through the same community development and review process as the rest of our Python packaging guide. We have also begun teaching the lessons; most workshop attendees have successfully created their first Python packages!
191
+
Our Python packaging tutorials went through the same community development and review process as the rest of our Python Packaging Guide. We have also begun teaching the lessons; most workshop attendees have successfully created their first Python packages!
192
192
193
193
<figure>
194
194
<a href="{{ site.baseurl }}/images/python-packaging/successfully-created-python-package-scipy-24.png"><img src="{{ site.baseurl }}/images/python-packaging/successfully-created-python-package-scipy-24.png" style="max-width:80%" alt="Another survey result image. The question is: were you able to create a package? 91% responded yes (10 people), 9% (1 person) said no; no one responded 'I'm not sure'"></a>
@@ -209,9 +209,6 @@ I also want to let you know that I got a ton of value out of your materials on t
<!-- # TODO: (dm him to see if he's ok with my quoting him) messaged him 26 Aug. -->
214
-
215
212
In addition to the valuable feedback we receive from our community, the data we collect through [Matomo web analytics](https://matomo.org/) shows our guide's usage and growth.
216
213
I will leave web and social media growth, which have also shown extraordinary growth for future posts!
217
214
@@ -242,7 +239,7 @@ msgstr ""
242
239
"documentación!"
243
240
```
244
241
245
-
Felipe's translation infrastructure contribution has sparked significant community momentum. As I write this, pyOpenSci contributors are actively translating our Python packaging guide into Spanish and Japanese; we have had dozens of pull requests. One contributor may even teach the pyOpenSci Python packaging lessons at [PyCon Japan](https://2024.pycon.jp/en) next year! This entire effort underscores the power of community when guided in the right direction.
242
+
Felipe's translation infrastructure contribution has sparked significant community momentum. As I write this, pyOpenSci contributors are actively translating our Python Packaging Guide into Spanish and Japanese; we have had dozens of pull requests. One contributor may even teach the pyOpenSci Python packaging lessons at [PyCon Japan](https://2024.pycon.jp/en) next year! This entire effort underscores the power of community when guided in the right direction.
246
243
247
244
Our guide is becoming a global resource!
248
245
@@ -268,15 +265,12 @@ Beginner-friendly sprints represent a true win-win for both contributors and pyO
268
265
Community sprints are collaborative coding and documentation update sessions where new and experienced contributors work together on open-source projects. These sprints provide a supportive environment with guidance from project maintainers or experienced developers, helping participants contribute effectively. They are an excellent opportunity for learning, networking, and making meaningful contributions to the open-source community. [You can read more about that here.](https://www.pyopensci.org/blog/pyopensci-pyconus-2024-sprints.html)
269
266
</div>
270
267
271
-
<!-- TODO: UPDATE NUMBERS HERE from https://github.com/orgs/pyOpenSci/projects/12 -->
272
268
273
-
|Meeting|total prs & issues submitted | total contributors|
@@ -318,18 +312,16 @@ Data can help us here, too. Here are a few insights from 93 people who have part
318
312
319
313
Almost half of the participants identify as having some computer science application in their work; 80% self-identify as scientists (as mentioned above).
320
314
321
-
About 50% of our peer review team self-identifies as white. The other help are from a mix of different backgrounds and ethnicities—about 60% of our audience self-identify as male.
315
+
About 40% of our peer review participants identify as female, non binary, or non conforming.
322
316
323
317
#### Open Source metrics
324
318
325
319
Some of the open-source responses surprised me:
326
320
327
-
* 60% of people maintainers have funding to do their work! (*This number surprised me.*)
328
-
* 70% of maintainers report that outside contributors contribute to their projects through issues and pull requests.
329
-
330
-
I'll dedicate another blog post to examining this data more thoroughly. Still, you can get the gist from the above summary: We have a strong representation of people from different backgrounds and career stages. However, we still need to do more to support increased gender diversity.
321
+
***60% of people maintainers have funding** to do their work! (*This number surprised me given the challenges I have seen in funding open source work.*), and
322
+
***70% of maintainers** report that outside contributors contribute to their projects through issues and pull requests.
331
323
332
-
I'm confident that we'll get there.
324
+
I'll dedicate another blog post to examining this data more thoroughly. Still, you can get the gist from the above summary: We have a strong representation of people from different career stages. However, we still need to do more to support increased gender and identity diversity.
333
325
334
326
## A thoughtful, kind, and supportive community is what makes pyOpenSci special
335
327
@@ -379,10 +371,10 @@ These paid events will support the low-cost training, event scholarships, free o
379
371
## What's next for pyOpenSci - The Road Ahead
380
372
Our next training event is the inaugural pyOpenSci Fall Festival--a week-long event that teaches skills needed to:
381
373
382
-
*Write cleaner, more modular code,
383
-
*Package and share code,
384
-
*Publish and cite code,
385
-
*Create reproducible reports that connect code, data, and outputs into a dynamically produced interactive publication
374
+
*write cleaner, more modular code,
375
+
*package and share code,
376
+
*publish and cite code, and
377
+
*create reproducible reports that connect code, data, and outputs into a dynamically produced interactive publication.
386
378
387
379
We also will develop collaborative GitHub lessons following the BSSw fellowship I received this year.
If you are on LinkedIn, you should [subscribe to our newsletter, too](https://www.linkedin.com/newsletters/7179551305344933888/?displayConfirmation=true).
407
400
408
401
<divclass = "notice"markdown="1">
409
402
## About Me
410
403
My name is Leah, and I'm the executive director and founder of pyOpenSci. I have over 20 years of experience in both academic and nonprofit spaces and have dedicated my career to helping scientists overcome the challenges of open science. I've built and led two successful data science programs:
411
404
412
-
1.**NEON Data Skills Program** at NEON
413
-
2.**Earth Analytics Program** at CU Boulder
405
+
1.**NEON Data Skills Program** at NEON, and
406
+
2.**Earth Analytics Program** at CU Boulder.
414
407
415
408
I'm now building **pyOpenSci**--a vibrant, active, and diverse community of practice that supports open science and the open-source software that drives that science.
0 commit comments