Week 14: Every good thing comes to an end

This was the last week of our course, a 14 weeks long journey. I can proudly say, “this course might be finishing, but my open source journey just started”. I wasn’t expecting to learn this much in this course, but I did. This course also helped me define my career path in different ways. I was interested in the open source before taking this course, but it didn’t seem like a thing that people can make money out of. The readings we did and the invited speakers we had proved me wrong! Now, I seriously consider pursuing a career that involves an open source in its core.

Another thing this course taught me is not to be shy about contributing to open source projects. I was always worried about other people’s judgment on my comments and code. It turns out; there is nothing to be shy about. Conflicts do happen occasionally, but they are all solvable. Open source communities are very welcoming, as well. The community always says “thank you” for all types of contributions, and they are very encouraging. I saw a lot of these factors in the group presentations we had this week. For example, the p5.js group stated they had a very pleasant experience with the p5.js community, and the community said to them, “thank you” all the time. JupyterLab, the community my group is working with, has a very similar attitude, and this encourages me to contribute even more. Some of the groups presented stated that they were shy in the beginning, and their welcoming community helped them overcome this issue.

p5.js group’s presentation was the one I liked most, so I will keep giving examples from them. I also loved how they solved the CSS versioning problem. I had a similar problem with one of the websites I built in the past, and my solution was manually adding a version number. Instead, they thought about hashing the code and using it as the version number. Brilliant! I will definitely implement it on my website as well.

Additionally, I learned about pre-commit, which helps contributors check if their code passes the tests set by the organizations even before committing the code. I think this a very neat idea that saves everyone’s time and mostly maintainers’ time since contributors can check if their code passes the tests even before maintainers review the code.

docsify is another tool that I learned from the presentations. I don’t do a lot of JavaScript programming, but if I do, I will definitely use docsify for the documentation because it saves time by utilizing the comments in the code. docsify is very similar to doxygen, which is a documentation generating tool for C++.

Finally, code freeze is another thing I learned from the presentations. It totally makes sense, but I have never taught about the existence of such a concept.

Group project progress

We made more contributions this week and finalized the open issues. I also expanded my contributions to the Jupyter Project website because some of the documentation on the website is coming from the JupyterLab repository. So, the website repository needed to be updated to match the JupyterLab documentation. Additionally, I worked on fixing a CSS bug on the website. The height of the boxes was static, and they needed to be dynamic based on the text inside of them:

The problem on the Jupyter project website

I found an open source library for handling this issue and implemented it. Now, it works flawlessly:

The new version that can handle the height dynamically

Written before or on May 8, 2020