From 1346c4ffe64f39abc3ef8280923538201f4f58f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mitzi=20L=C3=A1szl=C3=B3?= Date: Fri, 10 May 2019 18:20:29 +0200 Subject: [PATCH 01/16] Update decision-making-processes.md --- decision-making-processes.md | 96 +++++++++++++++++++++++++++++------- 1 file changed, 79 insertions(+), 17 deletions(-) diff --git a/decision-making-processes.md b/decision-making-processes.md index 40ee532..67e6395 100644 --- a/decision-making-processes.md +++ b/decision-making-processes.md @@ -1,29 +1,63 @@ -Here is the start of a description of the decision making process for the variety of decision types. Deciding how to decide is a work in progress that is being refined. +# Abstract +This document is an in-progress proposal which is not currently in effect. It describes how decision-making within the Solid project might work. Importantly, the Solid Leader needs to approve any decision making processes for it to be legitimate and the Solid Leader can block decisions at any point. -The Solid Leader needs to give final approval the decision making process for each category of decision including who can decide on what to the decision to hold legitimacy. +# Purpose +There are several converstaions happening via pull requests and issues around the Solid specification. Some of these conversations date back to 2015 and there is a range of complexity and degrees of agreement. The Solid project has been worked on by multiple changing teams who each had slightly different ways of coming to consensus. This document is a proposal about legitimate decision-making on Solid between all the parties working on Solid. -Some decisions can be made purely by the Solid Leader; however, there are many decisions at a lower category of important for which it would be useful to have a legitimate process that could always be blocked by the Solid leader. The operations of legitimate process could be [...?] +# Scope +At the moment the scope of this document is for changes to the Solid specification. Decisions around the Solid Specification changes need to have a procedure around them to encourage conversation to find accepted legitimate solutions to more complex decisions. -Types of decisions include: -* Who is on the Solid team? -* How to make a change to the Solid spec? -* How to start a Solid Project? - +There are other decisions that may be possible to think about, for example: +* How to start a [Solid Project](https://github.com/orgs/solid/projects) i.e. a GitHub project in the Solid Github account? +* What to include on the [Solid roadmap](https://github.com/solid/information/blob/master/solid-roadmap.md)? +* Which communication channels to use for Solid conversations? +* What to include in the Solid test suite? + +# [The Solid Team](https://github.com/solid/information/blob/master/solid-team.md) + +## Role +The Solid Team is a trusted group who manage Solid. They assume [defined roles](https://github.com/solid/information/blob/master/solid-team.md) required to achieve the Solid project's goals, especially those that require a high level of trust. The specific [defined roles](https://github.com/solid/information/blob/master/solid-team.md) in the Solid team can be edited by anyone through a Github pull request and need to be approved by the Solid Leader. + +They make decisions that shape the future of the project. The Solid Team are expected to act as role models for the community and custodians of the project, on behalf of the community and all those who rely on Solid. The Solid Team will interveve where neccessary, in online conversations or at official Solid Events on the rare occasions that a situation arises that requires intervention. They have authority over Solid Project infrastructure, including the Solid Github organisation and repositories, the bug tracker, mailing lists, conversation channels etc. + +The Solid Team is responsible for: +* Coordinating the definition of the Solid values +* Coordinating the definition of the Solid specifications including from technical, legal, and design perspectives +* Providing examples of the Solid specification under open source licensing +* Promoting awareness of Solid +* Coordinating the several parties implementing the Solid specification +* Coordinating the development of a Solid Test suite to automate the checking of compliance of solutions to the Solid specifications +* Providing an updated list of Solid solutions + +## Requirements +Solid team members need to demonstrate: +* a good grasp of the philosophy of the Solid Project +* a solid track record of being constructive and helpful +* significant contributions to Solid project's goals, in any form +* willingness to dedicate some time to improving Solid + +## Apppoinment +Anyone can apply to a Solid Team role. The Solid Leader appointments candidates to roles. + +# The Solid Decision Panel + +## Criteria Possible candidates for the Decision Panel, that could be adapted according to the type of decision include: * [Solid Team](https://github.com/solid/information/blob/master/solid-team.md) * [MIT Solid Project Team](https://solid.mit.edu) * [W3C Solid Community Group Participants](https://www.w3.org/community/solid/participants) -For the specific decision at hand, the Decision Panel could start by making a list of all the options to move forward with the pros and cons of each option. This is to make sure that everyone has a chance to voice their thoughts on all the options and their opinions of each so that they feel that all the options are given a chance. The Solid Manager would collect the options, pros, and cons, and then make sure that everyone on the Decision Panel receives a complete copy of all the information. +The W3C Solid Community Group is open to anyone although there is an application process that may need to be taken into consideration. Potentially it could be wise to make the criteria more specific that the W3C Solid COmmunity Group Participants, for example: +* Active Identity Providers +* Active Pod providers +* Active Solid app providers +* Active Solid Users -Each individual in the Decision Panel has one vote even if they have multiple criteria for being in the Decision panel, so each person in the Decision Panel has an equal voice. Each individual can vote on a first and second choice, or they can abstain. After counting the first choice votes, the votes from the bottom three options get transferred to the second choice vote to avoid strategic voting that does not reflect the true opinion of the Decision Panel. The votes are recounted and the majority vote wins. The Solid Manager's responsibilities are to -- -* make sure everyone on the Decision Panel is aware of the vote -* explain how they can vote -* collect the final results -* communicate the outcome +Once there is a Solid Test Suite it could be made a requirement that identity providers, Pod providers, and Solid app providers need to pass the Solid Test Suite to be able to participate in the Solid Decision Panel. + +Also, you could have a minimum engagement from Solid users, for example: has a WebID, has Pod, uses a Solid app regularly and actively. -# Changes to the Solid Specification -Decisions around the Solid Specification changes need to have a procedure around them to encourage conversation to find solutions to more complex decisions. +# Changes to the Solid Specification ## Step 1. Making a Suggestion Anyone can suggest a change to the Solid specification by getting a GitHub account and submitting a pull request or issues to the Solid specification repositories. @@ -31,5 +65,33 @@ Anyone can suggest a change to the Solid specification by getting a GitHub accou ## Step 2. Inviting a Conversation around your Suggestion to Find Consensus You will then need to get a W3C account and join the W3C Solid Community Group to raise a conversation about your suggestion as an item on the weekly call agenda. By adding the item to the agenda all members of the W3C Solid Community Group will be automatically notified and therefore are able to comment on the pull request or issue directly. +Anyone can suggest routes forward to the suggested changes with pros and cons of each route forward on the original pull request or issues. Below is a table format where all the final suggested routes forward, pros and cons should be included. + +| Route Forward | Pros to Consider | Cons to Consider | +| ------------- | ------------- | ------------- | +| (insert suggestion) | (insert suggestion) | (insert suggestion) | + +This step is to make sure that everyone has a chance to voice their thoughts on all the options and their opinions of each so that they feel that all the options are given a chance. + ## Step 3. Coming to a Conclusion through Compromise -If there is a difference of opinion, parties are encouraged to talk to find a compromise. The Solid Specification Repository Manager is responsible for processing the suggestion to a change to the Solid specifications and deciding on the route forward. The repository manager of the repository to which the suggestion pertains to will be responsible for merging and closing the pull request or issue. If a compromise cannot be met the Solid Leader will make the final judgement. +The Solid Manager would collect the options, pros, and cons, and then make sure that everyone on the Decision Panel receives a complete copy of all the information via the github pull request and issue. + +Each individual in the Decision Panel has one vote even if they have multiple criteria for being in the Decision panel, so each person in the Decision Panel has an equal voice. Each individual can vote on a first and second choice, or they can abstain. After counting the first choice votes, the votes from the bottom three options get transferred to the second choice vote to avoid strategic voting that does not reflect the true opinion of the Decision Panel. The votes are recounted and the majority vote wins. The Solid Manager's responsibilities are to -- +* make sure everyone on the Decision Panel is aware of the vote +* explain how they can vote +* collect the final results +* communicate the outcome + +# History + +The Solid project was started by Tim Berners-Lee, who serves as Benevolent Disctator for Life (BDFL) from inception. If there is a difference of opinion, parties are encouraged to talk to find a compromise. The Solid Specification Repository Manager is responsible for processing the suggestion to a change to the Solid specifications and deciding on the route forward. The repository manager of the repository to which the suggestion pertains to will be responsible for merging and closing the pull request or issue. If a compromise cannot be met the Solid Leader will make the final judgement. + +# References + +This document was put together with inspiration and learnings from the following resources. + +* Python (2018) [Python Lanugage](https://www.python.org/dev/peps/pep-0013/) +* Elinor Ostrom (2005) [Understanding Institutional Diversity](https://www.wtf.tw/ref/ostrom_2005.pdf). +* Chales M Schweik and Meelis Kitsting (2010) [Applying Elinor Ostrom’s Rule Classification Framework to the Analysis of Open Source Software Commons. Transnational Corporations Review](http://www.tnc-online.net/pic/2010032809124697.pdf) +* Sean McDonald (2019) [Reclaiming Data Trusts. CIGO](https://www.cigionline.org/articles/reclaiming-data-trusts) +* Aymeric Augustin (xxxx) [Django](https://docs.djangoproject.com/en/dev/internals/organization/) From bc7163e23b31a4e1448c7f684ee7eafb992daaee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mitzi=20L=C3=A1szl=C3=B3?= Date: Tue, 14 May 2019 19:03:14 +0200 Subject: [PATCH 02/16] Update decision-making-processes.md --- decision-making-processes.md | 128 ++++++++++++++++++++++++++--------- 1 file changed, 95 insertions(+), 33 deletions(-) diff --git a/decision-making-processes.md b/decision-making-processes.md index 67e6395..f654ceb 100644 --- a/decision-making-processes.md +++ b/decision-making-processes.md @@ -1,26 +1,36 @@ # Abstract This document is an in-progress proposal which is not currently in effect. It describes how decision-making within the Solid project might work. Importantly, the Solid Leader needs to approve any decision making processes for it to be legitimate and the Solid Leader can block decisions at any point. +In short, the proposal is for the Solid team to lead decision making processes concerning Solid which can involve votes by the Solid Decision Panel. + # Purpose -There are several converstaions happening via pull requests and issues around the Solid specification. Some of these conversations date back to 2015 and there is a range of complexity and degrees of agreement. The Solid project has been worked on by multiple changing teams who each had slightly different ways of coming to consensus. This document is a proposal about legitimate decision-making on Solid between all the parties working on Solid. +There are several converstaions happening via pull requests and issues around the Solid specification. Some of these conversations date back to 2015 and there is a range of complexity and degrees of agreement. The Solid project has been worked on by multiple changing teams who each had slightly different ways of deciding how to decide. Although, largely there is agreement on those working on Solid, it is unclear how to resolve open ended questions especially when there are light differences of opinion between some individuals. Therefore open ended questions tend to lie in a vacuum of uncertainty around how to decide how to decide. This purpose of this proposal is to come to a collective agreement about legitimate decision-making on Solid between all the parties working on Solid. # Scope -At the moment the scope of this document is for changes to the Solid specification. Decisions around the Solid Specification changes need to have a procedure around them to encourage conversation to find accepted legitimate solutions to more complex decisions. - -There are other decisions that may be possible to think about, for example: +At the moment the focus of this document is for changes to the Solid specification. Decisions around the Solid Specification changes need to have a procedure around them to encourage conversation to find accepted legitimate solutions to more complex decisions. There are other decisions that could also fall under this decision making process, including: * How to start a [Solid Project](https://github.com/orgs/solid/projects) i.e. a GitHub project in the Solid Github account? * What to include on the [Solid roadmap](https://github.com/solid/information/blob/master/solid-roadmap.md)? * Which communication channels to use for Solid conversations? -* What to include in the Solid test suite? - -# [The Solid Team](https://github.com/solid/information/blob/master/solid-team.md) - -## Role -The Solid Team is a trusted group who manage Solid. They assume [defined roles](https://github.com/solid/information/blob/master/solid-team.md) required to achieve the Solid project's goals, especially those that require a high level of trust. The specific [defined roles](https://github.com/solid/information/blob/master/solid-team.md) in the Solid team can be edited by anyone through a Github pull request and need to be approved by the Solid Leader. - -They make decisions that shape the future of the project. The Solid Team are expected to act as role models for the community and custodians of the project, on behalf of the community and all those who rely on Solid. The Solid Team will interveve where neccessary, in online conversations or at official Solid Events on the rare occasions that a situation arises that requires intervention. They have authority over Solid Project infrastructure, including the Solid Github organisation and repositories, the bug tracker, mailing lists, conversation channels etc. - -The Solid Team is responsible for: +* What to include in the Solid test suite? +(please add more items you should be on this list) + +# [The Solid Team] +The Solid Team is a 5 person trusted group who manage Solid, which currently consists of: +* Tim Berners-Lee +* Mitzi László +* Kjetil Kjernsmo +* Ruben Verborgh +* Justin Bingham + +The Solid Team assume [defined roles](https://github.com/solid/information/blob/master/solid-team.md) required to achieve the Solid project's goals, especially those that require a high level of trust. The defined [roles and responsibilities](https://github.com/solid/information/blob/master/solid-team.md) as well as indiviudals apointed were defined by open suggestions by anyone on a Github pull request which were ultimately approved by the Solid Leader, Tim Berners-Lee. + +## Mandate +The Solid team shall work to: +* Maintain the quality and stability of Solid +* Make contributing as accessible, inclusive, and sustainable as possible +* Establish appropriate decision-making processes +* Seek consensus among those building on Solid and using Solid before acting in a formal capacity +* Act as a court of final appeal for decisions where all other methods have failed * Coordinating the definition of the Solid values * Coordinating the definition of the Solid specifications including from technical, legal, and design perspectives * Providing examples of the Solid specification under open source licensing @@ -29,38 +39,88 @@ The Solid Team is responsible for: * Coordinating the development of a Solid Test suite to automate the checking of compliance of solutions to the Solid specifications * Providing an updated list of Solid solutions -## Requirements -Solid team members need to demonstrate: -* a good grasp of the philosophy of the Solid Project -* a solid track record of being constructive and helpful -* significant contributions to Solid project's goals, in any form -* willingness to dedicate some time to improving Solid +## Powers +The Solid Team has broad authority to make decisions about Solid. For exmaple, they can: +* Formally accept or reject suggestions (usually in the form of a GitHub pull request or issue) +* Enforce or update the Solid project's code of conduct +* Manage Solid assets and infrastructure, including the Solid Github organisation and repositories, the bug tracker, mailing lists, conversation channels etc. -## Apppoinment -Anyone can apply to a Solid Team role. The Solid Leader appointments candidates to roles. +However, the Solid Team cannot modify this decision making process or affect the membership of the Solid Decision Panel, except via the mechanisms specified in this decision making process document. + +The Solid Team should look for ways to use these powers as little as possible. Instead of voting it's better to seek consensus. Instead of ruling on individuals it's better to define standard processes for decision making. It's better to establish a Code of Conduct committee than to rule on individual cases, etc. + +To use its powers, the Solid Team votes. The Solid leader can always veto the voting outcome. Every Solid Team member must either vote or explicitly abstain. Members with conflicts of interest on a particular vote must abstain. Passing requires a strict majority of non-abstaining council members. + +Whenever possible, the council's deliberations and votes shall be held in public. + +## Electing the Solid Team +A Solid Team election consists of two phases: +* Phase 1: Candidates advertise their interest in serving. Candidates must be nominated by a core team member. Self-nominations are allowed. +* Phase 2: Each individual on the Solid Decision Panel can vote for zero to five of the candidates. Voting is performed anonymously. Candidates are ranked by the total number of votes they receive. If a tie occurs, it may be resolved by mutual agreement among the candidates, or else the winner will be chosen at random. + +Each phase lasts one to two weeks and should be publicly communicated. The election process is managed by the Election Manager nominated by the outgoing Solid Team. + +The Solid Team should ideally reflect the diversity of individuals building on Solid and using Solid. The Solid Decision Panel is encouraged to vote accordingly. + +## Term +A new Solid Team is elected after five years. + +## Vacancies +Solid Team members may resign thier position at any time. + +Whenever there is a vacancy during the regular Solid Team term, an election will take place as described above to appoint a replacement to serve out the rest of the term. + +If a Solid Team member drops out of touch and cannot be contacted for a month or longer for reasons other than sick leave or pregnancy leave, then the rest of the Solid Team may vote to initiate an election as described above. + +Solid Team members may take sick leave or pregnancy leave and an election will take place to appoint an interim individual. + +## Conflicts of Interest +Solid Team members are trusted to act in the best interests of Solid rather than themselves or their employers, the mere appearance of any one company dominating Solid development could itself be harmful and erode trust . In order to avoid any appearance of conflict of interest, at most 2 members of the council can work for any single employer. + +In a Solid Team election, if 3 of the top 5 vote-getters work for the same employer, then whichever of them ranked lowest is disqualified and the 6th-ranking candidate moves up into 5th place; this is repeated until a valid Solid Team is formed. + +During a Solid Team term, if changing circumstances cause this rule to be broken (for instance, due to a Solid Team member changing employment), then one or more Solid Team members must resign to remedy the issue, and the resulting vacancies can then be filled as normal election. + +## Vote of No Confidence +In exceptional circumstances, it may be necessary to remove someone from the Solid Team against their will. (For example: egregious and ongoing code of conduct violations.) This can be accomplished by a Solid Decision Panel vote, but unlike other votes, this requires at least a two-thirds majority. + +A no-confidence vote is triggered when a Solid Decision Panel member calls for one publically on an appropriate project communication channel, and ten other Solid Decision Panel members second the proposal. The vote lasts for two weeks. Solid Decision Panel members vote for or against. If at least two thirds of voters express a lack of confidence, then the vote succeeds. + +There are two forms of no-confidence votes: those targeting a single member, and those targeting the Solid Team as a whole. The initial call for a no-confidence vote must specify which type is intended. If a single-member vote succeeds, then that member is removed from the Solid Team and the resulting vacancy can be handled in the usual way. If a whole-Solid Team vote succeeds, the Solid Team is dissolved and a new Solid Team election is triggered immediately. # The Solid Decision Panel +Solid team members need to demonstrate a good grasp of the philosophy of the Solid Project, a good track record of being constructive and helpful, significant contributions to Solid project's goals, in any form and willingness to dedicate some time to improving Solid. -## Criteria -Possible candidates for the Decision Panel, that could be adapted according to the type of decision include: +## Mandate +The Solid Decision Panel make decisions that shape the future of the project. The Solid Decsion Panel are expected to act as role models acting as custodians of Solid on behalf of all those who rely on Solid. The Solid Team will interveve where neccessary, in online conversations or at official Solid Events on the rare occasions that a situation arises that requires intervention. + +## Requirements +The Solid Decision Panel consists of * [Solid Team](https://github.com/solid/information/blob/master/solid-team.md) * [MIT Solid Project Team](https://solid.mit.edu) -* [W3C Solid Community Group Participants](https://www.w3.org/community/solid/participants) - -The W3C Solid Community Group is open to anyone although there is an application process that may need to be taken into consideration. Potentially it could be wise to make the criteria more specific that the W3C Solid COmmunity Group Participants, for example: * Active Identity Providers * Active Pod providers * Active Solid app providers -* Active Solid Users +* Active Solid Users who show a minimum engagement of having a WebID, Pod, and use at least one Solid app regularly and actively +(please include further sugestions, precautions of existing suggestions, and detailed criteria of existing suggestions) Once there is a Solid Test Suite it could be made a requirement that identity providers, Pod providers, and Solid app providers need to pass the Solid Test Suite to be able to participate in the Solid Decision Panel. -Also, you could have a minimum engagement from Solid users, for example: has a WebID, has Pod, uses a Solid app regularly and actively. +Companies with multiple employees have a vote per individual employee rather than per company. + +## Apppoinment +Anyone can apply to the Solid Decision Panel as long as they fullfill the criteria above. The Solid Leader appointments candidates to roles. + + +# Election Process for Decisions other than Appointing Individuals to Roles +* Changes to the Solid specification +* Changes to the [Solid roadmap](https://github.com/solid/information/blob/master/solid-roadmap.md) +* Changes to the Solid Test Suite +* Starting or changing a [Solid Project](https://github.com/orgs/solid/projects) i.e. a GitHub project in the Solid Github account -# Changes to the Solid Specification ## Step 1. Making a Suggestion -Anyone can suggest a change to the Solid specification by getting a GitHub account and submitting a pull request or issues to the Solid specification repositories. +Anyone can suggest a change by getting a GitHub account and submitting a pull request or issues to the relevant repository on the Solid GitHub account. ## Step 2. Inviting a Conversation around your Suggestion to Find Consensus You will then need to get a W3C account and join the W3C Solid Community Group to raise a conversation about your suggestion as an item on the weekly call agenda. By adding the item to the agenda all members of the W3C Solid Community Group will be automatically notified and therefore are able to comment on the pull request or issue directly. @@ -74,9 +134,11 @@ Anyone can suggest routes forward to the suggested changes with pros and cons of This step is to make sure that everyone has a chance to voice their thoughts on all the options and their opinions of each so that they feel that all the options are given a chance. ## Step 3. Coming to a Conclusion through Compromise -The Solid Manager would collect the options, pros, and cons, and then make sure that everyone on the Decision Panel receives a complete copy of all the information via the github pull request and issue. +The Solid Manager collects the options, pros, and cons, and then make sure that everyone on the Solid Decision Panel receives a complete copy of all the information via the github pull request and issue. + +Each individual in the Decision Panel has one vote even if they have multiple criteria for being in the Decision panel, so each person in the Decision Panel has an equal voice. Each individual can vote on a first and second choice, or they can abstain. After counting the first choice votes, the votes from the bottom three options get transferred to the second choice vote to avoid strategic voting that does not reflect the true opinion of the Decision Panel. The votes are recounted and the majority vote wins. -Each individual in the Decision Panel has one vote even if they have multiple criteria for being in the Decision panel, so each person in the Decision Panel has an equal voice. Each individual can vote on a first and second choice, or they can abstain. After counting the first choice votes, the votes from the bottom three options get transferred to the second choice vote to avoid strategic voting that does not reflect the true opinion of the Decision Panel. The votes are recounted and the majority vote wins. The Solid Manager's responsibilities are to -- +The Solid Manager's responsibilities are to: * make sure everyone on the Decision Panel is aware of the vote * explain how they can vote * collect the final results From 46120574edd5ee13ea9b0a653eca406d9e090ca8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mitzi=20L=C3=A1szl=C3=B3?= Date: Wed, 15 May 2019 09:32:39 +0200 Subject: [PATCH 03/16] Update decision-making-processes.md This document is an in-progress proposal which is not currently in effect. It describes how decision-making within the Solid project might work. Importantly, the Solid Leader needs to approve any decision making processes for it to be legitimate and the Solid Leader can block decisions at any point. In short, the proposal is for the Solid team to lead decision making processes concerning Solid which can involve votes by the Solid Decision Panel. # Purpose There are several converstaions happening via pull requests and issues around the Solid specification. Some of these conversations date back to 2015 and there is a range of complexity and degrees of agreement. The Solid project has been worked on by multiple changing teams who each had slightly different ways of deciding how to decide. Although, largely there is agreement on those working on Solid, it is unclear how to resolve open ended questions especially when there are light differences of opinion between some individuals. Therefore open ended questions tend to lie in a vacuum of uncertainty around how to decide how to decide. This purpose of this proposal is to come to a collective agreement about legitimate decision-making on Solid between all the parties working on Solid. --- decision-making-processes.md | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/decision-making-processes.md b/decision-making-processes.md index f654ceb..7550a96 100644 --- a/decision-making-processes.md +++ b/decision-making-processes.md @@ -1,10 +1,5 @@ # Abstract -This document is an in-progress proposal which is not currently in effect. It describes how decision-making within the Solid project might work. Importantly, the Solid Leader needs to approve any decision making processes for it to be legitimate and the Solid Leader can block decisions at any point. - -In short, the proposal is for the Solid team to lead decision making processes concerning Solid which can involve votes by the Solid Decision Panel. - -# Purpose -There are several converstaions happening via pull requests and issues around the Solid specification. Some of these conversations date back to 2015 and there is a range of complexity and degrees of agreement. The Solid project has been worked on by multiple changing teams who each had slightly different ways of deciding how to decide. Although, largely there is agreement on those working on Solid, it is unclear how to resolve open ended questions especially when there are light differences of opinion between some individuals. Therefore open ended questions tend to lie in a vacuum of uncertainty around how to decide how to decide. This purpose of this proposal is to come to a collective agreement about legitimate decision-making on Solid between all the parties working on Solid. +This document defines the formal governance process for Solid, and records how this has changed over time. Currently, governance is based around Solid Team who consult the Solid Decision Panel for votes on occasion. The Solid Team has broad authority, which they seek to exercise as rarely as possible. The Solid Leader (who is in the Solid Team) needs to approve any decision making processes for it to be legitimate and the Solid Leader can veto decisions at any point. # Scope At the moment the focus of this document is for changes to the Solid specification. Decisions around the Solid Specification changes need to have a procedure around them to encourage conversation to find accepted legitimate solutions to more complex decisions. There are other decisions that could also fall under this decision making process, including: From 13d32257814c6e2238015c927cadaec9fddb2437 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mitzi=20L=C3=A1szl=C3=B3?= Date: Tue, 21 May 2019 18:59:39 +0200 Subject: [PATCH 04/16] Update decision-making-processes.md --- decision-making-processes.md | 37 ++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/decision-making-processes.md b/decision-making-processes.md index 7550a96..add43e8 100644 --- a/decision-making-processes.md +++ b/decision-making-processes.md @@ -1,13 +1,13 @@ # Abstract -This document defines the formal governance process for Solid, and records how this has changed over time. Currently, governance is based around Solid Team who consult the Solid Decision Panel for votes on occasion. The Solid Team has broad authority, which they seek to exercise as rarely as possible. The Solid Leader (who is in the Solid Team) needs to approve any decision making processes for it to be legitimate and the Solid Leader can veto decisions at any point. +This document defines the formal governance process for Solid, and records how this has changed over time. Currently, governance is based around Solid Team who consult the Solid Panel for their opinion via a vote on occasion. The Solid Team has broad authority, which they seek to exercise as rarely as possible. The Solid Leader (who is in the Solid Team) needs to approve any decision making processes for it to be legitimate and the Solid Leader can veto decisions at any point. # Scope -At the moment the focus of this document is for changes to the Solid specification. Decisions around the Solid Specification changes need to have a procedure around them to encourage conversation to find accepted legitimate solutions to more complex decisions. There are other decisions that could also fall under this decision making process, including: +The scope of Solid governance includes but it not limited to: +* Changes to the Solid specification. Decisions around the Solid Specification changes need to have a procedure around them to encourage conversation to find accepted legitimate solutions to more complex decisions. * How to start a [Solid Project](https://github.com/orgs/solid/projects) i.e. a GitHub project in the Solid Github account? * What to include on the [Solid roadmap](https://github.com/solid/information/blob/master/solid-roadmap.md)? * Which communication channels to use for Solid conversations? * What to include in the Solid test suite? -(please add more items you should be on this list) # [The Solid Team] The Solid Team is a 5 person trusted group who manage Solid, which currently consists of: @@ -40,7 +40,7 @@ The Solid Team has broad authority to make decisions about Solid. For exmaple, t * Enforce or update the Solid project's code of conduct * Manage Solid assets and infrastructure, including the Solid Github organisation and repositories, the bug tracker, mailing lists, conversation channels etc. -However, the Solid Team cannot modify this decision making process or affect the membership of the Solid Decision Panel, except via the mechanisms specified in this decision making process document. +However, the Solid Team cannot modify this decision making process or affect the membership of the Solid Panel, except via the mechanisms specified in this decision making process document. The Solid Team should look for ways to use these powers as little as possible. Instead of voting it's better to seek consensus. Instead of ruling on individuals it's better to define standard processes for decision making. It's better to establish a Code of Conduct committee than to rule on individual cases, etc. @@ -50,8 +50,8 @@ Whenever possible, the council's deliberations and votes shall be held in public ## Electing the Solid Team A Solid Team election consists of two phases: -* Phase 1: Candidates advertise their interest in serving. Candidates must be nominated by a core team member. Self-nominations are allowed. -* Phase 2: Each individual on the Solid Decision Panel can vote for zero to five of the candidates. Voting is performed anonymously. Candidates are ranked by the total number of votes they receive. If a tie occurs, it may be resolved by mutual agreement among the candidates, or else the winner will be chosen at random. +* Phase 1: Candidates advertise their interest in serving. Candidates must be nominated by a Solid team member. Self-nominations are allowed. +* Phase 2: Each individual on the Solid Panel can vote for zero to five of the candidates. Voting is performed anonymously. Candidates are ranked by the total number of votes they receive. If a tie occurs, it may be resolved by mutual agreement among the candidates, or else the winner will be chosen at random. Each phase lasts one to two weeks and should be publicly communicated. The election process is managed by the Election Manager nominated by the outgoing Solid Team. @@ -77,20 +77,22 @@ In a Solid Team election, if 3 of the top 5 vote-getters work for the same emplo During a Solid Team term, if changing circumstances cause this rule to be broken (for instance, due to a Solid Team member changing employment), then one or more Solid Team members must resign to remedy the issue, and the resulting vacancies can then be filled as normal election. ## Vote of No Confidence -In exceptional circumstances, it may be necessary to remove someone from the Solid Team against their will. (For example: egregious and ongoing code of conduct violations.) This can be accomplished by a Solid Decision Panel vote, but unlike other votes, this requires at least a two-thirds majority. +In exceptional circumstances, it may be necessary to remove someone from the Solid Team against their will. (For example: egregious and ongoing code of conduct violations.) This can be accomplished by a Solid Panel vote, but unlike other votes, this requires at least a two-thirds majority. -A no-confidence vote is triggered when a Solid Decision Panel member calls for one publically on an appropriate project communication channel, and ten other Solid Decision Panel members second the proposal. The vote lasts for two weeks. Solid Decision Panel members vote for or against. If at least two thirds of voters express a lack of confidence, then the vote succeeds. +A no-confidence vote is triggered when a Solid Panel member calls for one publically on an appropriate project communication channel, and ten other Solid Panel members second the proposal. The vote lasts for two weeks. Solid Panel members vote for or against. If at least two thirds of voters express a lack of confidence, then the vote succeeds. There are two forms of no-confidence votes: those targeting a single member, and those targeting the Solid Team as a whole. The initial call for a no-confidence vote must specify which type is intended. If a single-member vote succeeds, then that member is removed from the Solid Team and the resulting vacancy can be handled in the usual way. If a whole-Solid Team vote succeeds, the Solid Team is dissolved and a new Solid Team election is triggered immediately. -# The Solid Decision Panel -Solid team members need to demonstrate a good grasp of the philosophy of the Solid Project, a good track record of being constructive and helpful, significant contributions to Solid project's goals, in any form and willingness to dedicate some time to improving Solid. +# The Solid Panel +Solid Panel members need to demonstrate a good grasp of the philosophy of the Solid Project, a good track record of being constructive and helpful, significant contributions to Solid project's goals, in any form and willingness to dedicate some time to improving Solid. + +The Solid Team consults the Solid Panel for advice on occasion when an internal Solid Team vote is not sufficient. Sufficiency is judged by the Solid Team. The Solid Panel can request a vote on issues that they feel are important to open up to a wider vote. If there are two Solid Panel members who back the first Solid Panel request for a vote, the vote will go ahead. ## Mandate -The Solid Decision Panel make decisions that shape the future of the project. The Solid Decsion Panel are expected to act as role models acting as custodians of Solid on behalf of all those who rely on Solid. The Solid Team will interveve where neccessary, in online conversations or at official Solid Events on the rare occasions that a situation arises that requires intervention. +The Solid Panel make decisions that shape the future of the project. The Solid Panel are expected to act as role models acting as custodians of Solid on behalf of all those who rely on Solid. The Solid Team will interveve where neccessary, in online conversations or at official Solid Events on the rare occasions that a situation arises that requires intervention. ## Requirements -The Solid Decision Panel consists of +The Solid Panel consists of * [Solid Team](https://github.com/solid/information/blob/master/solid-team.md) * [MIT Solid Project Team](https://solid.mit.edu) * Active Identity Providers @@ -99,13 +101,12 @@ The Solid Decision Panel consists of * Active Solid Users who show a minimum engagement of having a WebID, Pod, and use at least one Solid app regularly and actively (please include further sugestions, precautions of existing suggestions, and detailed criteria of existing suggestions) -Once there is a Solid Test Suite it could be made a requirement that identity providers, Pod providers, and Solid app providers need to pass the Solid Test Suite to be able to participate in the Solid Decision Panel. +Once there is a Solid Test Suite it could be made a requirement that identity providers, Pod providers, and Solid app providers need to pass the Solid Test Suite to be able to participate in the Solid Panel. Companies with multiple employees have a vote per individual employee rather than per company. ## Apppoinment -Anyone can apply to the Solid Decision Panel as long as they fullfill the criteria above. The Solid Leader appointments candidates to roles. - +Anyone can apply to the Solid Panel as long as they fullfill the criteria above. The Solid Leader appointments candidates to roles. # Election Process for Decisions other than Appointing Individuals to Roles * Changes to the Solid specification @@ -129,12 +130,12 @@ Anyone can suggest routes forward to the suggested changes with pros and cons of This step is to make sure that everyone has a chance to voice their thoughts on all the options and their opinions of each so that they feel that all the options are given a chance. ## Step 3. Coming to a Conclusion through Compromise -The Solid Manager collects the options, pros, and cons, and then make sure that everyone on the Solid Decision Panel receives a complete copy of all the information via the github pull request and issue. +The Solid Manager collects the options, pros, and cons, and then make sure that everyone on the Solid Panel receives a complete copy of all the information via the github pull request and issue. -Each individual in the Decision Panel has one vote even if they have multiple criteria for being in the Decision panel, so each person in the Decision Panel has an equal voice. Each individual can vote on a first and second choice, or they can abstain. After counting the first choice votes, the votes from the bottom three options get transferred to the second choice vote to avoid strategic voting that does not reflect the true opinion of the Decision Panel. The votes are recounted and the majority vote wins. +Each individual in the Panel has one vote even if they have multiple criteria for being in the Solid panel, so each person in the Panel has an equal voice. Each individual can vote on a first and second choice, or they can abstain. After counting the first choice votes, the votes from the bottom three options get transferred to the second choice vote to avoid strategic voting that does not reflect the true opinion of the Panel. The votes are recounted and the majority vote wins. The Solid Manager's responsibilities are to: -* make sure everyone on the Decision Panel is aware of the vote +* make sure everyone on the Panel is aware of the vote * explain how they can vote * collect the final results * communicate the outcome From 22887cea2d2af2dded5398b7b41c8e66926746d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mitzi=20L=C3=A1szl=C3=B3?= Date: Mon, 27 May 2019 12:08:28 +0200 Subject: [PATCH 05/16] Update decision-making-processes.md --- decision-making-processes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/decision-making-processes.md b/decision-making-processes.md index add43e8..be556d7 100644 --- a/decision-making-processes.md +++ b/decision-making-processes.md @@ -153,3 +153,4 @@ This document was put together with inspiration and learnings from the following * Chales M Schweik and Meelis Kitsting (2010) [Applying Elinor Ostrom’s Rule Classification Framework to the Analysis of Open Source Software Commons. Transnational Corporations Review](http://www.tnc-online.net/pic/2010032809124697.pdf) * Sean McDonald (2019) [Reclaiming Data Trusts. CIGO](https://www.cigionline.org/articles/reclaiming-data-trusts) * Aymeric Augustin (xxxx) [Django](https://docs.djangoproject.com/en/dev/internals/organization/) +* https://tc39.github.io/process-document/ From 206093745fc601f53f6e663ade99f0012b10efc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mitzi=20L=C3=A1szl=C3=B3?= Date: Mon, 27 May 2019 12:22:22 +0200 Subject: [PATCH 06/16] Update decision-making-processes.md --- decision-making-processes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/decision-making-processes.md b/decision-making-processes.md index be556d7..6e370f2 100644 --- a/decision-making-processes.md +++ b/decision-making-processes.md @@ -94,7 +94,7 @@ The Solid Panel make decisions that shape the future of the project. The Solid P ## Requirements The Solid Panel consists of * [Solid Team](https://github.com/solid/information/blob/master/solid-team.md) -* [MIT Solid Project Team](https://solid.mit.edu) +* former [MIT Solid Project Team](https://solid.mit.edu) * Active Identity Providers * Active Pod providers * Active Solid app providers From e90077ea53ed96c4897ecdb489ba7246b698f742 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mitzi=20L=C3=A1szl=C3=B3?= Date: Mon, 27 May 2019 12:36:40 +0200 Subject: [PATCH 07/16] Update decision-making-processes.md --- decision-making-processes.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/decision-making-processes.md b/decision-making-processes.md index 6e370f2..b375055 100644 --- a/decision-making-processes.md +++ b/decision-making-processes.md @@ -89,7 +89,7 @@ Solid Panel members need to demonstrate a good grasp of the philosophy of the So The Solid Team consults the Solid Panel for advice on occasion when an internal Solid Team vote is not sufficient. Sufficiency is judged by the Solid Team. The Solid Panel can request a vote on issues that they feel are important to open up to a wider vote. If there are two Solid Panel members who back the first Solid Panel request for a vote, the vote will go ahead. ## Mandate -The Solid Panel make decisions that shape the future of the project. The Solid Panel are expected to act as role models acting as custodians of Solid on behalf of all those who rely on Solid. The Solid Team will interveve where neccessary, in online conversations or at official Solid Events on the rare occasions that a situation arises that requires intervention. +The Solid Panel make decisions that shape the future of the project. The Solid Panel are expected to act as role models acting as custodians of Solid on behalf of all those who rely on Solid. The Solid Team will intervene where neccessary, in online conversations or at official Solid Events on the rare occasions that a situation arises that requires intervention. ## Requirements The Solid Panel consists of @@ -99,14 +99,14 @@ The Solid Panel consists of * Active Pod providers * Active Solid app providers * Active Solid Users who show a minimum engagement of having a WebID, Pod, and use at least one Solid app regularly and actively -(please include further sugestions, precautions of existing suggestions, and detailed criteria of existing suggestions) +(please include further suggestions, precautions of existing suggestions, and detailed criteria of existing suggestions) Once there is a Solid Test Suite it could be made a requirement that identity providers, Pod providers, and Solid app providers need to pass the Solid Test Suite to be able to participate in the Solid Panel. Companies with multiple employees have a vote per individual employee rather than per company. -## Apppoinment -Anyone can apply to the Solid Panel as long as they fullfill the criteria above. The Solid Leader appointments candidates to roles. +## Appoinment +Anyone can apply to the Solid Panel as long as they fulfill the criteria above. The Solid Leader appoints candidates to roles. # Election Process for Decisions other than Appointing Individuals to Roles * Changes to the Solid specification @@ -114,7 +114,6 @@ Anyone can apply to the Solid Panel as long as they fullfill the criteria above. * Changes to the Solid Test Suite * Starting or changing a [Solid Project](https://github.com/orgs/solid/projects) i.e. a GitHub project in the Solid Github account - ## Step 1. Making a Suggestion Anyone can suggest a change by getting a GitHub account and submitting a pull request or issues to the relevant repository on the Solid GitHub account. @@ -140,9 +139,11 @@ The Solid Manager's responsibilities are to: * collect the final results * communicate the outcome +Solid specification 0.9 will be released on July 1st, and new versions of the Solid specification will be released every six months For a change to the Solid specification to be merged there needs to be at least one working implemetation that adheres to the changed Solid specification. + # History -The Solid project was started by Tim Berners-Lee, who serves as Benevolent Disctator for Life (BDFL) from inception. If there is a difference of opinion, parties are encouraged to talk to find a compromise. The Solid Specification Repository Manager is responsible for processing the suggestion to a change to the Solid specifications and deciding on the route forward. The repository manager of the repository to which the suggestion pertains to will be responsible for merging and closing the pull request or issue. If a compromise cannot be met the Solid Leader will make the final judgement. +The Solid project was started by Tim Berners-Lee, who has served as Benevolent Dictator for Life (BDFL) from inception. If there is a difference of opinion, parties are encouraged to talk to find a compromise. The Solid Specification Repository Manager is responsible for processing the suggestion to a change to the Solid specifications and deciding on the route forward. The repository manager of the repository to which the suggestion pertains to will be responsible for merging and closing the pull request or issue. If a compromise cannot be met the Solid Leader will make the final judgement. # References From d979f456c3e6d445f526583fd181fe7ea0bc714f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mitzi=20L=C3=A1szl=C3=B3?= Date: Tue, 28 May 2019 09:08:26 +0200 Subject: [PATCH 08/16] Included Vincent's Comments Vincent's initial comments were: "There's three instances of the word "council" there - I think that should be Team? And "exmaple" should be "example" :slightly_smiling_face: Some other remarks: - It says: "The Solid Panel can request a vote on issues that they feel are important to open up to a wider vote." However, it's not clear what "a wider vote" means - is that among the Solid panel, or open to everyone, or...? - The election process for non-appointments states that it also applies to "changing a Solid Project", but it's not clear what constitutes a change - assuming not every line of code will need to go through a formal process other than a PR. - There's also mention of a "Solid Manager", but it's not stated who that is. It also seems like a lot of work to coordinate every vote - perhaps that would be better suited to the initial proposer, i.e. the "champion"? - I've got a feeling that it's not unlikely that some members of the Panel will not be able to respond in a timely manner, or at all, to every vote. Thus, it might be a good idea to explicitly set time limits during which the Panel can vote on proposals, after which a non-vote will count as abstaining. Ah, I see the Solid Team page includes a description of the Manager, but nothing about how they get appointed." --- decision-making-processes.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/decision-making-processes.md b/decision-making-processes.md index b375055..f97c934 100644 --- a/decision-making-processes.md +++ b/decision-making-processes.md @@ -35,7 +35,7 @@ The Solid team shall work to: * Providing an updated list of Solid solutions ## Powers -The Solid Team has broad authority to make decisions about Solid. For exmaple, they can: +The Solid Team has broad authority to make decisions about Solid. For example, they can: * Formally accept or reject suggestions (usually in the form of a GitHub pull request or issue) * Enforce or update the Solid project's code of conduct * Manage Solid assets and infrastructure, including the Solid Github organisation and repositories, the bug tracker, mailing lists, conversation channels etc. @@ -44,9 +44,9 @@ However, the Solid Team cannot modify this decision making process or affect the The Solid Team should look for ways to use these powers as little as possible. Instead of voting it's better to seek consensus. Instead of ruling on individuals it's better to define standard processes for decision making. It's better to establish a Code of Conduct committee than to rule on individual cases, etc. -To use its powers, the Solid Team votes. The Solid leader can always veto the voting outcome. Every Solid Team member must either vote or explicitly abstain. Members with conflicts of interest on a particular vote must abstain. Passing requires a strict majority of non-abstaining council members. +To use its powers, the Solid Team votes. The Solid leader can always veto the voting outcome. Every Solid Team member must either vote or explicitly abstain. Members with conflicts of interest on a particular vote must abstain. Passing requires a strict majority of non-abstaining Solid Team members. -Whenever possible, the council's deliberations and votes shall be held in public. +Whenever possible, the Solid Team's deliberations and votes shall be held in public. ## Electing the Solid Team A Solid Team election consists of two phases: @@ -70,7 +70,7 @@ If a Solid Team member drops out of touch and cannot be contacted for a month or Solid Team members may take sick leave or pregnancy leave and an election will take place to appoint an interim individual. ## Conflicts of Interest -Solid Team members are trusted to act in the best interests of Solid rather than themselves or their employers, the mere appearance of any one company dominating Solid development could itself be harmful and erode trust . In order to avoid any appearance of conflict of interest, at most 2 members of the council can work for any single employer. +Solid Team members are trusted to act in the best interests of Solid rather than themselves or their employers, the mere appearance of any one company dominating Solid development could itself be harmful and erode trust . In order to avoid any appearance of conflict of interest, at most 2 members of the Solid Team can work for any single employer. In a Solid Team election, if 3 of the top 5 vote-getters work for the same employer, then whichever of them ranked lowest is disqualified and the 6th-ranking candidate moves up into 5th place; this is repeated until a valid Solid Team is formed. @@ -86,7 +86,7 @@ There are two forms of no-confidence votes: those targeting a single member, and # The Solid Panel Solid Panel members need to demonstrate a good grasp of the philosophy of the Solid Project, a good track record of being constructive and helpful, significant contributions to Solid project's goals, in any form and willingness to dedicate some time to improving Solid. -The Solid Team consults the Solid Panel for advice on occasion when an internal Solid Team vote is not sufficient. Sufficiency is judged by the Solid Team. The Solid Panel can request a vote on issues that they feel are important to open up to a wider vote. If there are two Solid Panel members who back the first Solid Panel request for a vote, the vote will go ahead. +The Solid Team consults the Solid Panel for advice on occasion when an internal Solid Team vote is not sufficient. Sufficiency is judged by the Solid Team. The Solid Panel can request a vote on issues that they feel are important to open up to a Solid panel. If there are two Solid Panel members who back the first Solid Panel request for a vote, the vote will go ahead. ## Mandate The Solid Panel make decisions that shape the future of the project. The Solid Panel are expected to act as role models acting as custodians of Solid on behalf of all those who rely on Solid. The Solid Team will intervene where neccessary, in online conversations or at official Solid Events on the rare occasions that a situation arises that requires intervention. @@ -112,7 +112,7 @@ Anyone can apply to the Solid Panel as long as they fulfill the criteria above. * Changes to the Solid specification * Changes to the [Solid roadmap](https://github.com/solid/information/blob/master/solid-roadmap.md) * Changes to the Solid Test Suite -* Starting or changing a [Solid Project](https://github.com/orgs/solid/projects) i.e. a GitHub project in the Solid Github account +* Starting or changing the aim or project manager of a [Solid Project](https://github.com/orgs/solid/projects) i.e. a GitHub project in the Solid Github account ## Step 1. Making a Suggestion Anyone can suggest a change by getting a GitHub account and submitting a pull request or issues to the relevant repository on the Solid GitHub account. @@ -129,11 +129,11 @@ Anyone can suggest routes forward to the suggested changes with pros and cons of This step is to make sure that everyone has a chance to voice their thoughts on all the options and their opinions of each so that they feel that all the options are given a chance. ## Step 3. Coming to a Conclusion through Compromise -The Solid Manager collects the options, pros, and cons, and then make sure that everyone on the Solid Panel receives a complete copy of all the information via the github pull request and issue. +The Solid Team collects the options, pros, and cons, and then make sure that everyone on the Solid Panel receives a complete copy of all the information via the github pull request and issue. -Each individual in the Panel has one vote even if they have multiple criteria for being in the Solid panel, so each person in the Panel has an equal voice. Each individual can vote on a first and second choice, or they can abstain. After counting the first choice votes, the votes from the bottom three options get transferred to the second choice vote to avoid strategic voting that does not reflect the true opinion of the Panel. The votes are recounted and the majority vote wins. +Each individual in the Panel has one vote even if they have multiple criteria for being in the Solid panel, so each person in the Panel has an equal voice. Each individual can vote on a first and second choice, or they can abstain. Each individual in the Panel has seven days to vote. If the individaul does not vote after seven days their vote will automatically be counted as an abstaining vote. After counting the first choice votes, the votes from the bottom three options get transferred to the second choice vote to avoid strategic voting that does not reflect the true opinion of the Panel. The votes are recounted and the majority vote wins. -The Solid Manager's responsibilities are to: +The Solid Team's responsibilities are to: * make sure everyone on the Panel is aware of the vote * explain how they can vote * collect the final results From fc766348a54760f9fc2da056e4d28c6eea9b0253 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mitzi=20L=C3=A1szl=C3=B3?= Date: Wed, 29 May 2019 18:29:38 +0200 Subject: [PATCH 09/16] Update decision-making-processes.md switched from BDFL (term inherited from Python) to Solid Leader --- decision-making-processes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/decision-making-processes.md b/decision-making-processes.md index f97c934..dcf6e68 100644 --- a/decision-making-processes.md +++ b/decision-making-processes.md @@ -143,7 +143,7 @@ Solid specification 0.9 will be released on July 1st, and new versions of the So # History -The Solid project was started by Tim Berners-Lee, who has served as Benevolent Dictator for Life (BDFL) from inception. If there is a difference of opinion, parties are encouraged to talk to find a compromise. The Solid Specification Repository Manager is responsible for processing the suggestion to a change to the Solid specifications and deciding on the route forward. The repository manager of the repository to which the suggestion pertains to will be responsible for merging and closing the pull request or issue. If a compromise cannot be met the Solid Leader will make the final judgement. +The Solid project was started by Tim Berners-Lee, who has served as the Solid Leader from inception. If there is a difference of opinion, parties are encouraged to talk to find a compromise. The Solid Specification Repository Manager is responsible for processing the suggestion to a change to the Solid specifications and deciding on the route forward. The repository manager of the repository to which the suggestion pertains to will be responsible for merging and closing the pull request or issue. If a compromise cannot be met the Solid Leader will make the final judgement. # References From 727faeffe61b86410e8457bb501a746da067838e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mitzi=20L=C3=A1szl=C3=B3?= Date: Wed, 29 May 2019 18:31:19 +0200 Subject: [PATCH 10/16] Update decision-making-processes.md included suggestion from Ruben to have the table as an optional format --- decision-making-processes.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/decision-making-processes.md b/decision-making-processes.md index dcf6e68..301f071 100644 --- a/decision-making-processes.md +++ b/decision-making-processes.md @@ -120,7 +120,9 @@ Anyone can suggest a change by getting a GitHub account and submitting a pull re ## Step 2. Inviting a Conversation around your Suggestion to Find Consensus You will then need to get a W3C account and join the W3C Solid Community Group to raise a conversation about your suggestion as an item on the weekly call agenda. By adding the item to the agenda all members of the W3C Solid Community Group will be automatically notified and therefore are able to comment on the pull request or issue directly. -Anyone can suggest routes forward to the suggested changes with pros and cons of each route forward on the original pull request or issues. Below is a table format where all the final suggested routes forward, pros and cons should be included. +Anyone can suggest routes forward to the suggested changes with pros and cons of each route forward on the original pull request or issues. + +Below is a suggested table format where all the final suggested routes forward, pros and cons could be included when the conversation becomes longer and more complex. | Route Forward | Pros to Consider | Cons to Consider | | ------------- | ------------- | ------------- | From d586625882903f62faea8e6a7c455d27781d467e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mitzi=20L=C3=A1szl=C3=B3?= Date: Wed, 29 May 2019 18:32:26 +0200 Subject: [PATCH 11/16] Update decision-making-processes.md typo --- decision-making-processes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/decision-making-processes.md b/decision-making-processes.md index 301f071..93c1c5a 100644 --- a/decision-making-processes.md +++ b/decision-making-processes.md @@ -61,7 +61,7 @@ The Solid Team should ideally reflect the diversity of individuals building on S A new Solid Team is elected after five years. ## Vacancies -Solid Team members may resign thier position at any time. +Solid Team members may resign their position at any time. Whenever there is a vacancy during the regular Solid Team term, an election will take place as described above to appoint a replacement to serve out the rest of the term. From 74dabc465bae9c8544beb4f5fd5598436aa1f0e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mitzi=20L=C3=A1szl=C3=B3?= Date: Wed, 29 May 2019 18:49:51 +0200 Subject: [PATCH 12/16] Update decision-making-processes.md typo fix suggestions from Pat included --- decision-making-processes.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/decision-making-processes.md b/decision-making-processes.md index 93c1c5a..54871d6 100644 --- a/decision-making-processes.md +++ b/decision-making-processes.md @@ -2,7 +2,7 @@ This document defines the formal governance process for Solid, and records how this has changed over time. Currently, governance is based around Solid Team who consult the Solid Panel for their opinion via a vote on occasion. The Solid Team has broad authority, which they seek to exercise as rarely as possible. The Solid Leader (who is in the Solid Team) needs to approve any decision making processes for it to be legitimate and the Solid Leader can veto decisions at any point. # Scope -The scope of Solid governance includes but it not limited to: +The scope of Solid governance includes but is not limited to: * Changes to the Solid specification. Decisions around the Solid Specification changes need to have a procedure around them to encourage conversation to find accepted legitimate solutions to more complex decisions. * How to start a [Solid Project](https://github.com/orgs/solid/projects) i.e. a GitHub project in the Solid Github account? * What to include on the [Solid roadmap](https://github.com/solid/information/blob/master/solid-roadmap.md)? @@ -17,7 +17,7 @@ The Solid Team is a 5 person trusted group who manage Solid, which currently con * Ruben Verborgh * Justin Bingham -The Solid Team assume [defined roles](https://github.com/solid/information/blob/master/solid-team.md) required to achieve the Solid project's goals, especially those that require a high level of trust. The defined [roles and responsibilities](https://github.com/solid/information/blob/master/solid-team.md) as well as indiviudals apointed were defined by open suggestions by anyone on a Github pull request which were ultimately approved by the Solid Leader, Tim Berners-Lee. +The Solid Team assume [defined roles](https://github.com/solid/information/blob/master/solid-team.md) required to achieve the Solid project's goals, especially those that require a high level of trust. The defined [roles and responsibilities](https://github.com/solid/information/blob/master/solid-team.md) as well as individuals appointed were defined by open suggestions by anyone on a Github pull request which were ultimately approved by the Solid Leader, Tim Berners-Lee. ## Mandate The Solid team shall work to: @@ -40,7 +40,7 @@ The Solid Team has broad authority to make decisions about Solid. For example, t * Enforce or update the Solid project's code of conduct * Manage Solid assets and infrastructure, including the Solid Github organisation and repositories, the bug tracker, mailing lists, conversation channels etc. -However, the Solid Team cannot modify this decision making process or affect the membership of the Solid Panel, except via the mechanisms specified in this decision making process document. +However, the Solid Team cannot modify this decision making process or affect the membership of the Solid Panel (see below for description of Solid Panel), except via the mechanisms specified in this decision making process document. The Solid Team should look for ways to use these powers as little as possible. Instead of voting it's better to seek consensus. Instead of ruling on individuals it's better to define standard processes for decision making. It's better to establish a Code of Conduct committee than to rule on individual cases, etc. @@ -51,6 +51,7 @@ Whenever possible, the Solid Team's deliberations and votes shall be held in pub ## Electing the Solid Team A Solid Team election consists of two phases: * Phase 1: Candidates advertise their interest in serving. Candidates must be nominated by a Solid team member. Self-nominations are allowed. + * Phase 2: Each individual on the Solid Panel can vote for zero to five of the candidates. Voting is performed anonymously. Candidates are ranked by the total number of votes they receive. If a tie occurs, it may be resolved by mutual agreement among the candidates, or else the winner will be chosen at random. Each phase lasts one to two weeks and should be publicly communicated. The election process is managed by the Election Manager nominated by the outgoing Solid Team. @@ -141,7 +142,7 @@ The Solid Team's responsibilities are to: * collect the final results * communicate the outcome -Solid specification 0.9 will be released on July 1st, and new versions of the Solid specification will be released every six months For a change to the Solid specification to be merged there needs to be at least one working implemetation that adheres to the changed Solid specification. +Solid specification 0.9 will be released on July 1st, and new versions of the Solid specification will be released every six months. For a change to the Solid specification to be merged there needs to be at least one working implemetation that adheres to the changed Solid specification. # History From 1844cd85cbd58c3f9edb69289991c8ba26bb7146 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mitzi=20L=C3=A1szl=C3=B3?= Date: Wed, 29 May 2019 18:57:54 +0200 Subject: [PATCH 13/16] Update decision-making-processes.md --- decision-making-processes.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/decision-making-processes.md b/decision-making-processes.md index 54871d6..57067c2 100644 --- a/decision-making-processes.md +++ b/decision-making-processes.md @@ -49,7 +49,10 @@ To use its powers, the Solid Team votes. The Solid leader can always veto the vo Whenever possible, the Solid Team's deliberations and votes shall be held in public. ## Electing the Solid Team -A Solid Team election consists of two phases: + +The first Solid Team including Mitzi László, Kjetil Kjernsmo, Ruben Verborgh, and Justin Bingham is appointed directly by the Solid Leader for a five year appointment. + +Following Solid Teams will be appointed through election. A Solid Team election consists of two phases: * Phase 1: Candidates advertise their interest in serving. Candidates must be nominated by a Solid team member. Self-nominations are allowed. * Phase 2: Each individual on the Solid Panel can vote for zero to five of the candidates. Voting is performed anonymously. Candidates are ranked by the total number of votes they receive. If a tie occurs, it may be resolved by mutual agreement among the candidates, or else the winner will be chosen at random. @@ -71,7 +74,7 @@ If a Solid Team member drops out of touch and cannot be contacted for a month or Solid Team members may take sick leave or pregnancy leave and an election will take place to appoint an interim individual. ## Conflicts of Interest -Solid Team members are trusted to act in the best interests of Solid rather than themselves or their employers, the mere appearance of any one company dominating Solid development could itself be harmful and erode trust . In order to avoid any appearance of conflict of interest, at most 2 members of the Solid Team can work for any single employer. +Solid Team members are trusted to act in the best interests of Solid rather than themselves or their employers, the mere appearance of any one company dominating Solid development could itself be harmful and erode trust . In order to avoid any appearance of conflict of interest, at most 2 members of the Solid Team can work for any single employer. This does not apply for the first appointment of the first Solid Team because there is a single dominant employer working on Solid at the time. In a Solid Team election, if 3 of the top 5 vote-getters work for the same employer, then whichever of them ranked lowest is disqualified and the 6th-ranking candidate moves up into 5th place; this is repeated until a valid Solid Team is formed. @@ -90,7 +93,7 @@ Solid Panel members need to demonstrate a good grasp of the philosophy of the So The Solid Team consults the Solid Panel for advice on occasion when an internal Solid Team vote is not sufficient. Sufficiency is judged by the Solid Team. The Solid Panel can request a vote on issues that they feel are important to open up to a Solid panel. If there are two Solid Panel members who back the first Solid Panel request for a vote, the vote will go ahead. ## Mandate -The Solid Panel make decisions that shape the future of the project. The Solid Panel are expected to act as role models acting as custodians of Solid on behalf of all those who rely on Solid. The Solid Team will intervene where neccessary, in online conversations or at official Solid Events on the rare occasions that a situation arises that requires intervention. +The Solid Panel give advice that shape the future of the project. The Solid Panel are expected to act as role models acting as custodians of Solid on behalf of all those who rely on Solid. The Solid Team will intervene where neccessary, in online conversations or at official Solid Events on the rare occasions that a situation arises that requires intervention. ## Requirements The Solid Panel consists of From 57872e05a53464020d9b39b1a98bc8a79ec747a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mitzi=20L=C3=A1szl=C3=B3?= Date: Fri, 31 May 2019 10:03:06 +0200 Subject: [PATCH 14/16] Update decision-making-processes.md include comments from the pull request conversation about allowing for Solid Team led decisions and the way in which a voting process is triggered. --- decision-making-processes.md | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/decision-making-processes.md b/decision-making-processes.md index 57067c2..904e916 100644 --- a/decision-making-processes.md +++ b/decision-making-processes.md @@ -1,13 +1,15 @@ # Abstract -This document defines the formal governance process for Solid, and records how this has changed over time. Currently, governance is based around Solid Team who consult the Solid Panel for their opinion via a vote on occasion. The Solid Team has broad authority, which they seek to exercise as rarely as possible. The Solid Leader (who is in the Solid Team) needs to approve any decision making processes for it to be legitimate and the Solid Leader can veto decisions at any point. +This document defines the formal governance process for Solid, and records how this has changed over time. Currently, governance is based around Solid Team who consult the Solid Panel for their opinion via a vote on occasion. + +The Solid Team has broad authority, which they seek to exercise as rarely as possible. The Solid Leader (who is in the Solid Team) needs to approve any decision making processes for it to be legitimate and the Solid Leader can veto decisions at any point. # Scope The scope of Solid governance includes but is not limited to: * Changes to the Solid specification. Decisions around the Solid Specification changes need to have a procedure around them to encourage conversation to find accepted legitimate solutions to more complex decisions. -* How to start a [Solid Project](https://github.com/orgs/solid/projects) i.e. a GitHub project in the Solid Github account? -* What to include on the [Solid roadmap](https://github.com/solid/information/blob/master/solid-roadmap.md)? -* Which communication channels to use for Solid conversations? -* What to include in the Solid test suite? +* How to start a [Solid Project](https://github.com/orgs/solid/projects) i.e. a GitHub project in the Solid Github account +* What to include on the [Solid roadmap](https://github.com/solid/information/blob/master/solid-roadmap.md) +* Which communication channels to use for Solid conversations +* What to include in the Solid test suite # [The Solid Team] The Solid Team is a 5 person trusted group who manage Solid, which currently consists of: @@ -92,6 +94,8 @@ Solid Panel members need to demonstrate a good grasp of the philosophy of the So The Solid Team consults the Solid Panel for advice on occasion when an internal Solid Team vote is not sufficient. Sufficiency is judged by the Solid Team. The Solid Panel can request a vote on issues that they feel are important to open up to a Solid panel. If there are two Solid Panel members who back the first Solid Panel request for a vote, the vote will go ahead. +A [list of the current Solid Panel members](https://github.com/solid/information/blob/master/solid-panel.md) can be found. + ## Mandate The Solid Panel give advice that shape the future of the project. The Solid Panel are expected to act as role models acting as custodians of Solid on behalf of all those who rely on Solid. The Solid Team will intervene where neccessary, in online conversations or at official Solid Events on the rare occasions that a situation arises that requires intervention. @@ -112,12 +116,14 @@ Companies with multiple employees have a vote per individual employee rather tha ## Appoinment Anyone can apply to the Solid Panel as long as they fulfill the criteria above. The Solid Leader appoints candidates to roles. -# Election Process for Decisions other than Appointing Individuals to Roles +# Decision Making Process +Decisions other than appointing individuals to roles, such as those listed below, are made in the following way. * Changes to the Solid specification * Changes to the [Solid roadmap](https://github.com/solid/information/blob/master/solid-roadmap.md) * Changes to the Solid Test Suite * Starting or changing the aim or project manager of a [Solid Project](https://github.com/orgs/solid/projects) i.e. a GitHub project in the Solid Github account + ## Step 1. Making a Suggestion Anyone can suggest a change by getting a GitHub account and submitting a pull request or issues to the relevant repository on the Solid GitHub account. @@ -134,8 +140,14 @@ Below is a suggested table format where all the final suggested routes forward, This step is to make sure that everyone has a chance to voice their thoughts on all the options and their opinions of each so that they feel that all the options are given a chance. +The original pull request or issue needs to be open for one week unless it's a typo correction. + ## Step 3. Coming to a Conclusion through Compromise -The Solid Team collects the options, pros, and cons, and then make sure that everyone on the Solid Panel receives a complete copy of all the information via the github pull request and issue. +The Solid Team will make a decision about if to include the suggestion. + +If five members of the Solid Panel raise concern about the decision of the Solid Team this triggers the voting process. + +The voting process occurs in the following way. The Solid Team collects the options, pros, and cons, and then make sure that everyone on the Solid Panel receives a complete copy of all the information via the github pull request and issue. Each individual in the Panel has one vote even if they have multiple criteria for being in the Solid panel, so each person in the Panel has an equal voice. Each individual can vote on a first and second choice, or they can abstain. Each individual in the Panel has seven days to vote. If the individaul does not vote after seven days their vote will automatically be counted as an abstaining vote. After counting the first choice votes, the votes from the bottom three options get transferred to the second choice vote to avoid strategic voting that does not reflect the true opinion of the Panel. The votes are recounted and the majority vote wins. From 1742df2bd78a8e3b99fe50b3ecf31641c5654ad5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mitzi=20L=C3=A1szl=C3=B3?= Date: Fri, 31 May 2019 17:16:45 +0200 Subject: [PATCH 15/16] Update decision-making-processes.md small typo and structure changes to make it an easier read --- decision-making-processes.md | 38 ++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/decision-making-processes.md b/decision-making-processes.md index 904e916..6ec5894 100644 --- a/decision-making-processes.md +++ b/decision-making-processes.md @@ -4,12 +4,12 @@ This document defines the formal governance process for Solid, and records how t The Solid Team has broad authority, which they seek to exercise as rarely as possible. The Solid Leader (who is in the Solid Team) needs to approve any decision making processes for it to be legitimate and the Solid Leader can veto decisions at any point. # Scope -The scope of Solid governance includes but is not limited to: -* Changes to the Solid specification. Decisions around the Solid Specification changes need to have a procedure around them to encourage conversation to find accepted legitimate solutions to more complex decisions. -* How to start a [Solid Project](https://github.com/orgs/solid/projects) i.e. a GitHub project in the Solid Github account -* What to include on the [Solid roadmap](https://github.com/solid/information/blob/master/solid-roadmap.md) -* Which communication channels to use for Solid conversations -* What to include in the Solid test suite +The scope of Solid governance includes but is not limited to changes to: +* The Solid specification +* Solid test suite +* [Solid roadmap](https://github.com/solid/information/blob/master/solid-roadmap.md) +* [Solid Projects](https://github.com/orgs/solid/projects) i.e. a GitHub project in the Solid Github account +* Communication channels to use for Solid conversations # [The Solid Team] The Solid Team is a 5 person trusted group who manage Solid, which currently consists of: @@ -21,6 +21,8 @@ The Solid Team is a 5 person trusted group who manage Solid, which currently con The Solid Team assume [defined roles](https://github.com/solid/information/blob/master/solid-team.md) required to achieve the Solid project's goals, especially those that require a high level of trust. The defined [roles and responsibilities](https://github.com/solid/information/blob/master/solid-team.md) as well as individuals appointed were defined by open suggestions by anyone on a Github pull request which were ultimately approved by the Solid Leader, Tim Berners-Lee. +The first Solid Team including Mitzi László, Kjetil Kjernsmo, Ruben Verborgh, and Justin Bingham is appointed directly by the Solid Leader for a five year appointment. + ## Mandate The Solid team shall work to: * Maintain the quality and stability of Solid @@ -51,9 +53,6 @@ To use its powers, the Solid Team votes. The Solid leader can always veto the vo Whenever possible, the Solid Team's deliberations and votes shall be held in public. ## Electing the Solid Team - -The first Solid Team including Mitzi László, Kjetil Kjernsmo, Ruben Verborgh, and Justin Bingham is appointed directly by the Solid Leader for a five year appointment. - Following Solid Teams will be appointed through election. A Solid Team election consists of two phases: * Phase 1: Candidates advertise their interest in serving. Candidates must be nominated by a Solid team member. Self-nominations are allowed. @@ -97,7 +96,7 @@ The Solid Team consults the Solid Panel for advice on occasion when an internal A [list of the current Solid Panel members](https://github.com/solid/information/blob/master/solid-panel.md) can be found. ## Mandate -The Solid Panel give advice that shape the future of the project. The Solid Panel are expected to act as role models acting as custodians of Solid on behalf of all those who rely on Solid. The Solid Team will intervene where neccessary, in online conversations or at official Solid Events on the rare occasions that a situation arises that requires intervention. +The Solid Panel gives advice that shapes the future of the project. The Solid Panel are expected to act as role models acting as custodians of Solid on behalf of all those who rely on Solid. The Solid Panel will intervene where neccessary, in online conversations or at official Solid Events on the rare occasions that a situation arises that requires intervention. ## Requirements The Solid Panel consists of @@ -123,16 +122,16 @@ Decisions other than appointing individuals to roles, such as those listed below * Changes to the Solid Test Suite * Starting or changing the aim or project manager of a [Solid Project](https://github.com/orgs/solid/projects) i.e. a GitHub project in the Solid Github account - -## Step 1. Making a Suggestion +## Standard Decision Making Process +Step 1. Making a Suggestion Anyone can suggest a change by getting a GitHub account and submitting a pull request or issues to the relevant repository on the Solid GitHub account. -## Step 2. Inviting a Conversation around your Suggestion to Find Consensus -You will then need to get a W3C account and join the W3C Solid Community Group to raise a conversation about your suggestion as an item on the weekly call agenda. By adding the item to the agenda all members of the W3C Solid Community Group will be automatically notified and therefore are able to comment on the pull request or issue directly. +Step 2. Inviting a Conversation around your Suggestion to Find Consensus +You can post the pull request or issue on the relevant channels to invite conversation. Anyone can suggest routes forward to the suggested changes with pros and cons of each route forward on the original pull request or issues. -Below is a suggested table format where all the final suggested routes forward, pros and cons could be included when the conversation becomes longer and more complex. +Below is a possible table format where all the final suggested routes forward, pros and cons could be included when the conversation becomes longer and more complex. | Route Forward | Pros to Consider | Cons to Consider | | ------------- | ------------- | ------------- | @@ -140,12 +139,13 @@ Below is a suggested table format where all the final suggested routes forward, This step is to make sure that everyone has a chance to voice their thoughts on all the options and their opinions of each so that they feel that all the options are given a chance. -The original pull request or issue needs to be open for one week unless it's a typo correction. +If the suggestion is a change to the Solid specification ou will then need to get a W3C account and join the W3C Solid Community Group to raise a conversation about your suggestion as an item on the weekly call agenda. By adding the item to the agenda all members of the W3C Solid Community Group will be automatically notified and therefore are able to comment on the pull request or issue directly. If the suggestion is a change to the Solid specification then you will need to state why this change is necessary. For example, is it to remove ambiguity or to provide a more beautiful solution to something that is already solved. -## Step 3. Coming to a Conclusion through Compromise -The Solid Team will make a decision about if to include the suggestion. +Step 3. Coming to a Conclusion through Compromise +The Solid Team will make a decision about if to include the suggestion. The original pull request or issue needs to be open for one week unless it's a typo correction. -If five members of the Solid Panel raise concern about the decision of the Solid Team this triggers the voting process. +## Elaborate Decision Making Process +If three members of the Solid Panel raise a concern about the decision of the Solid Team this triggers the voting process. The voting process occurs in the following way. The Solid Team collects the options, pros, and cons, and then make sure that everyone on the Solid Panel receives a complete copy of all the information via the github pull request and issue. From fcaf22a3b682a720b05ec7c79d8cf1a6c77919eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mitzi=20L=C3=A1szl=C3=B3?= Date: Sat, 1 Jun 2019 15:43:48 +0200 Subject: [PATCH 16/16] Update decision-making-processes.md include review period --- decision-making-processes.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/decision-making-processes.md b/decision-making-processes.md index 6ec5894..cc841a2 100644 --- a/decision-making-processes.md +++ b/decision-making-processes.md @@ -3,6 +3,8 @@ This document defines the formal governance process for Solid, and records how t The Solid Team has broad authority, which they seek to exercise as rarely as possible. The Solid Leader (who is in the Solid Team) needs to approve any decision making processes for it to be legitimate and the Solid Leader can veto decisions at any point. +This document is to be reviewed when there are one thousand eligible candidates for the Solid Panel (see description of Solid Panel below). + # Scope The scope of Solid governance includes but is not limited to changes to: * The Solid specification @@ -11,6 +13,8 @@ The scope of Solid governance includes but is not limited to changes to: * [Solid Projects](https://github.com/orgs/solid/projects) i.e. a GitHub project in the Solid Github account * Communication channels to use for Solid conversations + + # [The Solid Team] The Solid Team is a 5 person trusted group who manage Solid, which currently consists of: * Tim Berners-Lee