|
@ -0,0 +1,171 @@ |
|
|
|
|
|
This is my submission for RIT's |
|
|
|
|
|
[HFOSS](https://github.com/ritjoe/hfoss) Community architecture |
|
|
|
|
|
project. Due to the COVID situation, several changes have been made |
|
|
|
|
|
since I drafted the [project |
|
|
|
|
|
proposal](https://jrtechs.net/open-source/community-architecture-proposal). |
|
|
|
|
|
First, this is no-longer a group project. Second, this project is now |
|
|
|
|
|
more focused on comparing the project architectures of two communities |
|
|
|
|
|
rather than running analytics like git by a bus. |
|
|
|
|
|
|
|
|
|
|
|
Exploring what works and what does not work for different projects can |
|
|
|
|
|
give us valuable insight into trying to create new communities. This |
|
|
|
|
|
is what is truly beautiful about open-source software in its openness |
|
|
|
|
|
giving us the ability to learn from it. |
|
|
|
|
|
|
|
|
|
|
|
# Project Introduction |
|
|
|
|
|
|
|
|
|
|
|
This report covers two open-source projects: on-my-zsh and RITlug's |
|
|
|
|
|
website. |
|
|
|
|
|
|
|
|
|
|
|
## Oh-my-zsh |
|
|
|
|
|
|
|
|
|
|
|
![on-my-zsh logo](media/arc/oh-logo.png) |
|
|
|
|
|
|
|
|
|
|
|
On-my-zsh is an open-source, community-driven framework for managing |
|
|
|
|
|
ZSH configurations. It includes many functions, helpers, plugins, and |
|
|
|
|
|
themes. |
|
|
|
|
|
|
|
|
|
|
|
Oh-my-zsh was written almost entirely in a shell script which makes |
|
|
|
|
|
sense because it is a command-line utility. The primary audience of |
|
|
|
|
|
this project is ZSH enthusiasts. |
|
|
|
|
|
|
|
|
|
|
|
![zsh theme ex](media/arc/zsh-theme.png) |
|
|
|
|
|
|
|
|
|
|
|
### Links |
|
|
|
|
|
|
|
|
|
|
|
- [github](https://github.com/ohmyzsh/ohmyzsh) |
|
|
|
|
|
- [website](https://ohmyz.sh/) |
|
|
|
|
|
- [wiki](https://github.com/ohmyzsh/ohmyzsh/wiki) |
|
|
|
|
|
- [issue tracker](https://github.com/ohmyzsh/ohmyzsh/issues) |
|
|
|
|
|
|
|
|
|
|
|
## Ritlug's Website |
|
|
|
|
|
|
|
|
|
|
|
![ritlug logo](media/arc/ritlug.png) |
|
|
|
|
|
|
|
|
|
|
|
The RIT Linux Users group (RITlug) main website is an open-source |
|
|
|
|
|
project. RITlug is a student-led organization at RIT that aims to |
|
|
|
|
|
engage students in Linux and open source. The website is written using |
|
|
|
|
|
Jekyll which is a ruby project for static website generation. The |
|
|
|
|
|
website itself is hosted on [GitHub Pages](https://pages.github.com/) |
|
|
|
|
|
Jekyll is nice because it enables you to do templating and write |
|
|
|
|
|
content for the website in [markdown](https://www.markdownguide.org/). |
|
|
|
|
|
This is also the project that I chose to do my HFOSS [bug |
|
|
|
|
|
fix](https://jrtechs.net/open-source/ritlug-bugfix). |
|
|
|
|
|
|
|
|
|
|
|
![RITlug website](media/arc/website.png) |
|
|
|
|
|
|
|
|
|
|
|
### Links |
|
|
|
|
|
|
|
|
|
|
|
- [github](https://github.com/RITlug/ritlug.github.io) |
|
|
|
|
|
- [website](https://ritlug.com/) |
|
|
|
|
|
- [issue tracker](https://github.com/RITlug/ritlug.github.io/issues) |
|
|
|
|
|
|
|
|
|
|
|
# Differences |
|
|
|
|
|
|
|
|
|
|
|
This section explores the differences between the two projects. It is |
|
|
|
|
|
important to note that there is not a once size fits all for |
|
|
|
|
|
open-source projects. Just because one project has more/less of |
|
|
|
|
|
something does not necessarily mean that one is better than the other. |
|
|
|
|
|
The beauty of open-source is the ability of a project to take many |
|
|
|
|
|
shapes/sizes/forms. |
|
|
|
|
|
|
|
|
|
|
|
## Scope |
|
|
|
|
|
|
|
|
|
|
|
![on-my-zsh](media/arc/oh.png) |
|
|
|
|
|
|
|
|
|
|
|
There is no denying that on-my-zsh is a massive open-source project. |
|
|
|
|
|
On-my-zsh is highly praised and recommended by people wanting to |
|
|
|
|
|
"rice" their terminal setup. This project has 19k forks and 1.5k |
|
|
|
|
|
contributors... that is big. |
|
|
|
|
|
|
|
|
|
|
|
Although there are a large number of contributors, most people don't |
|
|
|
|
|
have a huge role in the project. A lot of the contributors are adding |
|
|
|
|
|
themes to on-my-zsh and doing minor bug fixes. Dispute not holding big |
|
|
|
|
|
roles, the large number of contributors suggests that it is relatively |
|
|
|
|
|
easy to become a part of this community. On-my-zsh has received so |
|
|
|
|
|
many PR's for new themes that they asked people to [stop |
|
|
|
|
|
submitting](https://github.com/ohmyzsh/ohmyzsh/wiki/External-themes) |
|
|
|
|
|
them and to create them as separate git repos with a specific naming |
|
|
|
|
|
convention so they are easy to search for. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
![ritlug](media/arc/ritlug-git.png) |
|
|
|
|
|
|
|
|
|
|
|
In contrast on on-my-zsh, the RITlug website project is relatively |
|
|
|
|
|
small with 16 total contributors. The contributors are largely limited |
|
|
|
|
|
to members of RITlug's eboard (leadership board) with little activity |
|
|
|
|
|
from the community at large. Members through this project tend to |
|
|
|
|
|
cycle through every few years as they roll through RITlug's eboard. |
|
|
|
|
|
|
|
|
|
|
|
## Maturity |
|
|
|
|
|
|
|
|
|
|
|
![oh-my-zsh timeline](media/arc/maturity-on.png) |
|
|
|
|
|
|
|
|
|
|
|
The on-my-zsh project is a decade old and still kicking strong! This |
|
|
|
|
|
project is well developed and has very robust documentation in their |
|
|
|
|
|
wiki for people looking to contribute to this project and for those |
|
|
|
|
|
looking to use it. |
|
|
|
|
|
|
|
|
|
|
|
![ritlug contribution timeline](media/arc/maturity-rit.png) |
|
|
|
|
|
|
|
|
|
|
|
RITlug's website project is relatively new at 4 years old, but, like |
|
|
|
|
|
oh-my-zsh has remained active for its entire duration. |
|
|
|
|
|
|
|
|
|
|
|
## Governance |
|
|
|
|
|
|
|
|
|
|
|
### Leadership |
|
|
|
|
|
|
|
|
|
|
|
Determining the leadership is often hard for a project in the medium |
|
|
|
|
|
to small scale. The issue isn't that there is absolutely no |
|
|
|
|
|
leadership, the issue is that the leadership often isn't documented or |
|
|
|
|
|
is on such a small scale that it is trivial. Larger projects like |
|
|
|
|
|
Fedora and Ubuntu have well-defined roles, etc for their project. |
|
|
|
|
|
Smaller projects often don't have these levels of leadership and |
|
|
|
|
|
transparency. I fall victim to this for all my projects on GitHub, the |
|
|
|
|
|
leadership is quite literally "me" and I'm making all the calls and |
|
|
|
|
|
I'm just managing the dozen or so people that I manage to get to work |
|
|
|
|
|
on my project. Having this type of leadership is often bad because |
|
|
|
|
|
once the main contributor leaves, the project may die or fall apart. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
As the current president of RITlug, I have particular insight into how |
|
|
|
|
|
RITlug operates its open-source project. The leadership of the project |
|
|
|
|
|
shifts every year after public (to RIT students) elections. There are |
|
|
|
|
|
typically between 4-6 eboard members per year. It requires two members |
|
|
|
|
|
of eboard to approve a pull request for the website. There is a |
|
|
|
|
|
special eboard role for managing projects, however, that role is often |
|
|
|
|
|
vacant and is just filled in my eboard members that have a familiarity |
|
|
|
|
|
for that project. If the project is large enough like |
|
|
|
|
|
[TeleIRC](https://github.com/RITlug/teleirc), we allow that one to |
|
|
|
|
|
manage itself as a "team" with loose oversight from the eboard. The |
|
|
|
|
|
RITlug website is solely maintained by the RITlug Eboard for |
|
|
|
|
|
administrative tasks such as weekly emails and posting talks. Although |
|
|
|
|
|
we don't ever explicitly document the leadership of the project, it |
|
|
|
|
|
would be possible to figure out by reading the RITlug |
|
|
|
|
|
[runbook](http://runbook.ritlug.com/). |
|
|
|
|
|
|
|
|
|
|
|
Opposed to RITlug which has a quasi-public leadership board, the upper |
|
|
|
|
|
leaderships for on-my-zsh can be traced back to the company Planet |
|
|
|
|
|
Argon. This company is located in Portland and focuses on Ruby on |
|
|
|
|
|
Rails development as a consultant for commercial companies. Like many |
|
|
|
|
|
companies, this company has a large footprint in [open-source |
|
|
|
|
|
projects](https://www.planetargon.com/open-source). From public |
|
|
|
|
|
documentation, it is not clear how the on-my-zsh project is run. Based |
|
|
|
|
|
on other projects, we can assume that the company appoints certain |
|
|
|
|
|
people to manage the project. |
|
|
|
|
|
|
|
|
|
|
|
### License |
|
|
|
|
|
|
|
|
|
|
|
The code for both projects falls under the MIT license which is a |
|
|
|
|
|
permissive open source license. The RITlug website is more unique in |
|
|
|
|
|
that it has a creative commons license for |
|
|
|
|
|
|
|
|
|
|
|
# Takeaways |
|
|
|
|
|
|
|
|
|
|
|
When it comes to projects, no one size fits all. In both projects that |
|
|
|
|
|
I looked at they had backing from a more established institution such |
|
|
|
|
|
as a student club or a company. Future research in community |
|
|
|
|
|
architecture could dive deeper into how most open source communities |
|
|
|
|
|
layout their upper leadership and who funds the projects. It is |
|
|
|
|
|
becoming more and more common to find open-source projects with large |
|
|
|
|
|
commercial backers. |