This week marks the last week of working within the Open Source Phase here in my internship. I found so much joy getting to know each new project I embrace myself into.
Not only working with really awesome projects that really make a change out there but also getting to know the different maintainers of each project was a really fulfilling experience. It would be sad to say goodbye to this phase because you can really grow a lot in soft and tech skills if you really get into every project.
Issues and pull requests
This specific week I started to work with my secondary stack, Java. One of the projects I worked on is called AssertJ. AssertJ provides a rich set of assertions, truly helpful error messages, improves test code readability, and is designed to be super easy to use within your favorite IDE.
The issue I worked on within this project was related to an interesting topic called: Unicode. Some Strings look equal but their canonical form is not equal. For example, one can compose the A umlaut (Ä) with a single character: \u00C4 or with a combination of the A character and the dots (the dieresis character ¨): \u0041\u030.
In essence, you are using two Unicode characters for one letter. Because equals() compares characters, the form with dieresis is not equals to the form without.
The second project is called JabRef. An open-source, cross-platform citation, and reference management tool. The issue is related to when you try to download a PDF and you don’t have a file directory set, an alert tells you that you should follow a path to set your file directory. This path is not descriptive.
How I was trying to contribute
Mainly, I was trying to contribute by making enhancement in both projects. The one with Unicode really gave me an opportunity to learn more a lit bit about this subject, because you really don't know it until you use it.
In the second project, the problem was more about setting the environment so the project can run and finding the source of the problem in the code. When finding the specific line to fixed, was just add a little more text so the problem is almost fixed. Still getting feedback from the maintainers to tackle this.
Any positive or negative results
Everything came out as expected, I was trying to work really quickly because the holidays were coming very soon, so the results were satisfactory in this manner.
A negative result, but I really do not see it as negative, just improvements of my work with the corrections the maintainers are asking me to do. This is giving a lot of feedback on how I write my code and how I contribute with it.
What did I learn this week?
I learned a lot of the good practices within Java, how to write specific classes and unit tests. And going back to the main issue, about Unicode and the canonical form of String and finally how the method equals() works.
With the second project, I learned a lot about Gradle, the other package manager for Java. I have only worked with Maven in the past, so was an interesting thing to set up a project in a different environment.
The final thing I learned was about how to handle expectations with the maintainers and learning to interpret the right thing about what they are asking for. And in the end, I know after this phase ends, I would still work with Open Source projects 💙