Why am I posting this
The context for this post is that some time ago I voiced a proposal to move Spago under the PureScript org on GitHub (the various reasons for why this is a decent idea are in the linked post).
People seemed to like it, so this finally happened some days ago! However you might have noticed that I just moved the repo back to the Spacchetti org.
The reason for that is that I found myself unable to perform administrative tasks in the new location, and the reason for that is that Iād need to be member of the PureScript org to have access to the aforementioned things.
However, it was decided that I didnāt have enough contributions to the org repos to deserve a spot in there (I could quote the exact words, but then I might be misquoting and/or leaving context out, etc etc, so note that what youāre reading here is my perception of the story, how I experienced it, how I felt, and so on)
This said, the point of this post is to bring awareness to the larger community on how the language governance is handled, and hopefully spark some change (which some of you might read as āmaking a fuss about things publiclyā, but you know, thatās kind of the point of democracy as well, so I guess itās a good practice to have? You know, ācall your representativesā, etc)
Whatās my problem here
In the span of a couple of days both me (in Spago) and @justinw (in psc-package
, see this thread) lacked access to CI settings for performing administrative tasks that are normal as maintainers of these pieces of software, and I think this is terrible: I feel itās frustrating to be a maintainer of something but still not have access to all the things related to the lifecycle of that something.
(Note: of course I could continue just fine to develop stuff under my profile or the Spacchetti org - and thatās what Iāll do anyways - but that wouldnāt solve the problem that we were trying to solve in the first place)
(Note: I tagged Justin but heās not involved in all these words, I just noticed the pattern happening)
Whatās my wish for today: empowering people that want to do things
So I just wish that weād liberally give out membership of the PureScript org (on GitHub). In particular, the policy that makes most sense to me is āif someoneās a maintainer of a repo in the org, they should be a member of the orgā.
Note: member of the org is not the same as admin of the org.
But isnāt this dangerous?
No: org members cannot interact in any special way with repos they donāt have access to in the org. They can only create repos new repos under the org, which admins can quickly revert if anything suspicious happens.
My main source of inspiration for how this empowerment can happen beautifully in the context of Open Source projects is dhall-langās ācontributingā document (shoutout to Gabriel for handling all of this so gracefully). In there - very early in the history of the language - were defined things like:
- how to propose changes
- how they get approved and who can approve them
- timeouts for decisions
- how to get the commit bit to things
Iāve been involved with Dhall for some time now and these policies have worked out wonderfully and very effectively.
I also adapted that document for Spago, and as a matter of fact I give out the commit permissions very liberally (one needs very few non-trivial commits usually), which seems to work out very nicely as well
Whatās my wish for this topic in general: documenting processes for PureScript
Currently it is not possible to find publicly any info about the following things in PureScript land:
- if thereās a ācore teamā
- whoās in the ācore teamā exactly
- what are the rights and obligations of the members of the ācore teamā
- how this ācore teamā overlaps with the
purescript
org on GitHub - what are the rights and obligations of the org members
- whatās the process to get in and out of both the ācore teamā and the org
- whatās the contribution process to get the commit bit to the repos owned by the org
- etc
What I would like to see happening in the longer term is that we create a place to write all of this down (maybe a purescript/governance
repo? It doesnāt really matter how, it just needs to be a public container)
Note: something that I am not expressing here is any kind of moral judgement on what this āgovernance modelā is. For what I care we can have open membership, or a BDFL, etc. Whatever thing is fine by me, as long as procedures are documented in the public: this is so that expectations are clear and openly stated, and this avoids mismatches and implicit behaviours from happening.
Why do I wish for this?
Subtitle: why is transparency important?
Now, the last thing I want to do is to sit here and give a lecture about why transparency in organizational processes is important, but I guess the need is present after all.
Here are some reasons why a public organization should make their processes as transparent as possible:
- accessibility: if processes are documented publicly, everyone is aware of them, and can engage freely into these processes if they want to, and thereās a ācorrectā way to do that
- ā¦which enables diversity: if the rules of engagement are clear, this levels the field for everyone to contribute, since thereās a standard measure that everyone is being hold to, and implicit power structures are less effective
- bus factor is also a very important one: publicly-documented procedures empower enthusiastic contributors to contribute to their maximum potential. If procedures are unclear they might get discouraged and shy away. If knowlegeable contributors get tired/busy/sick/etc and policies are not written down this might lead to lost knowledge, etc.
All of these factors are major contributors to project health, also known as āthe probability that this language is still relevant in 5 yearsā.
I really want this probability to be as high as possible, and I really like this community, and Iād like all of us to succeed, so letās try our best at this
Peace,
Fabrizio