diff --git a/blogContent/headerImages/commarch.png b/blogContent/headerImages/commarch.png new file mode 100644 index 0000000..5b8aeea Binary files /dev/null and b/blogContent/headerImages/commarch.png differ diff --git a/blogContent/posts/open-source/community-architecture.md b/blogContent/posts/open-source/community-architecture.md index 18c133a..ace6ccd 100644 --- a/blogContent/posts/open-source/community-architecture.md +++ b/blogContent/posts/open-source/community-architecture.md @@ -6,9 +6,8 @@ Second, this project is now more focused on comparing the project architectures 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 in trying to create new communities. -This is what is truly beautiful about open source software in it's openness giving -us the ability to learn from it. +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 @@ -16,13 +15,15 @@ This report covers two open-source projects: on-my-zsh and RITlug's website. ## Oh-my-zsh -//image +![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 shell script which makes sense because it -is a command line utility. The primary audience of this project is ZSH enthusiasts. +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 @@ -31,18 +32,20 @@ is a command line utility. The primary audience of this project is ZSH enthusias - [wiki](https://github.com/ohmyzsh/ohmyzsh/wiki) - [issue tracker](https://github.com/ohmyzsh/ohmyzsh/issues) -## ritlug.com +## Ritlug's Website -// image +![ritlug logo](media/arc/ritlug.png) -The RIT Linux Users group (RITlug) main website is an open source project. +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) with. +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 @@ -56,23 +59,74 @@ 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 for a project to take many shapes/sizes/forms. +The beauty of open-source is the ability of a project to take many shapes/sizes/forms. ## Scope -// contributors +![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. -// screen grabs from GH + +![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 -//how old +![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 -//who has access to it -// license +### 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 -// no one size fits all +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. \ No newline at end of file diff --git a/blogContent/posts/open-source/media/arc/maturity-on.png b/blogContent/posts/open-source/media/arc/maturity-on.png new file mode 100644 index 0000000..705e078 Binary files /dev/null and b/blogContent/posts/open-source/media/arc/maturity-on.png differ diff --git a/blogContent/posts/open-source/media/arc/maturity-rit.png b/blogContent/posts/open-source/media/arc/maturity-rit.png new file mode 100644 index 0000000..b190900 Binary files /dev/null and b/blogContent/posts/open-source/media/arc/maturity-rit.png differ diff --git a/blogContent/posts/open-source/media/arc/oh-logo.png b/blogContent/posts/open-source/media/arc/oh-logo.png new file mode 100644 index 0000000..186501f Binary files /dev/null and b/blogContent/posts/open-source/media/arc/oh-logo.png differ diff --git a/blogContent/posts/open-source/media/arc/oh.png b/blogContent/posts/open-source/media/arc/oh.png new file mode 100644 index 0000000..25b765d Binary files /dev/null and b/blogContent/posts/open-source/media/arc/oh.png differ diff --git a/blogContent/posts/open-source/media/arc/ritlug-git.png b/blogContent/posts/open-source/media/arc/ritlug-git.png new file mode 100644 index 0000000..63d6836 Binary files /dev/null and b/blogContent/posts/open-source/media/arc/ritlug-git.png differ diff --git a/blogContent/posts/open-source/media/arc/ritlug.png b/blogContent/posts/open-source/media/arc/ritlug.png new file mode 100644 index 0000000..d922333 Binary files /dev/null and b/blogContent/posts/open-source/media/arc/ritlug.png differ diff --git a/blogContent/posts/open-source/media/arc/website.png b/blogContent/posts/open-source/media/arc/website.png new file mode 100644 index 0000000..9181e7f Binary files /dev/null and b/blogContent/posts/open-source/media/arc/website.png differ diff --git a/blogContent/posts/open-source/media/arc/zsh-theme.png b/blogContent/posts/open-source/media/arc/zsh-theme.png new file mode 100644 index 0000000..bd72faf Binary files /dev/null and b/blogContent/posts/open-source/media/arc/zsh-theme.png differ