I started searching for open-source projects as I had not had much information about what I am looking for, but I was looking into more known projects that I had interactions with or used the project at some point.
As a programming student, I have used VS Code a lot during my studies, but I haven’t had enough information about it being an open-source project. When I figured out VS Code is an MIT-licensed open-source project, I decided to choose it as my first object to research.
1. Visual Studio Code
An open-source program originally developed by Microsoft Co. This one is actually an interesting case of open-source programming! Microsoft claimed that “the product has a different license than the code in the repository”, on the 21st of November 2015, a few days after the first release of VS Code.
Licensing
VS Code is delivered as a Microsoft branded product, which is built on an open-source code base. So basically, the executable program released by Microsoft is under Microsoft pre-release license standards but built on top of “vscode” which has an open-source repository on GitHub.
This issue has made some confusion for the community members since the early days of the official release, and as they clarified, you can either use the branded program which is licensed by Microsoft, or you can build from the “vscode” repository without Microsoft customization such as Gallery endpoints, telemetry endpoints, logos, names, and …. There are more information in this FAQ thread in GitHub if you want to get more into details: Menu license links to non Open Source license · Issue #60 · microsoft/vscode (github.com)
We will focus on the VS Code repository which is an open-source project under the MIT license, and it is completely available to the public on GitHub. While getting the advantage of reviewing or contributing to this project and building custom versions for yourself, you should be aware of Microsoft’s legal terms of use! Here is the link to the MIT standard license on GitHub, you can check the permissions and limitations on this page: https://github.com/microsoft/vscode/blob/main/LICENSE.txt
Extensions
The project itself is considered a huge project and you can contribute to it using GitHub, but also there are separate repositories for some of its extensions. There are thousands of extensions to VS Code (around 30,000) and some are big projects. Extensions such as the node debug adapter and the mono debug adapter have their own repositories on GitHub with tens of contributors each. 30,000 extensions are a huge number of extensions for any project, and this is only possible through the gift of open sourcing. Even if a lot of them may not be very useful, it shows how customizable open sourcing can get.
Contributing
Almost everything about this project happens on GitHub. There are different pages for everything. You can also ask questions through stack overflow.
Everything about how to contribute to the project is clearly written on the project's main page on GitHub and there is a referencing link to a more specific page. You can submit bugs and feature requests, review source code changes, and review the documentation.
There is a separate page for the known issues of the program where you can learn about the problems and the solutions to the previous problems.
The most interesting parts to me are the roadmap page, and help wanted labels. They release a roadmap every year to track their progress and it will be updated as they reach their goals. You can see the updates with different signs and checkmarks on the page. Also, with the help wanted label, which they usually use on the issues, it helps to get the community’s attention and keep the focus on the more important and major problems and updates.
There are clear instructions for contributors on how to contribute to the project. Here are some useful links related to the roadmap, issues, and contributing guide:
Also, there are automated tests for the contributors to help them detect more apparent problems in the first place and improve the quality of their contributions. There are also tests for UI!
Community
As I was checking the top contributors, there are mostly Microsoft employees, specifically assigned to developing VS Code and you can see most of their commits happen on the weekdays. Developing, managing, and reviewing this huge open-source project is a full-time job for many software engineers.
2. WordPress
In my search to find another mention-worthy open-source project, which is under a different license, I found WordPress to search more about. But also I learned about different common, popular, and widely used licenses such as:
Apache License 2.0
BSD 3-Clause "New" or "Revised" license
BSD 2-Clause "Simplified" or "FreeBSD" license
GNU General Public License (GPL)
GNU Library or "Lesser" General Public License (LGPL)
MIT license
Mozilla Public License 2.0
Common Development and Distribution License
Eclipse Public License version 2.0
They all have some common use cases and provide different levels of safety for the developer. But now let's get to talk about WordPress.
WordPress is a widely used web developing service to help people and developers build websites using an easy-to-use user interface.
WordPress is licensed under the GNU General Public License. You can read more about it here: The GNU General Public License v3.0 - GNU Project - Free Software Foundation
There is an official repository for WordPress on GitHub, but it is not much you can do there. Sure, you can do pull requests, but most of the contributions happen on the WordPress website itself. This difference is one of the reasons that I chose WordPress as my second open-source project to review. If you don't know what is a pull request, this is the explanation by GitHub:
" Pull requests let you tell others about changes you've pushed to a branch in a repository on GitHub. Once a pull request is opened, you can discuss and review the potential changes with collaborators and add follow-up commits before your changes are merged into the base branch."
WordPress Trac is the main page to contribute to the WordPress project. Through this website, you can issue a ticket to request a bug fix. To contribute to the project, you need to create an account on the website.
To get started as a contributor, you can test some of the listed patches, or grab a bug and try to reproduce the problem.
Through the page called "Contributor handbook", you can view most of the recent issues. This is a good tool to ask developers for help and keep their focus on the more important problems.
The detailed information on how to contribute to the project can be found here:
Comments