Skip to content
Extraits de code Groupes Projets
Valider 43546776 rédigé par Lionel Dricot's avatar Lionel Dricot
Parcourir les fichiers

Merge branch 'master' into 'master'

Add report Delphine van Rossum

See merge request ldricot/lingi2401!352
parents fa455d64 ee08fadf
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
# **LINFO2401 project report - Contributing to an Open Source project**
| **Author** | Delphine van Rossum |
| ----------------------- | -------------------------------------------------------------------------------|
| **Date** | 10/11/2024 |
| **NOMA** | 81352000 |
| **Academic Year** | 2024-2025 |
| **Open Source Project** | [Anki-Android](https://github.com/ankidroid/Anki-Android) |
| **Pull request made** | [Fixed some Android Studio warnings #17285](https://github.com/ankidroid/Anki-Android/pull/17285) |
| **License** | [GPL-3.0 license](https://github.com/ankidroid/Anki-Android/blob/main/COPYING)|
## **The project**
Anki is a flashcard application designed to help memorization with spaced repetition. It can be used to study pretty much anything, helping users retain information more effectively over time, using active recall.
## **Motivation**
I started using Anki around 2021 after watching a video by [Ali Abdaal](https://www.youtube.com/@aliabdaal) about studying more effectively through active recall and spaced repetition. He spoke highly of Anki, and so made me want to try it. Since then, it’s become a key tool in my way to study my courses. I mainly use the desktop app to create and organize cards, while I use the mobile app to study them.
While looking for an open-source project to contribute to for this course, I thought, why not look at the Anki project, since it’s a project I’m really grateful to use and rely on in my studies. I went to the GitHub project and saw that [Anki-Android](https://github.com/ankidroid/Anki-Android) had a lot of active issues, well organized and tagged with tags such as "Good First Issue!", "Bug", "Priority-High", and "Help Wanted." The project seems pretty active, so I decided to use this project for my contribution for this course.
## **Contribution Process**
I started by reading the Development Guide to understand where to begin. I noticed there was a label on issues called "Good First Issue!", so I decided to look at those. However, most of them were already assigned to someone else, which seems to be the case for almost all the issues, so I struggled to find an available issue to work on. The guide mentioned a Discord community where contributors can get help, so I reached out there. The community was very responsive and redirected me to an open issue, [[Cleanup]: Fix Android Studio Warnings #13282](https://github.com/ankidroid/Anki-Android/issues/13282).
I spent quite some time setting up the project and running tests before I could start coding. At first, I had the wrong JVM version, then I ran into memory issues, and later, when I tried to run the tests, they were all skipped for some reason. Finally, once I was ready to code, I checked the Android Studio Warnings and saw there were thousands of errors and warnings.
The issue description specified that only one pull request would be accepted per person, so I thought a larger contribution might be expected. If everyone only contributed a small part, I figured they might never reach their goal of zero warnings. I began with the naming conventions, which covered around 60 warnings. After completing the naming convention fixes, I was worried that if I continued and my contribution was rejected, I wouldn’t have enough time to start another contribution before the end of the semester. So I cleaned all the naming conventions and did a pull request.
They answered really quickly, the same day I already got a feedback on my contribution. That’s when I realized I've made some more mistakes. This issue was actually meant to be a small one, to help onboard new contributors, ensure they could build and test the project, and give them a quick confidence boost by having a first small contribution accepted. They were expecting a small pull request with changes to around 1–3 files, easy to review, but my pull request touched around 40 files. They kindly said that, since the work was already done, they would accept it, but it would take longer to review. They pointed out a some wanted corrections, which I then made, and then a second reviewer gave me feedback the following day. After addressing those changes, they asked me to squash my commits to make it easier to merge, and finally, my pull request was merged. (It was tagged "Accepted for Hacktoberfest," which gave me a nice ego boost.)
Although I made a few mistakes, the maintainers were incredibly nice and responded much faster than I expected. I’m really happy with my choice of project, it was a great introduction to contributing to an open-source project.
## **Conclusion**
I've learned that contributing to an open-source project can provide a great confidence boost, especially when you see your code accepted and merged into the project. I've also realized that contributing to a large project often means you’ll spend a lot of time just setting up the environment and getting everything to run properly before can you even start to code.
I've also learned the importance of checking with maintainers before diving into extensive changes.
Another lessons I learned is that open-source communities are very welcoming (they don’t "bite"!).
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter