Skip to content
Extraits de code Groupes Projets
Valider 5bb14a24 rédigé par Emilie Gouthière's avatar Emilie Gouthière
Parcourir les fichiers

Report Emilie Gouthière

parent bcfce172
Branches master
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** | Emilie Gouthière
|
| ------------------------ | -------------------------------------------------------------------------------|
| **Date** | 09/12/2024 |
| **NOMA** | 7164-21-00 |
| **Academic Year** | 2024-2025 |
| **Open Source Project** | [EasyABC](https://github.com/jwdj/EasyABC) |
| **Pull request made** | [Updates of dutch and french translations #94](https://github.com/jwdj/EasyABC/pull/94)|
| **License** | [GNU General Public License v2.0](https://github.com/jwdj/EasyABC/blob/master/LICENSE) |
## Project Description
EasyABC is an open source ABC music notation editor. If you're not a musician, you might not have heard of this, so here is a brief explanation:
ABC notation is a standardized convention to use ASCII characters (letters, numbers and a small set of symbols) in order to represent notes, key signatures, and other musical instructions. It is widely used for music sharing, especially among folk musicians.
EasyABC provides many great features. To name a few useful ones, you can generate and store tunes, for each tune you can view both the Musical score and the ABC code, you can import files from various formats (MusicXML, MIDI (Musical Instrument Digital Interface) and Noteworthy Composer), you can record tunes directly from a MIDI keyboard, and export the music to different formats (MIDI, SVG, PDF).
For a more complete guide, you can visit [this website](https://easyabc.sourceforge.net/).
## Project Choice
I've been immersed in the open source world since I was little, thanks to my dad. As a result, I'm an enthousiastic user of open source softwares, but I surprisingly never took the time to contribute to one before. This project gave me the opportunity to make that first step.
While looking into the open source programs I regularly use, I realized that many of them are already large and mainstream. For my first contribution, I was looking for something more accessible. After discussing with other students, I discovered the website [Up For Grabs](https://up-for-grabs.net/#/) which centralizes open source projects offering tasks for new contributors, and helps you navigate through them. I found some insteresting ideas for contribution, but they felt a bit impersonnal so I kept them as "maybe for later" projects.
Coming back home that Friday, I had the occasion to talk to my dad about it, and that's when EasyABC name came up. We both play folk instruments and although I don't use the application on a daily basis, I know how useful it is. It immediately piqued my interest.
I found the GitHub repository, cloned it on my computer, and let the adventure begin!
## Technical details about project and contributors
There are 8 contributors to the project. It has been forked 37 times and received 95 stars.
EasyABC was created by Nils Liberg in 2014. One year later, it was transfered to Jan Wybren de Jong and Seymour Shlien, who are the current maintainers. I found their email addresses in one of the documentation files of the project. It appeared that the GitHub repository is primarily maintained by Jan Wybren de Jong, the developer I communicated with.
Stable versions of the program are available on [SourceForge](https://sourceforge.net/projects/easyabc/?source=directory). The last release was made on September 15, 2024, and there are around 150 downloads per week. The site also offers a system of tickets and a discussion channel for users.
## Contribution Process
I started by looking at the multiple issues, but many of them seemed too complicated or too specific for me to start with. Some issues even seemed to already provide fixes rather than asking for contributions, which was confusing.
So, I turned my focus to non-technical tasks and searched if I could help with documentation or translation. The project structure is a bit messy, as there are lot of files in the main folder. The README.md didn't describe how to launch the program, but there were other files (readme.txt and using_EasyABC_in_Linux.txt) that provided straightforward instructions. I followed them and encountered no issue.
Concerning the translation task, instructions were given in the translating_EasyABC.txt file. It recommended to install Poedit, as the translations were in .po format. I had never worked with this format before, but I was curious. Since I noticed missing translations for both French and Dutch, I decided it was a good opportunity to learn.
I forked the project and spent some time exploring the translation files, which was quite interesting. I sweat a bit on the translation task itself, as French is my first language but I'm not fully fluent in Dutch. Luckily, a friend of mine who was fluent in Dutch agreed to review my work, and I was relieved to hear that it wasn't bad.
I aimed to update the translation files so the code lines matched the actual lines in the source code files, as the latter had been updated after the translation files were created. It worked well for the Dutch translation, but I encountered an error when trying to do it with the French one: the latin-1 encoding was unknown. I tried to resolve it locally but didn't succeed. The file was over 4000 lines long, I didn't have the time to manually check every difference.
I finally submitted my pull request as is, formatting it based on previous pull requests from other translators. I was a bit worried about the response delay because the repository hadn't been very active in the past 3 months, but the pull request was accepted just two days after submission.
I realized after it was accepted that I forgot to add a comment in the pull request explaining the problem with the update in source code lines. I then sent an email to the maintainer but I haven't received any response yet.
## Conclusion
This project turned out to be a good experience.
I was a bit scared to dive into complex technical tasks for my first contribution, so I didn't really stepped out of my comfort zone. Now that my contribution has been accepted, I'm not disappointed with what I've done but I realize I could have been a bit more ambitious.
I also expected more interaction around my pull request, but it was accepted right away without much discussion, so I have a taste of too little.
For my next open source contribution, I plan to choose a project with a larger and more active community and I will aim for a more technical task. I think I could learn even more that way.
---
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