Subject: [alpine-devel] RFC: Project goals and guiding principles

From: Natanael Copa <[email-masked]>
Date: Fri, 29 Mar 2019 09:40:36 +0100

Hi!

We would like to revise and formalize how we are organized. The current
way we are written in those two emails:

https://lists.alpinelinux.org/alpine-devel/6024.html
https://lists.alpinelinux.org/alpine-devel/6025.html

Before we start discuss specific rules I would like to get some sort of
consensus of the bigger picture, the project goals and guiding
principles. Since this affects everyone involved in the project I
invite everyone to comment.

Even short responses with "ACK" is helpful.

This is the current proposal:

== Project Goals
- To build and maintain an independent, non-commercial, general purpose
  Linux distribution designed for power users who appreciate security,
  simplicity and resource efficiency.
- To maintain a friendly and productive community within.

=== Guiding Principles
- Build a community based on mutual trust, responsibility, and respect
- Prevent and respond to abuses of power without disrupting the project
- Empower motivated people to effect change and progress
- Do the right thing over doing the written thing

Thanks!

-nc

---
Unsubscribe:  [email-masked]
Help:         [email-masked]
---

---

From: Drew DeVault <[email-masked]>
Date: Fri, 29 Mar 2019 11:44:42 -0400

> Even short responses with "ACK" is helpful.

ACK

---

---

From: Chloe Kudryavtsev <[email-masked]>
Date: Fri, 29 Mar 2019 12:41:38 -0400

ACK

---

---

From: Natanael Copa <[email-masked]>
Date: Fri, 29 Mar 2019 18:43:46 +0100

On Fri, 29 Mar 2019 12:41:38 -0400

> > Even short responses with "ACK" is helpful.  

For the record. It was Chloe who wrote down the proposal in the first
place after discussing it on IRC.

-nc

---

---

From: Timothy Legge <[email-masked]>
Date: Sat, 30 Mar 2019 18:45:42 -0300

I just found Alpine recently and have no real idea what prompted this
thread nor do I really care enough to look back.  Over the years I have
been involved in a lot of different projects, some as a casual contributor
and one brief time as a co project leader.

I've mellowed as I get older and things I will tolerate are both more and
less.  I participate at the fringes mostly.  If I like the software or need
a feature I add it send a pull request.  I like it when it gets accepted
but if it doesn't it's not a big deal.

I've worked with all kinds but like bullys the least.  Some people are
abrupt and rude but not horrible.  Some are just assholes.  Challenging
someone to do better is fine.  No one grows if they are comfortable.
Making someone uncomfortable without encouraging growth, or causing injury
is not acceptable.

The guidelines seem the right direction.  Whether I stick around remains to
be seen but as a project and people strive to do good and be good.

Tim

---

From: Jeff Bilyk <[email-masked]>
Date: Fri, 29 Mar 2019 13:35:59 -0400

ACK

>   simplicity and resource efficiency.

+1 - attaining these goals continues to draw me to use Alpine on a daily
basis.

-- 
Jeff

---

From: Natanael Copa <[email-masked]>
Date: Fri, 29 Mar 2019 19:35:58 +0100

I'm responding to myself...

On Fri, 29 Mar 2019 09:40:36 +0100
Natanael Copa <[email-masked]> wrote:

> principles.
...

> - To maintain a friendly and productive community within.

Just to clarify. Those things are not new in any sense. Its more trying
to define and document what has been the goal all the time. I want give
anyone who may not agree with those goals a chance to leave early, so
we save time debating specific rules later. No point discuss rules if
we don't agree on the project goals in the first place.

> - Do the right thing over doing the written thing

What is "the right thing"? Who decides what the right thing is?

I am afraid that it may be (ab)used for things like: "The right thing
to do is to punish someone who offended me when nobody else does, even
if the written rules says I shouldn't"

I also wonder if would make sense to include something in the lines:

"Build a sustainable community that does not depend on any individual or
any single company or organization."

Even if we haven't really written it down anywhere, that has been a
goal since the very beginning.

-nc

---

---

From: Chloe Kudryavtsev <[email-masked]>
Date: Fri, 29 Mar 2019 15:18:26 -0400

> if the written rules says I shouldn't"

The axioms involved are as such:
- There is always a correct course of action, based on the project goals.
- It is possible to identify this course of action.
- This course of action could, in theory, require breaking an existing 
rule or policy.

Under the latter conditions, the idea here is to allow people to do said 
correct thing without (necessarily) waiting on consensus.

> Who decides what the right thing is?
The intent is for the right thing to be decided by consensus - a sort of 
"exception" system.
If someone abuses this by claiming to know what the right thing is, 
while not actually following consensus, that would be qualified as abuse 
of power and punishable.

I do see the concerns with the wording, though, and that was my main 
criticism of this point (as drafted by Drew).
However, I could not come up with a better wording, so I left it in.

The intention (slightly longer) is documented above, so let's discuss 
the intent, and if anyone comes up with better wording, it can be 
substituted in.

How about the following?:
 > - - To maintain a friendly and productive community within.
 > + - To build a friendly, productive and sustainable community that 
does not depend on any singular entity.

---

---

From: Drew DeVault <[email-masked]>
Date: Fri, 29 Mar 2019 15:29:21 -0400

> > if the written rules says I shouldn't"

The rules don't work independently - this only works when combined with:

We have to trust each other to know what the right thing to do is.
Someone who would abuse this has clearly betrayed that trust and should
be removed from the project. This would be true even if they stayed
within the boundaries of the written rules, as I'm sure there are edge
cases throughout which can be exploited in bad faith.

---

---

From: Natanael Copa <[email-masked]>
Date: Mon, 1 Apr 2019 22:29:49 +0200

On Fri, 29 Mar 2019 15:29:21 -0400

> cases throughout which can be exploited in bad faith.

I'm just worried about the cases where the right thing is non-obvious or
the right thing may be a single answer and we may end up spending time
and energy on discussing what the right thing to do is.

I'm also worried that it can be misunderstood.

Since it may be controversial and already has caused some confusion,
I would say that the "right thing" to do here is to remove "the written
thing" :)

But I do agree with the intention. It should be possible to make
exceptions in the "rules" and use common sense if needed.

-nc

---

---

From: Oliver Smith <[email-masked]>
Date: Sat, 30 Mar 2019 21:53:00 +0000

Overall I'd add my ACK.

> does not depend on any singular entity.

I would prefer to have this addition.

Regarding "Do the right thing over doing the written thing". What is the
written thing? If it is the rules outlined in the initial post, then I
don't see a valid reason to go against these rules.

Chloe also wrote:
> - This course of action could, in theory, require breaking an existing rule or policy.
> 
> Under the latter conditions, the idea here is to allow people to do said correct thing without (necessarily) waiting on consensus. 

IMHO that makes it more complicated than necessary. I don't think that
the Alpine team would deadlock itself because of a rule they made
earlier that does not hold up anymore. So I would rather remove the "Do
the right thing..." line.

With that being said, I don't have a whole lot of experience in
writing/reviewing such community rules.

Regards,
Oliver

---

---

From: Chloe Kudryavtsev <[email-masked]>
Date: Sat, 30 Mar 2019 18:42:40 -0400

> don't see a valid reason to go against these rules.

We're in the process of trying to re-organize internal structure.
This is done for a variety of reasons (for instance, due to the internal 
process, PRs can take exorbitant amounts of time to get through) - and 
the goal of the re-organization is to improve that.
The path towards that has ended up being through a change in governance 
model (decentralizing efforts and avoiding bottlenecks, among other things).

While this process has been public (in that everything that happened is 
available to the public (including comments), and a few callouts have 
been made), no full/finalized proposal has been sent in for ratification 
yet.

In order to expedite the conversation, we decided to add project goals, 
as well as guiding principles.
This way parts (or, ideally, all) of the proposal could be justified 
through them, thus defeating any arguments ahead of time.
The example given was someone that would push for harsher conditions 
under the impression that that would create higher efficiency.

In short, the "written thing" would be the (longer) contents of the new 
governance and organization proposal.

> the right thing..." line.

One of the side effects we want (and foresee) of the re-organization is 
a higher influx of contributors *with* git access (but not necessarily 
git access to most/everything).
While the bar for inclusion would be relatively high (decent volumes of 
prior good work), once you have access you would be expected to handle 
PRs, which inherently would require a sort of decentralized decision making.
This *can* cause deadlock (mostly because it's not a "single" alpine 
team anymore), and the idea is to allow for an acceleration of resolving 
potentially problematic situations, in which it's the obviously correct 
thing to do (even if, say, it breaks a specific policy in an unexpected 
way).

This has, however, been the most discussed and controversial principle.
For more details as to where and why it came from, see Drew Devault's 
latest email (he was the one that suggested its inclusion).

---

---

From: Oliver Smith <[email-masked]>
Date: Sat, 30 Mar 2019 23:53:00 +0000

Thanks for the detailed answer!

With the given explanation, "Do the right thing over doing the written
thing" makes sense to me, and FWIW I'm fine with having it in the rules.

I appreciate everyone's efforts to speeding up the patch review process.

Cheers,
Oliver

Chloe Kudryavtsev:
>>> Under the latter conditions, the idea here is to allow people to do
>>> said correct thing without (necessarily) waiting on consensus.
>>

---

---

From: Natanael Copa <[email-masked]>
Date: Mon, 1 Apr 2019 22:00:55 +0200

On Fri, 29 Mar 2019 15:18:26 -0400

> does not depend on any singular entity.

I wonder if it would been enough with:

"To maintain a friendly, productive and sustainable community within."

But I guess your wording makes it clearer what "sustainable" means.

I think its good unless someone else has better suggestion.

-nc

---

---

From: Richard Mortier <[email-masked]>
Date: Fri, 12 Apr 2019 16:37:43 +0100

On Fri, 29 Mar 2019 at 19:24, Chloe Kudryavtsev <[email-masked]> wrote:
...
> the intent, and if anyone comes up with better wording, it can be

Observing subsequent discussion over the wording of this point, I
wonder whether the prior bullets (particularly the one just above,
"Empower motivated people ...") already captures that intent?

On the basis that, if the written thing is not the right thing then it
probably ought to be rewritten, and that if the other principles are
being adhered to then people in the community will be doing the right
things anyway, whatever is written.

(But I think this is definitely tweaking details -- based on the
explanations given I'm not against the last bullet, just not sure it's
strictly necessary :)

> does not depend on any singular entity.

I think adding something explicit about sustainability, meaning
avoiding dependence on too small a set of people, seems sensible.

--
Richard Mortier
[email-masked]

---

---

From: Steffen Nurpmeso <[email-masked]>
Date: Sat, 30 Mar 2019 21:39:20 +0100

Natanael Copa wrote in <[email-masked]>:
  ...
 |== Project Goals
 |- To build and maintain an independent, non-commercial, general purpose
 |  Linux distribution designed for power users who appreciate security,
 |  simplicity and resource efficiency.

That is totally and completely "cool".

 |- To maintain a friendly and productive community within.
 |
 |=== Guiding Principles
 |- Build a community based on mutual trust, responsibility, and respect
 |- Prevent and respond to abuses of power without disrupting the project
 |- Empower motivated people to effect change and progress

I cannot say anything to that, let alone good.  patchwork is
a mess, work of honourable people is laughed about, if i look what
happens to the bmake port.  I mean, he has invented veriexec and
other really impressive things, and maintains that over decades.
And it works millions of times a day, or likely even more often.
If a port is not desired, at all or by one person, then it should
be said so.

 |- Do the right thing over doing the written thing

Very nice, very nice.
And even better: a nice weekend

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

---

---

From: Leonardo Arena <[email-masked]>
Date: Mon, 1 Apr 2019 15:49:56 +0200

> - Do the right thing over doing the written thing
ack

---

From: "Francesco Colista" <[email-masked]>
Date: Mon, 01 Apr 2019 14:27:20 +0000

ACK

.: Francesco Colista

---

---

From: Richard Mortier <[email-masked]>
Date: Fri, 12 Apr 2019 16:36:17 +0100

On Fri, 29 Mar 2019 at 08:49, Natanael Copa <[email-masked]> wrote:
>
> ...Even short responses with "ACK" is helpful.
>

Late to the party and very much a newcomer (I guess I've been lurking
for a few months, and have submitted a couple of minor packages /
patches) but nonetheless: ACK.

(I've followed up later in the thread on a couple of other points.)

--
Richard Mortier
[email-masked]

---