|
| 1 | +Title: Write up of the NumFOCUS grant to improve pandas benchmarks and diversity |
| 2 | +Date: 2022-04-01 |
| 3 | + |
| 4 | +# Write up of the NumFOCUS grant to improve pandas benchmarks and diversity |
| 5 | + |
| 6 | +*By Lucy Jiménez and Dorothy Kabarozi B.* |
| 7 | + |
| 8 | +We want to share our experience working on **Improvements to the** |
| 9 | +**ASV benchmarking framework and diversity efforts** sponsored by |
| 10 | +[NumFOCUS](https://numfocus.org/) to the [pandas](https://pandas.pydata.org/) |
| 11 | +project. |
| 12 | + |
| 13 | +This grant focused on two aspects: the first one is to improve the |
| 14 | +[asv library](https://asv.readthedocs.io/en/stable/), a tool used by |
| 15 | +benchmarking Python packages and used by pandas; this project was |
| 16 | +unmaintained, and the codebase was quite old; additionally, it didn't |
| 17 | +adhere to modern standards, had Python 2 compatibility code that could |
| 18 | +be removed, and also the CI could be improved. The second aspect is |
| 19 | +encouraging more underrepresented groups to contribute to open source |
| 20 | +projects. This grant was held over 10 weeks, working around 20 hours a |
| 21 | +week. It was developed by Dorothy Kabarozi B. from Uganda and Lucy |
| 22 | +Jiménez from Colombia, under the mentoring of Marc Garcia. |
| 23 | + |
| 24 | +## Why were we part of the grant? |
| 25 | + |
| 26 | +Even when we come from different backgrounds, Dorothy from systems |
| 27 | +engineering and Lucy from computational chemistry, we have always been |
| 28 | +interested in participating and contributing to open source software |
| 29 | +projects. For that reason, we have been running the PyLadies meetups in |
| 30 | +our communities ([PyLadies Kampala](https://twitter.com/pyladieskla), |
| 31 | +[PyLadies Colombia](https://twitter.com/pyladies_co)) and have always |
| 32 | +been on the lookout for any opportunities that lead us to contribute. |
| 33 | + |
| 34 | +It all happened through Marc Garcia; he had put out a call through a post |
| 35 | +on social media to mentor ladies from diverse backgrounds. Dorothy got to |
| 36 | +be part of the pandas mentorship group. At the same time, Lucy was |
| 37 | +co-organizer of the SciPy Latam conference, and it is from here she met |
| 38 | +Marc, who was the speaker at that conference, and through this mutual |
| 39 | +connection, we were able to learn about this benchmarks grant. |
| 40 | + |
| 41 | +In brief, by attending conferences, meetups, and social media, you can |
| 42 | +make connections and links that will lead you to these opportunities. |
| 43 | + |
| 44 | +## Learning from the source code |
| 45 | + |
| 46 | +At the beginning of the grant, we started from the basics. We noticed that |
| 47 | +we could improve our skills in managing Git and GitHub. For example, we had |
| 48 | +some troubles with the git workflow, so we had to read and practice more |
| 49 | +about it. One of the valuable resources was the explanation from Marc about |
| 50 | +[how to make an open source contribution](https://tubedu.org/w/kjnHEg72j76StmSFmjzbnE), |
| 51 | +which we invite you to take a look at it. |
| 52 | + |
| 53 | +We learned a lot from the source code and gained immense knowledge about |
| 54 | +best practices and code quality through this grant. We have been working |
| 55 | +on: updating the code to improve the style to follow the PEP-8 guidelines, |
| 56 | +removing Python 2 compatibility code and six dependencies, and finding |
| 57 | +unused code and removing it. We also learned about GitHub actions, and we |
| 58 | +started building the CI on GitHub actions for the asv package; for that we |
| 59 | +have been working on add linting with Flake8, testing with pytest, building |
| 60 | +docs, and running CI on different python versions. |
| 61 | + |
| 62 | +Additionally, we were able to identify bugs in the source code, review |
| 63 | +pull request from other contributors, and create new issues, something we |
| 64 | +thought only maintainers could do but not contributors. Finally, not only |
| 65 | +is reviewing the code itself a learning experience, but also the structure |
| 66 | +and folder hierarchy in the project started to be more transparent. |
| 67 | + |
| 68 | +## Our experience |
| 69 | + |
| 70 | +For this grant, we had a fantastic Mentor, Marc Garcia. He was always |
| 71 | +willing to share his knowledge, explain unclear concepts and share helpful |
| 72 | +feedback. Whenever we would implement that feedback, it felt easier to work |
| 73 | +on more issues faster. We felt the growth from the time we started on this |
| 74 | +project, and we will carry it along as we contribute to more open source |
| 75 | +projects; this all goes back to Marc for his fantastic mentorship. It is |
| 76 | +also important to note that we received feedback from other contributors, |
| 77 | +stakeholders, and core devs during this process, which gave us a broader |
| 78 | +look at the work in open source projects. |
| 79 | + |
| 80 | +We also built a strong teamwork partnership. We helped each other a lot as |
| 81 | +we had numerous one-on-one calls to understand the tasks better. We always |
| 82 | +looked for ways to support each other from the technical side and encouraged |
| 83 | +each other when needed. For us, it was professional and human growth. |
| 84 | + |
| 85 | +## Running an open source software sprint |
| 86 | + |
| 87 | +The knowledge and experience acquired in this process allowed us to |
| 88 | +organize two virtual sprints. The events were carried out in the company |
| 89 | +of local PyLadies communities; the first one was on February 26th with |
| 90 | +[PyLadies Kampala](https://twitter.com/pyladieskla) and on March 21 |
| 91 | +with [PyLadies Colombia](https://bit.ly/sprint-asv). |
| 92 | + |
| 93 | +While organizing these events, we learned how to organize and conduct a |
| 94 | +virtual sprint. Some participants in the sprint ultimately had no idea |
| 95 | +about open source, and it was great explaining open source concepts and |
| 96 | +taking them through the Git workflow. Finally, they were able to make their |
| 97 | +first contribution. We learned how to follow up on contributors, helping |
| 98 | +them along the way until their PRs were merged and by reviewing their |
| 99 | +contributions on GitHub. |
| 100 | + |
| 101 | +The most outstanding achievement was mentoring new contributors and |
| 102 | +sharing the knowledge acquired from this grant with others participants |
| 103 | +in our respective communities. Most new contributors after the experience |
| 104 | +have gone ahead to apply for outreach and the upcoming |
| 105 | +[Google Summer of Code](https://summerofcode.withgoogle.com/) |
| 106 | +to apply the skills they learned from these sprints. |
| 107 | + |
| 108 | +## Conclusion |
| 109 | + |
| 110 | +In conclusion, we learned a lot from this experience from the code part, |
| 111 | +the workflow on the open source projects, how to be resilient in difficult |
| 112 | +moments, and encouraging more women and people from our local communities |
| 113 | +to contribute to open source projects. |
| 114 | + |
| 115 | +Finally, if you want to be part of an open source project, we invite you |
| 116 | +to check out GitHub repos for different projects you are interested in and |
| 117 | +search for the easy issues to work on and get started. Also, you can contact |
| 118 | +the maintainers of the projects with specific questions, search for the |
| 119 | +open source communities in your country or contact us for more help. |
| 120 | + |
| 121 | +## Acknowledgments |
| 122 | + |
| 123 | +Many thanks to [NumFOCUS](https://numfocus.org/) for giving us this support |
| 124 | +through [Small Development Grants](https://numfocus.org/programs/small-development-grants) |
| 125 | +and Marc for the excellent mentoring he generously gave us throughout these |
| 126 | +weeks. |
| 127 | + |
| 128 | +We are looking forward to contributing more and impacting our communities |
| 129 | +and the open source community! |
| 130 | + |
| 131 | +___ |
| 132 | +If you want to know more, please don't hesitate to connect with us through |
| 133 | +these channels: |
| 134 | + |
| 135 | +*Lucy Jiménez* |
| 136 | +* [Twitter](https://twitter.com/JimenezLucyJ) |
| 137 | +* [LinkedIn](https://www.linkedin.com/in/lucy-j/) |
| 138 | + |
| 139 | +*Dorothy Kabarozi* |
| 140 | +* [Twitter](https://twitter.com/kizdorothy) |
| 141 | +* [LinkedIn](https://www.linkedin.com/in/dorothy-kabarozi/) |
0 commit comments