Week 4 - Further Contribution, Some Privacy, and Git

What’s Next?

My pull request was merged! It took some back and forth and modification, but in the end, it was accepted. Descriptions for themes are now rendered beneath their names in the drop down menu. But only the defualt themes have descriptions. I want to try to implement a text-input field so that you can add a description to your own themes when customizing them.

I will also explore other areas and projects in which I can contribute. Immich is an open-source tool I use, and am interested in adding to their project.

An Update on the Extension

The extension project, focused on learning to create open source software is coming along well. It is made up of three parts.

  1. The documents and supporting tools that make it open source.
  2. The backend functionality.
  3. The presentation to the user.

Documents and Supporting Tools

For an open source project to be successful, it needs certain things to be defined. Those things include a code of conduct, a guide for contributing, proper documentation and a license.

  • We have selected to adopt the second version of the Contributor Covenant, as it specifcally outlines how the guidelines will be enforced.
  • Additionally, we have opted to apply the GNU GPL-3.0 License, because we like the idea of copy-left.

I have also created custom issue templates which can be viewed here. This allows for users and contributors to quickly and easily document any issues they encounter or request features. These can be made with .md or .yml files.

The Code’s Function

Based on a user’s preferences, this extension modifies the CSS of Gradescope to hide scores and created buttons so that the scores can be made visible. The extension takes a hide-by-default approach upon first installation, ensuring scores are always hidden, just in case. Users can then change their settings to allow scores above a certain threshold to be made visible, or remain hidden.

The Interface

The interface and presentation is very simple.

Scores are hidden with a blur. A button is placed beneath each score allowing the user to temporarily toggle it’s visibility.

The user can manage the extension’s settings by clicking on it. There, they have the ability to toggle the extension On and Off without uninstalling it, set the scores to always be hidden, or have visiblity be based on the score value and a threshold. It is a simple extension with simple features and a simple UI. That’s it.

In Class

This week we evaluated different open-source projects in teams and looked at the usefulness of Git.

Project Evaluations

My team evaluated Exercism, a free, online learning platform. The project provides exercises for users to work on their skills and knowledge of different programming languages.

What we determined was that while they appear very welcoming to new users (clear instructions for how to contribute, good code of conduct, easy sorting for different tasks contributors can take on, stated channels of communication, etc.), the code base is very large and spread out. Across multiple repositories. Additionally, the ticket and issue tracking system is a bit all-over-the-place. CI/CD failures automatically open tickets, which are automatically closed by another bot, and they pile up and up and up.

We decided this was not a project we were too interested in contributing to. On the other hand, Jellyfin and GIMP caught my eye. However, both of these projects are relatively mature and appear to be more in a state of maintenance, rather than one of development and making new features.

Git

It would be hard to find an open-source project that does not use some form of version control. In projects where people contribute with code, Git is often times the most used method.

Git allows you to make changes, move them to a staging area where they can be documented, commit the changes to a log, and undo it all. This allows for contibutors to work side by side on the same code, while avoiding stepping on eachothers’ toes.

It is important to remember that each project can have different guidelines for how they want you to use Git to add code. Make sure you determine their policy before you push anything.

Written before or on February 15, 2026