Skip to main content

Building Community

Raymond considers Linux's revolutionary aspects to be social, not technical: before Linux, complex software was designed carefully by small groups, but "Linux evolved in a completely different way. From nearly the beginning, it was rather casually hacked on by huge numbers of volunteers coordinating only through the Internet. Quality was maintained not by rigid standards or autocracy but by the naively simple strategy of releasing every week and getting feedback from hundreds of users within days, creating a sort of rapid Darwinian selection on the mutations introduced by developers."[91]

Conway's Law, a principle in software development and organizational theory, states that the structure of a software system will mirror the structure of the organization that built it. Essentially, the way teams communicate and collaborate will influence the design of the system. 

Open Collaboration

Decentralized development – with developers located around the world – is fostered by the open-source ethos of knowledge sharing and peer participation. 

Forums and mailing lists

Polls and feedback

Cathedral and the Bazaar

The Open Movement is an umbrella for many movements which proposes a world where transparency, re-use, shared access and participatory practices can create more equitable solutions to problems than competition through proprietary intellectual rights (Open Data Handbook, 2015).   

Open Access:
Making information and knowledge freely available to all, regardless of restrictions or costs.
Transparency:
Ensuring openness and visibility in processes, data, and decision-making.
Collaboration:
Encouraging participation, sharing, and teamwork in developing and improving resources.
Re-use:
Enabling the use and modification of resources by others without restrictions.
Free Access:
Making resources accessible to anyone without requiring payment or registration. 

Linux is one of the most widely used examples of free and open-source collaboration.  Through the interoperability of open software modules, created by community developers, Linux is pieced together in many different ways. This creates an expansive open ecosystem where you can choose what software you use.

Open source Initiative

The Open Source Initiative is a California public benefit corporation "actively involved in Open Source community-building, education, and public advocacy to promote awareness and the importance of non-proprietary software".

OSI maintains a list of licenses that fullfil the open source ethos of reciprocity.

https://opendatahandbook.org/glossary/en/terms/open-movement/

The Open Source Definition is a derivative document based on the Debian Free Software Guidelines

Emergent strategy Adrienne brown

How to contribute to open source software projects

https://en.m.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar

Cathedral and the bazaar

Temple and the bazaar

"Tragedy of the commons" (eugenics)

Commons based peer production

https://en.m.wikipedia.org/wiki/Commons-based_peer_production

Some authors, like Yochai Benkler, say that with the rise of the Internet and digitalisation, an economics system based on commons becomes possible again.[199] He wrote in his book The Wealth of Networks in 2006 that cheap computing power plus networks enable people to produce valuable products through non-commercial processes of interaction: "as human beings and as social beings, rather than as market actors through the price system".[200] He uses the term networked information economy to refer to a "system of production, distribution, and consumption of information goods characterized by decentralized individual action carried out through widely distributed, nonmarket means that do not depend on market strategies".[201] He also coined the term commons-based peer production for collaborative efforts based on sharing information.[202] Examples of commons-based peer production are Wikipedia, free and open source software and open-source hardware.[203]

The tragedy of the commons has served as a pretext for powerful private companies and/or governments to introduce regulatory agents or outsourcing on less powerful entities or governments, for the exploitation of their natural resources.[204][205][206] Powerful companies and governments can easily corrupt and bribe less powerful institutions or governments, to allow them exploit or privatize their resources, which causes more concentration of power and wealth in powerful entities.[207] This phenomenon is known as the resource curse.[208]

https://en.m.wikipedia.org/wiki/Collective_action_problem

Emergent strategy

rge.

I offer, from this defensive and sacred place, a protocol for those who are most comfortable approaching movements from a place of critique, AKA, haters.

1. Ask if this (movement, formation, message) is meant for you, if this serves you.

2. If yes, get involved! Get into an experiment or two, feel how messy it is to unlearn supremacy and repurpose your life for liberation. Critique as a participant who is shaping the work. Be willing to do whatever task is required of you, whatever you are capable of, feed people, spread the word, write pieces, make art, listen, take action, etc. Be able to say: ‘“T invest my energy in what I want to see grow. I belong to efforts I deeply believe in and help shape those.”

3. Ifno, divest your energy and attention. Pointing out the flaws of something still requires pointing at it, drawing attention to it, and ultimately growing it. Over the years I have found that when a group isn’t serving the people, it doesn’t actually last that long, and it rarely needs a big takedown—things just sunset, disappear, fade away, absorb into formations that are more effective. If it helps you feel better, look in the mirror and declare: “There are so many formations I am not a part of—my non-participation is all I need to say. When I do offer critique, itis froma space of relationship, partnership, and advancing a solution.”

4. And finally, 1f you don’t want to invest growth energy in anything, just be quiet. If you are not going to help birth or raise the child, then shhhhh. You aren’t required to have or even work towards the solution, but if you know a change is needed and your first instinct when you see people trying to figure out how to change and transform is to poop on them, perhaps it is time you just hush your mouth.

 

Decentralized Community

No software is owned by one person and can be formed.

A distribution is largely driven by its developer and user communities. Some vendors develop and fund their distributions on a volunteer basis, Debian being a well-known example. Others maintain a community version of their commercial distributions, as Red Hat does with Fedora, and SUSE does with openSUSE.[116][117]

Many Internet communities also provide support to Linux users and developers. Most distributions and free software / open-source projects have IRC chatrooms or newsgroups. Online forums are another means of support, with notable examples being Unix & Linux Stack Exchange,[118][119] LinuxQuestions.org and the various distribution-specific support and community forums, such as ones for Ubuntu, Fedora, Arch Linux, Gentoo, etc. Linux distributions host mailing lists; commonly there will be a specific topic such as usage or development for a given list.

Although Linux distributions are generally available without charge, several large corporations sell, support, and contribute to the development of the components of the system and free software. An analysis of the Linux kernel in 2017 showed that well over 85% of the code was developed by programmers who are being paid for their work, leaving about 8.2% to unpaid developers and 4.1% unclassified.[122] Some of the major corporations that provide contributions include Intel, Samsung, Google, AMD, Oracle, and Facebook.[122] Several corporations, notably Red Hat, Canonical, and SUSE have built a significant business around Linux distributions.

Decentralized development is a strategy where development tasks and decision-making are distributed across multiple, often geographically dispersed, contributors rather than being concentrated in a single location or team.

In essence, decentralized development offers a flexible and efficient approach to development, but it requires careful planning, strong communication, and robust tools to ensure success.

Decentralized development is commonly used in software engineering, where teams can leverage platforms like GitHub and version control systems to collaborate effectively. It can also be applied in other areas like open-source projects, where contributions are made by individuals and organizations from around the world. 

1000000251.jpg

GitHub (/ˈɡɪthʌb/ ) is a proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug tracking, software feature requests, task management, continuous integration, and wikis for every project.[8]

https://en.m.wikipedia.org/wiki/Git

Git is free and open-source software shared under the GPL-2.0-only license.

Git was originally created by Linus Torvalds for version control in the development of the Linux kernel.[14] The trademark "Git" is registered by the Software Freedom Conservancy, marking its official recognition and continued evolution in the open-source community.

It is commonly used to host open source software development projects.[10] As of January 2023, GitHub reported having over 100 million developers[11] and more than 420 million repositories,[12] including at least 28 million public repositories.[13] It is the world's largest source code host as of June 2023. Over five billion developer contributions were made to more than 500 million open source projects in 2024.[14]

https://en.m.wikipedia.org/wiki/GitLab

Gitlab is an open source alternative to GitHub that allows decentralized software hosting.

Today, Git is the de facto standard version control system. It is the most popular distributed version control system, with nearly 95% of developers reporting it as their primary version control system as of 2022.[15] It is the most widely used source-code management tool among professional developers. There are offerings of Git repository services, including GitHub, SourceForge, Bitbucket and GitLab.[16][17][18][19][20]

Git vs github

1000000247.jpg

Repositories 

https://en.m.wikipedia.org/wiki/Repository_(version_control)

a repository is a data structure that stores metadata for a set of files or directory structure.[1] 

The main purpose of a repository is to store a set of files, as well as the history of changes made to those files.[3] Exactly how each version control system handles storing those changes, however, differs greatly.

In software engineering, a version control system is used to keep track of versions of a set of files, usually to allow multiple developers to collaborate on a project.

1000000253.png

Trusted committer

Generally speaking, the Trusted Committer role is defined by its responsibilities, rather than by its privileges.

Compared to contributors, Trusted Committers have earned the responsibility to push code closer to production and are generally allowed to perform tasks that have a higher level of risk associated with them.

Maintainers

Repository maintainers are responsible for approving requests to push fixes to the repos they maintain. This involves checking that the bug is appropriate for inclusion into the targeted repo.

Contributors

Git (in a git repository) identifies authors and committers by email address. Github users can associate email addresses with their accounts. When a user's set of email addresses is found in the commit history of a github repo, github marks that user as a contributor.

Contributor — as the name implies—makes contributions to an InnerSource community. These contributions could be code or non-code artifacts, such as bug reports, feature requests, or documentation.

Contributors may or may not be part of the community. They might be sent by another team to develop a feature the team needs. This is why we sometimes also refer to Contributors as Guests or as part of a Guest Team. The Contributor is responsible for "fitting in" and for conforming to the community’s expectations and processes.

Collaborator

A user that has defined permissions in a github repo is marked as a collaborator. These permissions can vary and do not need to be the commit bit. A random org I am a member of shows the following options presently:

  • read
  • write
  • admin
  • issue triage
  • non-admin manager

See also gh enterprise docs.

A user who has read-only access to a private repo should be marked as a collaborator, in my understanding.

A user who has permissions to a repo but no commits in that repo with any of email addresses associated with their github account would be a collaborator but not a contributor.

image.png

Branch - fork and merge 

Branch

Branches are isolated within the same repository, allowing easier collaboration among team members who have access to the repository. Forks, on the other hand, create a completely separate copy of the repository, which is useful for outside contributors.

Fork

A fork is a new repository that shares code and visibility settings with the original “upstream” repository. Forks are often used to iterate on ideas or changes before they are proposed back to the upstream repository, such as in open source projects or when a user does not have write access to the upstream repository. 

Merge

A branch is a parallel version of a repository. It is contained within the repository, but does not affect the primary or main branch allowing you to work freely without disrupting the "live" version. When you've made the changes you want to make, you can merge your branch back into the main branch to publish your changes.

Commits

A commit, or "revision", is an individual change to a file (or set of files). When you make a commit to save your work, Git creates a unique ID (a.k.a. the "SHA" or "hash") that allows you to keep record of the specific changes committed along with who made them and when. Commits usually contain a commit message which is a brief description of what changes were made.

Pull request

Pull requests are proposed changes to a repository submitted by a user and accepted or rejected by a repository's collaborators. Like issues, pull requests each have their own discussion forum.

Push

To push means to send your committed changes to a remote repository on GitHub.com. For instance, if you change something locally, you can push those changes so that others may access them.

1000000255.jpg

1000000256.png

Part of the Community

Why do people contribute?

Financial Support

Donations

Sponsorship

Community Support

Documentation

Feedback

Finding forums, chat apps, websites

Development Support

Feature requests

Pull requests

Contributions