# Butt DisCO (and the future of our GitHub orgs) ## Problem statement **Management** of our open source libraries is confusing and scattered. There are important SSB (mostly JS) libraries spread across GitHub `ssbc`, `ssb-js`, `ssb-ngi-pointer`, `auditdrivencrypto`, `fraction`, and on personal scopes too (`dominictarr`, `arj03`, `staltz`, etc). **Security** of libraries is hard to guarantee since we have too many (apparently inactive) maintainers that may not have 2FA enabled, and could be suscetible to hacks (true story). **Participation** in these organizations is unclear, except for the well defined [governance doc in ssb-js](https://github.com/ssb-js/ssb-js). It would be good to have a clear guidelines on who can join, when can they join, and when (or whether) should they be automatically removed. **Process** is either too rigid (e.g. in ssb-js) or too loose (e.g. in ssbc). Too rigid process can create participation overhead and spook contributors away. Too loose process can lead to security problems or lack of clarity/agreement on how to handle coordination issues. ## Inspiration [DisCO](https://disco.coop/) sounds really cool, and fits our situation. It's a way for people to work together in ways that are cooperative, commons-oriented, feminist economic. It's an alternative to DAOs. ## Pre-goals (Things I propose be our goals, but could change when we discuss about them) - **Centralize our libraries** - Make it easier to find libraries - Make it more consistent how those libraries are handled, e.g. all libraries have npm rights set correctly - **Define a lightweight process** - Should fit into, say, **maximum 1024 characters**, roughly 4 tweets - This means we only develop consensus on those things that are **important** and in the big-picture cohesive - Consistency does not to be thorough (e.g. not all libraries need to have the exact same code style and tool set), it needs to be **quick to understand and adhere to** - **Encourage joining and automate leaving** - Encourage participation, making it easier to put a new library in this bucket, making it easier to become a maintainer as opposed to cementing the small clique of maintainers - Simultaneously, we should have rules to remove maintainers as they become inactive. This would be primarily for security, because those people could easily return as a maintainer - **Algorithmic trust** - To determine who gets access to admin rights, we could develop a score that is automatically determined based on trust - E.g. run TrustNet on "PR approvals" - We should use computer automation to remove a ton of types of coordination work, and to remove individual bias - We used to have [ssbc-owners](https://github.com/ssbc/ssbc-owners) as one such kind of automation, but it got obsolete, we could make it a priority to have scripts to maintain the organization up to date - **Consider scopes / categories** - We need to define: is this org for all JS libraries, or only core libraries? Do we split libraries by type and importance? Do we include libraries for non-JS languages? Do we include specs and documents too? ## Let's video call! Let's discuss these in a video call! Anyone who has ever had a **pull request approved and merged** on `ssbc`, `ssb-js`, `auditdrivencrypto`, `ssb-ngi-pointer` is invited to attend. — @andrestaltz, @mixmix, @arj