Skip to content

Commit 5dda2f5

Browse files
authored
feat(blog): add bssw blog to site
2 parents 7737a96 + 5f1b9ac commit 5dda2f5

4 files changed

+135
-5
lines changed

README.md

+7-5
Original file line numberDiff line numberDiff line change
@@ -53,16 +53,16 @@ For MAC:
5353
Linux:
5454
`sudo apt-get install imagemagick`
5555

56-
You can convert a directory of PNG images associated with a
57-
blog post that you write using:
56+
You can convert a directory of `.png` images associated with a
57+
blog post that you write using the following bash command:
5858

5959
`for file in *.png; do cwebp "$file" -o "${file%.*}.webp"; done`
6060

61-
or a single image
61+
or you can convert a single image:
6262

6363
`cwebp input-image.png -o output-image.webp`
6464

65-
Below is an example of adding a figure to a post that has both webp and .png formats to support older and newer browsers.
65+
Below is an example of how to add figure to a post that supports both `.webp` and `.png` formats. Providing both allows the website to be backwards-compatible with older browsers.
6666

6767
```html
6868
<figure>
@@ -74,10 +74,12 @@ Below is an example of adding a figure to a post that has both webp and .png for
7474
```
7575
## How to update blog post last_updated field
7676

77-
We have a script that will automatically update the last_updated field for all of our blog posts. To run it use:
77+
We have a bash script that will automatically update the `last_updated` field in the YAML for all of our blog posts. To run it use:
7878

7979
`./scripts/date-updated.sh`
8080

81+
Note: it would be nice to add this into our CI build but right now we do not have that setup. So we just need to run this script periodically to update the `last_updated` field when we update a blog post.
82+
8183
## Contributors ✨
8284

8385
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
---
2+
layout: single
3+
title: "Contribute to Open Source Software: It's More Than just Code"
4+
excerpt: "Contributing to open source isn’t just about code—it’s also about navigating social norms. Discover pyOpenSci’s new Contribute to Open Source lessons, which cover both the technical and social aspects, and are free for anyone to use."
5+
author: "Leah Wasser"
6+
permalink: /blog/contribute-to-open-source-lessons.html
7+
header:
8+
overlay_image: images/headers/pyopensci-inessa.png
9+
overlay_filter: rgba(20, 13, 36, 0.3)
10+
categories:
11+
- blog-post
12+
- community
13+
- contribute-to-open-source
14+
classes: wide
15+
toc: true
16+
comments: true
17+
last_modified: 2025-03-11
18+
---
19+
20+
21+
## Beyond code: the social side of open source
22+
23+
When you think about contributing to open source, you might assume the biggest hurdle for newcomers is technical--learning Git, using GitHub, and/or writing code. Most contribute to open source guides focus on technical skills. But for many new contributors, the challenge isn’t only technical—it’s social too.
24+
25+
Receiving open feedback on your contributions in the form of code review, whether code or documentation, [creates anxiety for many](https://osf.io/preprints/psyarxiv/8k5a4_v1).
26+
27+
- <i class="fas fa-user-plus" style="color:#81c0aa;"></i> **Joining an unfamiliar community:** Understanding who to reach out to and how the project operates can feel intimidating.
28+
- <i class="fas fa-comments" style="color:#81c0aa;"></i> **Understanding unspoken norms:** Every project has its own culture, from how discussions happen to how decisions are made. And these norms are not always well-documented.
29+
- <i class="fas fa-handshake" style="color:#81c0aa;"></i> **Building confidence in a new space:** Many contributors worry about making mistakes, be it while using GitHub or submitting a Pull Request or even in the content updates themselves.
30+
- <i class="fas fa-exclamation-circle" style="color:#81c0aa;"></i> **Navigating constructive feedback** – Open source is built on open peer review; however, receiving public feedback on a contribution can be intimidating.
31+
32+
33+
In my 10+ years of building and maintaining software, contributing to projects, and running beginner-friendly sprints, I’ve seen firsthand that communication, collaboration, and project culture are just as—if not more—important than technical skills. I've also experienced the imposter syndrome first-hand. I was nervous about my first contributions and wasn't sure how to start contributing in a meaningful way.
34+
35+
**Technical and social skills go hand in hand.** Open source communities are most productive when contributors and maintainers recognize this balance between the technical and social skills associated with contributing. In most cases, all of the people involved in the project are volunteers with varying priorities, skillsets, and motivations to participate.
36+
{: .notice .notice--info}
37+
38+
### Developing our contribute to open source lessons
39+
40+
This past year, with support from the [Better Software for Science (BSSw) Fellowship](https://bssw.io/fellows/leah-wasser), I developed lessons shaped by insights gained from the [pyOpenSci contributor community](https://www.pyopensci.org/our-community/index.html). Our lessons are now freely available as open educational resources designed to help contributors and maintainers foster a more welcoming, collaborative and productive open source community.
41+
42+
<a href="https://www.pyopensci.org/lessons/contribute-open-source/index.html" class="btn btn--success">Check out our lessons now.</a>
43+
44+
> BSSw is a unique partnership between the National Science Foundation (NSF) and the Department of Energy (DOE) that provides small grants to advocates in the scientific open source space.
45+
{: .notice }
46+
47+
### A community-driven approach to open source
48+
49+
Over the past two years, **pyOpenSci has welcomed over 300 contributors**, with more than **120 issues and pull requests** submitted during our [beginner-friendly sprints](/blog/pyopensci-pyconus-2024-sprints.html). These experiences reinforced what we already knew—technical skills are just one part of people successfully contributing to open source.
50+
51+
Through our sprints, we saw firsthand how **clear guidance, supportive communities, and transparent contribution processes** helps newcomers gain confidence. Often, they stick around our community after the events. These insights shaped our *Contribute to Open Source* lessons.
52+
53+
## Beyond code: The social skills of open source
54+
55+
Our lessons address both the technical and social aspects of contributing to open source.
56+
57+
### For contributors: how to navigate your first contribution
58+
59+
For contributors, we focus on:
60+
1. Understanding the technical steps surrounding making your first contribution
61+
2. Signals that tell you that a project welcomes newcomers and,
62+
3. What to expect as they navigate their first contributions.
63+
64+
A few highlights include:
65+
66+
- <i class="fas fa-book" style="color:#81c0aa;"></i> **[Get to know a repository](https://www.pyopensci.org/lessons/contribute-open-source/get-to-know-repo.html):** Learn how to look for documentation files like `CONTRIBUTING` and `DEVELOPMENT` guides that will become your guiding light in making your first contributions. These files should help you understand whether new contributions are welcome, what the contribution process is, and what types of contributions are welcome.
67+
- <i class="fas fa-search" style="color:#81c0aa;"></i> **[Find and understand issues](https://www.pyopensci.org/lessons/contribute-open-source/identify-issue.html):** Explore how to search and create GitHub issues as you begin the process of finding a task to work on. Learn how to communicate effectively with maintainers who you may have never interacted with before.
68+
- <i class="fas fa-code-branch" style="color:#81c0aa;"></i> **[Create effective pull requests](https://www.pyopensci.org/lessons/contribute-open-source/pull-request.html):** Learn how to open a pull request, write clear pull request messages titles and descriptions. Also, learn how to make the pull request process more efficient by reviewing your own work and linking your PR to an issue to streamline maintainer review.
69+
70+
### For Maintainers: Creating a contributor-friendly repository
71+
72+
While these lessons are focused on contributing, we also provide some maintainer tips to help set clear expectations for contributors:
73+
74+
- <i class="fas fa-comments" style="color:#81c0aa;"></i> **Communicate your availability:** Let contributors know if you have time to support them. It’s okay if you're busy—just set clear expectations!
75+
- <i class="fas fa-file-alt" style="color:#81c0aa;"></i> **Provide clear guidelines:** Add `CODE_OF_CONDUCT`, `CONTRIBUTING`, and `DEVELOPMENT` files to define what contributions you welcome and how contributors should engage with your project.
76+
- <i class="fas fa-tools" style="color:#81c0aa;"></i> **Use automation to support contributors:** Tools like [pre-commit.ci](https://pre-commit.ci/) help automate formatting and linting, reducing friction for new contributors.
77+
78+
## Co-Creating open source contribution lessons
79+
80+
Our *Contribute to Open Source* lessons, like all pyOpenSci resources, are co-developed collaboratively. By bringing together contributors with different backgrounds and skill levels, we ensure our materials are clear, accurate, and welcoming.
81+
82+
A diverse contributor base makes our lessons stronger:
83+
* <i class="fas fa-microscope" style="color:#81c0aa;"></i> **Experts** provide technical accuracy.
84+
* <i class="fas fa-user-graduate" style="color:#81c0aa;"></i> **Beginners** ensure content is approachable.
85+
* <i class="fas fa-users" style="color:#81c0aa;"></i> **Everyone in between** help refine and improve the content.
86+
87+
This same community-driven approach shaped our [packaging guide](https://www.pyopensci.org/python-package-guide/), which covers [packaging tools](https://www.pyopensci.org/python-package-guide/package-structure-code/python-package-build-tools.html) and [tutorials](https://www.pyopensci.org/python-package-guide/tutorials/intro.html). Like our lessons, it was co-developed and openly reviewed to ensure accessibility and clarity.
88+
89+
<figure>
90+
<picture>
91+
<source srcset="/images/peer-review/co-development-open-education.webp" type="image/webp">
92+
<img src="/images/peer-review/co-development-open-education.png" alt="A diagram illustrating the co-development of open lessons by pyOpenSci. The diagram consists of a circular section divided into five segments labeled ‘Maintainers,’ ‘Beginners,’ ‘Experts,’ ‘Researchers,’ and ‘Contributors,’ surrounding a central section labeled ‘Moderation.’ An arrow extends from the circle to the right, labeled with key moderation activities such as ‘Listen,’ ‘Moderate,’ ‘Facilitate,’ ‘Structured review,’ and ‘Code of Conduct,’ leading to ‘Accessible Lessons.’ The background features a subtle floral pattern.">
93+
</picture>
94+
</figure>
95+
96+
By openly co-developing and refining these resources together, we’re making scientific open source more accessible for everyone.
97+
98+
## What's next? Broadening participation in open source
99+
100+
With [PyCon US](https://us.pycon.org/2025/) and SciPy on the horizon, we’re excited to put these lessons into action. At our upcoming sprints, we’ll work together to **refine these resources—improving the lessons and packaging guide to make participating open source even more accessible.** If you plan to be at either meeting, keep an eye out for pyOpenSci events!
101+
102+
<div class="notice" markdown="1">
103+
104+
## <i class="fa-solid fa-users-line"></i> Connect with us!
105+
106+
There are lots of ways to get involved if you are interested!
107+
108+
* If you read through our lessons and want to suggest changes, open an issue in our [lessons repository here](https://github.com/pyOpenSci/lessons)
109+
* [Volunteer to be a reviewer for pyOpenSci's software review process](https://forms.gle/GHfxvmS47nQFDcBM6)
110+
* [Submit a scientific Python package to pyOpenSci for peer review](https://www.pyopensci.org/software-peer-review/how-to/author-guide.html#submit-your-package-for-peer-review)
111+
* [Donate to pyOpenSci](https://give.communityin.org/pyopensci_2024) to support scholarships for future training events and the development of new learning content.
112+
* Check out our [volunteer page](/volunteer.html) for other ways to get involved.
113+
114+
You can also:
115+
116+
* Keep an eye on our [events page](/events.html) for upcoming training events.
117+
118+
Follow us on social platforms:
119+
120+
* [<i class="fa-brands fa-discourse" style="color:#81c0aa;"></i> Discourse](https://pyopensci.discourse.group/)
121+
* [<i class="fa-brands fa-mastodon" style="color:#81c0aa;"></i> Mastodon](https://fosstodon.org/@pyopensci)
122+
* [<i class="fa-solid fa-cloud" style="color:#81c0aa;"></i> Bluesky](https://bsky.app/profile/pyopensci.bsky.social)
123+
* [<i class="fa-brands fa-linkedin" style="color:#81c0aa;"></i> LinkedIn](https://www.linkedin.com/company/pyopensci)
124+
* [<i class="fa-brands fa-github" style="color:#81c0aa;"></i> GitHub](https://github.com/pyOpenSci)
125+
126+
If you are on LinkedIn, check out and [subscribe to our newsletter, too](https://www.linkedin.com/newsletters/7179551305344933888/?displayConfirmation=true).
127+
128+
</div>
Loading
Binary file not shown.

0 commit comments

Comments
 (0)