Skip to content

Commit 02a8afa

Browse files
Adding blogpost about the psf grant in English (#56)
1 parent 68986be commit 02a8afa

File tree

1 file changed

+238
-0
lines changed

1 file changed

+238
-0
lines changed
Lines changed: 238 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,238 @@
1+
---
2+
title: "PSF funding open source projects development: SciCookie"
3+
slug: psf-funding-open-source-projects-development-scicookie
4+
date: 2023-09-22
5+
author: Anavelyz Perez, Yurely Camacho
6+
tags: [psf, osl, scicookie, grant, community, collaboration, development]
7+
categories: [open source, software development, python]
8+
9+
draft: false
10+
usePageBundles: true
11+
thumbnail: "/header.svg"
12+
featureImage: "/header.svg"
13+
---
14+
15+
16+
<!-- # PSF funding open source projects development: SciCookie -->
17+
<!-- **By Anavelyz Perez & Yurely Camacho** -->
18+
19+
In this article, we will share our experience in applying for and
20+
executing a Python Software Foundation (PSF) grant on behalf of Open
21+
Science Labs (OSL), submitted between January and February 2023. The
22+
proposal was submitted to contribute to the development and maintenance
23+
of SciCookie, a Python tool within the [OSL incubation
24+
projects](https://opensciencelabs.org/programs/incubator/).
25+
26+
We'll begin by introducing SciCookie, highlighting its key features and
27+
aspects that might interest you. Then, we'll go over the grant
28+
application process and share our reflections on the experience, along
29+
with the lessons we learned.
30+
31+
## What is SciCookie?
32+
33+
As we mentioned at the beginning, SciCookie is a Python tool designed to
34+
provide a Python project template. Its main goals are to simplify the
35+
process of creating your projects and save you a considerable amount of
36+
time because, according to your needs and planning, it gives you a
37+
starting point for the configuration of your project. SciCookie provides
38+
several tools that are as up-to-date as possible and adheres to
39+
community standards.
40+
41+
SciCookie is mainly based on PyOpenSci recommendations regarding the
42+
tools, libraries, best practices and workflows employed by the
43+
significant Python scientific groups. The elements we mention are listed
44+
as options, which means that you can adapt various approaches in your
45+
project, through a text interface (TUI) provided by SciCookie.
46+
47+
SciCookie is available from [PyPI](https://pypi.org/project/scicookie/)
48+
and [conda](https://anaconda.org/conda-forge/scicookie). You can also
49+
visit its repository at
50+
[GitHub](https://github.com/osl-incubator/scicookie).
51+
52+
Now that you know a bit about this project, let's tell you about PSF and
53+
how it supports the Python community.
54+
55+
## What is PSF and how does it support the Python community?
56+
57+
The Python Software Foundation (PSF) is an organization dedicated to
58+
the advancement and improvement of open source technologies. Its mission
59+
is to promote, protect and advance the Python programming language. In
60+
addition, it supports and facilitates the development/growth of the
61+
Python developers community; a diverse and international community.
62+
63+
Among the programs that PSF promotes to achieve its mission, there is a
64+
*Grants Program*, where proposals for projects related to the
65+
development of Python, technologies associated with this programming
66+
language and educational resources, are welcome. Since the creation of
67+
the program, PSF has supported several interesting projects, you can
68+
click [here](https://www.python.org/psf/records/board/resolutions/) to
69+
see the list or have a clearer notion of the proposals, and maybe you
70+
will be encouraged to apply with new projects or ideas.
71+
72+
You should know that the PSF in the grants program evaluates a number of
73+
aspects in each proposal, including the usefulness of the project and
74+
the impact on the Python community. In case you want to know more, we
75+
recommend you visit the space that PSF has on its website for the
76+
[grants program](https://www.python.org/psf/grants/).
77+
78+
So far, we have given you a brief overview of the main aspects of the
79+
two parties involved: SciCookie and PSF. We will continue by telling you
80+
about the grant application, what motivated us, the arranging and
81+
assigning tasks.
82+
83+
## What was the grant application process like?
84+
85+
The PSF grant application process was a long and challenging, but also
86+
very rewarding. It began with careful planning and research. We studied
87+
the needs of the scientific community and found a project that could
88+
help meet those needs. In other words, we build on a strong case for the
89+
grant.
90+
91+
We were studying the different projects within the Open Science Labs
92+
incubation program; where there are a series of approaches and
93+
technologies implemented, including Python projects associated with
94+
DevOps, Data Science, and scientific projects. The option that was best
95+
suited to apply for the grant in our case was SciCookie; because it is a
96+
very useful tool and is focused on helping the Python community.
97+
98+
After completing the planning and research, we began the formal
99+
application process. This included completing an online form and
100+
submitting a detailed proposal. The proposal contains a project
101+
description, timeline, budget and impact section. In our case and in
102+
order to review each aspect carefully, we produced a [file with the
103+
responses](https://github.com/OpenScienceLabs/grant-proposals/blob/96263f736e7f36eb22a3dd1baa16376fd1782e98/psf_proposal.md)
104+
[1] and filled in the budget scheme (template provided by the PSF).
105+
This process was done under the advice of the OSL Steering Council.
106+
107+
In addition to the above, a series of issues were created and edited in
108+
the project repository, in order to be clear about the activities to be
109+
carried out and the time it would take to develop them in case the
110+
proposal was approved.
111+
112+
Once we had submitted our proposal, we had to wait some months for a
113+
decision. It was a period of great uncertainty, but finally we received
114+
the news that our proposal had been accepted!
115+
116+
## How was the workflow?
117+
118+
With the PSF grant, we were able to start developing and maintaining
119+
SciCookie part-time. We worked with some community developers to add new
120+
features, improve documentation and fix bugs. This included the creation
121+
of a [user
122+
guide](https://github.com/osl-incubator/scicookie/blob/main/docs/guide.md)
123+
to help enthusiasts and developers to use SciCookie.
124+
125+
In terms of task specification, as we described in the previous section,
126+
a series of issues were generated in the project repository, and each
127+
one of us handled some of the issues on a weekly basis via Pull Requests
128+
(PRs). These were approved by members of the Open Science Labs team, who
129+
were also on hand throughout the execution of the proposal.
130+
131+
Being a bit more specific about the follow-up, we had from an initial
132+
meeting where we discussed the fundamental aspects of the project and
133+
set up what was necessary to carry it out, to weekly meetings to present
134+
our progress, to check if we had any obstacles or doubts that did not
135+
allow us to move forward. Likewise, each PR was reviewed and if there
136+
were any observations, we had feedback on this.
137+
138+
In summary, we can tell you that it was quite a dynamic workflow, where
139+
a friendly space was built and allowed us to learn a lot.
140+
141+
![Flujo de trabajo](workflow.png)
142+
143+
> We would like to take this opportunity to thank [Ivan
144+
> Ogasawara](https://github.com/xmnlab) and to [Ever
145+
> Vino](https://github.com/EverVino), for their time and dedication.
146+
> Both are active members of OSL and members of the steering council;
147+
> they were there to support us and clarify our questions.
148+
149+
Here we tell you about our experience and the collaboration phase.
150+
151+
## How was our learning process?
152+
153+
SciCookie provided us, for the first time, with the opportunity to make
154+
such a significant contribution to an open science and open source
155+
project. It also allowed us to acquire new knowledge about some aspects
156+
and technologies linked to the Python programming language, since at
157+
that time, our knowledge was more oriented to the use of libraries,
158+
objects, loops, among others.
159+
160+
About this learning process we can tell you that we did not know many
161+
things and it was necessary to learn along the way, sometimes this was a
162+
bit challenging but, in general, very profitable. Among the anecdotes
163+
that we rescued is that, a couple of times, we "exploded" the code and
164+
we didn't know why; the cause was that we didn't know the exact use of
165+
single or double quotes, double braces, spaces or tabs within the
166+
template. But then we were able to move forward and we even made
167+
improvements in the workflow of the project.
168+
169+
Regarding the latter, we can certainly tell you that learning curves are
170+
always steep. At the beginning you see everything uphill, but when you
171+
are familiar with the technology and the tools, everything becomes
172+
easier. Daring is always the first step.
173+
174+
On the other hand, if you are interested in collaborating on open source
175+
projects, it is vital to have basic knowledge of Git and GitHub version
176+
control tools, and to understand their essential commands such as git
177+
pull, git push, git rebase, git log, git stash, among others. You may
178+
also need knowledge of conda and poetry. We also learned a bit of jinja2
179+
and make, and reviewed knowledge of function creation, conditional
180+
evaluation, GitHub workflow, documentation aspects and some of the
181+
technologies associated with it.
182+
183+
In summary, the experience of applying for and executing a PSF grant was
184+
a valuable experience. We learned a lot about the process, how to
185+
develop and maintain a Python tool, what structure a Python library or
186+
package project should have, and how to build a community around an open
187+
source project. We are also grateful for the support of the PSF, which
188+
has allowed us to make a contribution to SciCookie. We feel satisfied
189+
with the work we have done and are excited about the future of this
190+
tool.
191+
192+
To all that we have told you, we add an invitation to collaborate on
193+
open source or open science projects and, if you have already done so,
194+
we encourage you to continue to do so. We were often motivated by seeing
195+
our PRs being approved, we shared feelings of achievement and new
196+
challenges and, most importantly, we were applying what open source
197+
promotes: small collaborations make big changes and add to the projects,
198+
achieving good and useful results.
199+
200+
After all this, you may wonder about the barriers to collaboration. We
201+
dedicate the following lines to describe what we rescued from our
202+
experience.
203+
204+
## Can you find barriers to collaboration?
205+
206+
The progress of your contributions depends on you. It is vital to ask
207+
questions and not get bogged down by doubts. Often there is someone who
208+
can show you that the problem you thought was big was simply a small
209+
one, perhaps the code didn't work because it was single quotes instead
210+
of double quotes, for example.
211+
212+
From the OSL community we can highlight that it focuses on creating
213+
friendly, opportunity-filled spaces where you can share and acquire new
214+
knowledge, eliminating barriers and discrimination. Perhaps you can find
215+
these same characteristics in other open science and/or open source
216+
projects.
217+
218+
That's why we want to invite you again to support and join the diverse
219+
Python and open source community. It's an excellent experience and the
220+
fact of contributing to something that can be useful to other people is
221+
quite satisfying.
222+
223+
In general, collaborating on open source projects is a great way to
224+
improve your programming skills, you also have the opportunity to work
225+
with other developers and learn from them, get feedback on your work. If
226+
you want to support or boost your project, the first thing to do is to
227+
get started. Many communities are open to new contributions and
228+
innovative ideas.
229+
230+
Leave us your comments if you want to know more about what we have told
231+
you in this space :D
232+
233+
[1] **Additional note**: SciCookie originally went by the name of
234+
cookiecutter-python and then renamed to osl-python-template.
235+
236+
<small size="0">Graphic elements of the cover were extracted from [Work
237+
illustrations by Storyset](https://storyset.com/work), and then edited
238+
to conform to the article.</small>

0 commit comments

Comments
 (0)