Personal blog written from scratch using Node.js, Bootstrap, and MySQL. https://jrtechs.net
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

171 lines
7.2 KiB

  1. This is my submission for RIT's
  2. [HFOSS](https://github.com/ritjoe/hfoss) Community architecture
  3. project. Due to the COVID situation, several changes have been made
  4. since I drafted the [project
  5. proposal](https://jrtechs.net/open-source/community-architecture-proposal).
  6. First, this is no-longer a group project. Second, this project is now
  7. more focused on comparing the project architectures of two communities
  8. rather than running analytics like git by a bus.
  9. Exploring what works and what does not work for different projects can
  10. give us valuable insight into trying to create new communities. This
  11. is what is truly beautiful about open-source software in its openness
  12. giving us the ability to learn from it.
  13. # Project Introduction
  14. This report covers two open-source projects: on-my-zsh and RITlug's
  15. website.
  16. ## Oh-my-zsh
  17. ![on-my-zsh logo](media/arc/oh-logo.png)
  18. On-my-zsh is an open-source, community-driven framework for managing
  19. ZSH configurations. It includes many functions, helpers, plugins, and
  20. themes.
  21. Oh-my-zsh was written almost entirely in a shell script which makes
  22. sense because it is a command-line utility. The primary audience of
  23. this project is ZSH enthusiasts.
  24. ![zsh theme ex](media/arc/zsh-theme.png)
  25. ### Links
  26. - [github](https://github.com/ohmyzsh/ohmyzsh)
  27. - [website](https://ohmyz.sh/)
  28. - [wiki](https://github.com/ohmyzsh/ohmyzsh/wiki)
  29. - [issue tracker](https://github.com/ohmyzsh/ohmyzsh/issues)
  30. ## Ritlug's Website
  31. ![ritlug logo](media/arc/ritlug.png)
  32. The RIT Linux Users group (RITlug) main website is an open-source
  33. project. RITlug is a student-led organization at RIT that aims to
  34. engage students in Linux and open source. The website is written using
  35. Jekyll which is a ruby project for static website generation. The
  36. website itself is hosted on [GitHub Pages](https://pages.github.com/)
  37. Jekyll is nice because it enables you to do templating and write
  38. content for the website in [markdown](https://www.markdownguide.org/).
  39. This is also the project that I chose to do my HFOSS [bug
  40. fix](https://jrtechs.net/open-source/ritlug-bugfix).
  41. ![RITlug website](media/arc/website.png)
  42. ### Links
  43. - [github](https://github.com/RITlug/ritlug.github.io)
  44. - [website](https://ritlug.com/)
  45. - [issue tracker](https://github.com/RITlug/ritlug.github.io/issues)
  46. # Differences
  47. This section explores the differences between the two projects. It is
  48. important to note that there is not a once size fits all for
  49. open-source projects. Just because one project has more/less of
  50. something does not necessarily mean that one is better than the other.
  51. The beauty of open-source is the ability of a project to take many
  52. shapes/sizes/forms.
  53. ## Scope
  54. ![on-my-zsh](media/arc/oh.png)
  55. There is no denying that on-my-zsh is a massive open-source project.
  56. On-my-zsh is highly praised and recommended by people wanting to
  57. "rice" their terminal setup. This project has 19k forks and 1.5k
  58. contributors... that is big.
  59. Although there are a large number of contributors, most people don't
  60. have a huge role in the project. A lot of the contributors are adding
  61. themes to on-my-zsh and doing minor bug fixes. Dispute not holding big
  62. roles, the large number of contributors suggests that it is relatively
  63. easy to become a part of this community. On-my-zsh has received so
  64. many PR's for new themes that they asked people to [stop
  65. submitting](https://github.com/ohmyzsh/ohmyzsh/wiki/External-themes)
  66. them and to create them as separate git repos with a specific naming
  67. convention so they are easy to search for.
  68. ![ritlug](media/arc/ritlug-git.png)
  69. In contrast on on-my-zsh, the RITlug website project is relatively
  70. small with 16 total contributors. The contributors are largely limited
  71. to members of RITlug's eboard (leadership board) with little activity
  72. from the community at large. Members through this project tend to
  73. cycle through every few years as they roll through RITlug's eboard.
  74. ## Maturity
  75. ![oh-my-zsh timeline](media/arc/maturity-on.png)
  76. The on-my-zsh project is a decade old and still kicking strong! This
  77. project is well developed and has very robust documentation in their
  78. wiki for people looking to contribute to this project and for those
  79. looking to use it.
  80. ![ritlug contribution timeline](media/arc/maturity-rit.png)
  81. RITlug's website project is relatively new at 4 years old, but, like
  82. oh-my-zsh has remained active for its entire duration.
  83. ## Governance
  84. ### Leadership
  85. Determining the leadership is often hard for a project in the medium
  86. to small scale. The issue isn't that there is absolutely no
  87. leadership, the issue is that the leadership often isn't documented or
  88. is on such a small scale that it is trivial. Larger projects like
  89. Fedora and Ubuntu have well-defined roles, etc for their project.
  90. Smaller projects often don't have these levels of leadership and
  91. transparency. I fall victim to this for all my projects on GitHub, the
  92. leadership is quite literally "me" and I'm making all the calls and
  93. I'm just managing the dozen or so people that I manage to get to work
  94. on my project. Having this type of leadership is often bad because
  95. once the main contributor leaves, the project may die or fall apart.
  96. As the current president of RITlug, I have particular insight into how
  97. RITlug operates its open-source project. The leadership of the project
  98. shifts every year after public (to RIT students) elections. There are
  99. typically between 4-6 eboard members per year. It requires two members
  100. of eboard to approve a pull request for the website. There is a
  101. special eboard role for managing projects, however, that role is often
  102. vacant and is just filled in my eboard members that have a familiarity
  103. for that project. If the project is large enough like
  104. [TeleIRC](https://github.com/RITlug/teleirc), we allow that one to
  105. manage itself as a "team" with loose oversight from the eboard. The
  106. RITlug website is solely maintained by the RITlug Eboard for
  107. administrative tasks such as weekly emails and posting talks. Although
  108. we don't ever explicitly document the leadership of the project, it
  109. would be possible to figure out by reading the RITlug
  110. [runbook](http://runbook.ritlug.com/).
  111. Opposed to RITlug which has a quasi-public leadership board, the upper
  112. leaderships for on-my-zsh can be traced back to the company Planet
  113. Argon. This company is located in Portland and focuses on Ruby on
  114. Rails development as a consultant for commercial companies. Like many
  115. companies, this company has a large footprint in [open-source
  116. projects](https://www.planetargon.com/open-source). From public
  117. documentation, it is not clear how the on-my-zsh project is run. Based
  118. on other projects, we can assume that the company appoints certain
  119. people to manage the project.
  120. ### License
  121. The code for both projects falls under the MIT license which is a
  122. permissive open source license. The RITlug website is more unique in
  123. that it has a creative commons license for
  124. # Takeaways
  125. When it comes to projects, no one size fits all. In both projects that
  126. I looked at they had backing from a more established institution such
  127. as a student club or a company. Future research in community
  128. architecture could dive deeper into how most open source communities
  129. layout their upper leadership and who funds the projects. It is
  130. becoming more and more common to find open-source projects with large
  131. commercial backers.