|
| 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 | + |
| 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