Difference between revisions of "Roles"

From Bisq Wiki
Jump to navigation Jump to search
m (The Roles Maintainer role)
m (Reverted edits by HunterNyan (talk) to last revision by Cbeams)
Tags: Rollback Replaced
Line 1: Line 1:
 
This article is a stub pending the transcription of https://docs.bisq.network/roles.html here to the wiki. See https://github.com/bisq-network/roles/issues for the canonical list of all current roles and see [[:Category:Roles|Category:Roles]] for a list of all roles documented here on the wiki.
 
This article is a stub pending the transcription of https://docs.bisq.network/roles.html here to the wiki. See https://github.com/bisq-network/roles/issues for the canonical list of all current roles and see [[:Category:Roles|Category:Roles]] for a list of all roles documented here on the wiki.
 
Roles are the way contributors take responsibility for Bisq Network resources and processes.
 
  
 
__TOC__
 
__TOC__
  
=Introduction=
+
== Documentation ==
There are many resources and processes vital to the operation of the Bisq Network that require ownership by individual contributors. For example, someone must merge pull requests into the ''bisq-desktop'' repository, someone must manage DNS for the ''bisq.network'' domain, someone must conduct monthly stakeholder voting, and so on.
 
  
This document defines the system of '''roles''' used within the Bisq DAO to enumerate, define and track each of these responsibilities. The system is designed with two major goals in mind:
+
Each role should be documented as a wiki article using using the template below.
# To maximize role owner autonomy in order to achieve Phase Zero decentralization goals.
 
# To maximize transparency such that DAO stakeholders can effectively review and vote on role owner compensation requests.
 
  
=Properties=
+
<nowiki>
The following are properties common to all roles.
+
This article documents the ''<Role Name>'' [[role]].
  
==Duties==
+
__TOC__
'''Duties''' are actions that must be performed for a certain resource or process to function normally.
 
For example, a repository maintainer’s duties include merging pull requests in a timely fashion, and a website operator’s duties include keeping the site available at all times.
 
 
 
==Rights==
 
'''Rights''' are special permissions or other access required to perform the Duties of a role.
 
 
 
For example, a repository maintainer’s rights include write permissions to their repository, and a website operator’s rights include administrative access to site hosting infrastructure.
 
 
 
==Owners==
 
Owners are contributors who have the Rights required to perform the Duties of a role.
 
 
 
One owner is designated as primary and any other owners are designated as secondary.[https://github.com/bisq-network/proposals/issues/12 Propsal Link] The primary is responsible for performing the Duties of the role, while secondaries stand by, ready to take over for the primary at any time.
 
 
 
=Infrastructure=
 
The following infrastructure is used to define and manage each role.
 
 
 
==Docs==
 
Each role should be documented at bisq.wiki, in a document of its own, under the Category [[Category:Roles]] and be references sections of larger documents dedicated to a resource or process in question.
 
 
 
For example, there is "[[Proposals Maintainer]]", and in the [[Proposals]] document it pulls it into the Maintainer section within.
 
 
 
Each role’s documentation should enumerate its Duties and Rights and link to its [[Category:Teams]] and Active Issue and Propsoal Issue.
 
 
 
==Team==
 
Each role has a dedicated GitHub team where each of the role’s Owners are members. The team is used to manage access to GitHub repositories that the role is responsible for and to send notifications to role owners with @mentions in GitHub issues and pull requests.
 
 
 
For example, the [https://github.com/orgs/bisq-network/teams/desktop-maintainers/members @bisq-network/desktop-maintainers] team has write access to the [https://github.com/bisq-network/bisq-desktop bisq-network/bisq-desktop] repository.
 
 
 
*GitHub teams are visible only to GitHub organization members. To join the [https://github.com/bisq-network @bisq-network] org, see the [[Contributor Checklist]].
 
 
 
The primary role owner is also assigned as the '''maintainer''' of their role’s GitHub team, such that they may manage the team without requiring the intervention of a GitHub admin.
 
 
 
==Issue==
 
Each role has a dedicated GitHub issue in the [[https://github.com/bisq-network/roles/issues bisq-network/roles]] repository, wherein:
 
* The '''Assignees''' field is used to track role ownership.
 
* The '''Description''' field is used to link to the role’s Docs, Team and primary Owner.
 
* '''Comments''' are used for Reporting and feedback.
 
  
See the [https://github.com/bisq-network/roles/issues/30 Proposals Maintainer] role issue for an example.
+
== Issue ==
 +
<!-- link to this role's corresponding issue in the https://github.com/bisq-network/roles repository -->
  
=Types=
+
== Team ==
Most roles fit into one of the types below.
+
<!-- link to this role's corresponding team at https://github.com/orgs/bisq-network/teams -->
  
==Maintainer==
+
== Duties ==
A ''Maintainer'' is a contributor responsible for enforcing process in a given GitHub repository.
+
<!-- list in bullet points each of the duties that owner(s) of this role must fulfill -->
  
Examples:  [https://github.com/bisq-network/roles/issues/63 Bisq Desktop Maintainer], [https://github.com/bisq-network/roles/issues/30 Proposals Maintainer].
+
== Rights ==
 +
<!-- list in bullet points all special privileges that owner(s) of this role are granted, e.g. repository access -->
  
===Maintainer Duties===
+
== Bonding ==
* Merging or closing pull requests after sufficient review.
+
<!-- indicate whether bonding is required for this role, and if so, how much -->
* Tagging releases.
 
* Triaging incoming issues and keeping them organized over time.
 
** A Maintainer is not a Developer or a Reviewer. Submitting and reviewing pull requests is something any contributor can do; neither are maintainer duties per se.
 
** This is particularly important from a [[Compensation]] perspective. '''If you are a maintainer, do NOT group your development and review activities together with your maintainer role in your compensation requests'''. Rather, account for them separately like any other contributor would.
 
** The goal is to have as many competent contributors developing and reviewing as possible, not to load everything on the maintainer. [https://rfc.unprotocols.org/spec:1/C4/#21-preliminaries C4] is the inspiration here, it’s worth (re-)reading.
 
  
===Maintainer Rights===
+
[[Category:Roles]]
Write access to the repository they are responsible for.
 
 
 
==Operator==
 
An ''Operator'' is a contributor responsible for keeping a given resource running and functioning normally.
 
 
 
Examples: [https://github.com/bisq-network/roles/issues/19 Forum Operator], [https://github.com/bisq-network/roles/issues/14 Bisq Pricenode Operator].
 
 
 
===Operator Duties===
 
* Keep the given resource online and functioning normally.
 
* Keep the resource up to date with latest version.
 
* Maintain backups as appropriate.
 
* Report on any incidents.
 
 
 
===Operator Rights===
 
* Administrative access to hosting infrastructure.
 
* Ownership of any domain name used.
 
 
 
==Administrator==
 
An ''Administrator'' ('Admin') is a contributor responsible for managing a given resource.
 
 
 
Examples: [https://github.com/bisq-network/roles/issues/16 GitHub Admin], [https://github.com/bisq-network/roles/issues/23 Slack Admin].
 
 
 
===Admin Duties===
 
Respond to change requests.
 
 
 
===Admin Rights===
 
Access to the administrative interface of the resource in question.
 
 
 
==Moderator==
 
A '''Moderator''' is a contributor responsible for enforcing process and standards in a given communications channel.
 
 
 
Examples: [https://github.com/bisq-network/roles/issues/37 Bitcointalk Moderator], [https://github.com/bisq-network/roles/issues/25 Reddit Moderator].
 
 
 
===Moderator Duties===
 
* Ensure discussions are on topic, civil, etc.
 
* Post key announcements in a timely fashion.
 
 
 
===Moderator Rights===
 
Moderator (or equivalent) status in the channel.
 
 
 
=Common duties=
 
The following duties are common to all roles.
 
 
 
==Reporting==
 
Primary role Owners should report once a month in the form of a comment on their Issue.[https://github.com/bisq-network/proposals/issues/13 Proposal Link] The report should contain whatever information the owner believes would be valuable to other users, contributors and stakeholders. The comment should be formatted in Markdown as follows:
 
<nowiki>
 
## YYYY.MM report
 
 
 
<content>
 
 
 
/cc bisq-network/compensation#<number>
 
 
</nowiki>
 
</nowiki>
  
Where <content> is the content of the report itself, and <number> is the number of that contributor’s monthly compensation request. [https://github.com/bisq-network/proposals/issues/16#issuecomment-393852612 Example].
+
[[Category:DAO]]
 
+
[[Category:Processes]]
Some roles may have nothing to report in a given month. In this case, a report should still be written stating that there is "nothing to report". [https://github.com/bisq-network/proposals/issues/18#issuecomment-393217596 Example].
+
[[Category:Stubs]]
 
 
==Documentation==
 
Primary role Owners should document changes to their role by updating the Role on the wiki [[Category:Roles]].
 
 
 
==Communication==
 
Primary role Owners should respond in a timely fashion to feedback comments on their role Issue, issues created in their repositories, @mentions of their Team, and questions in their Slack channel.
 
 
 
=Compensation=
 
Role owners should include a summary line item for each role they own in a monthly [[Compensation#Create_your_compensation_request_issue|compensation request]]. Each summary should include:
 
# The name of the role,
 
# a link to the owner’s monthly report for that role, and
 
# the total amount of BSQ being requested for performing the role’s duties during that month.
 
<nowiki>
 
Example 1. Per-role line items in a compensation request
 
Bisq Desktop Maintainer: bisq-network/roles#63 (comment) (350 BSQ)
 
 
 
Bisq Seednode Operator: bisq-network/roles#15 (comment) (150 BSQ)
 
</nowiki>
 
 
 
* Secondary role owners should not submit monthly reports or compensation requests for a role unless they actually performed the duties of that role during that month.
 
 
 
The amount of BSQ requested should include any hard costs (e.g. hosting) plus time and effort costs involved in performing the duties of the role. These costs should be detailed in the monthly report as follows:
 
<nowiki>
 
Example 2. Monthly report for Bisq Desktop Maintainer
 
## 2018.07 report
 
 
 
Regular duties (150 BSQ)
 
 
 
Big issue cleanup (200 BSQ)
 
 
 
Total: 350 BSQ
 
 
 
/cc bisq-network/compensation#42
 
</nowiki>
 
<nowiki>
 
 
 
Example 3. Monthly report for Bisq Seednode Maintainer
 
## 2018.07 report
 
 
 
Hosting 2 nodes @ 50 USD/mo on Digital Ocean (100 BSQ)
 
 
 
Upgrade nodes to v0.7.1 (50 BSQ)
 
 
 
Total: 150 BSQ
 
 
 
/cc bisq-network/compensation#42
 
</nowiki>
 
 
 
The only work items that should be included in role compensation are those Duties that can be performed only by that role’s owner. Everything else should be itemized independently.
 
 
 
For example, as mentioned above in the Maintainer Duties section, a repository maintainer’s main duties are merging pull requests and triaging incoming issues. If the person playing the maintainer role submits their own pull requests, or performs reviews of others' pull requests, that work should NOT be grouped together with regular maintainer duties when putting together a compensation request. Rather, each PR submitted or reviewed should be called out separately as individual contributions.
 
 
 
=Bonding=
 
Most roles involve special Rights that, if abused, could cause damage to the Bisq Network. For this reason, role owners must put up a ''bond'' in BSQ commensurate with the amount of damage that could be caused. In the event of a role owner turning into a bad actor or being grossly negligent, this bond can be confiscated through a BSQ voting process.
 
 
 
Bonding is currently in a transitional state, the expected bond will be found in the respective Role Page.
 
 
 
=Processes=
 
The following are some common roles-related processes.
 
 
 
==Proposing a new role==
 
Typically, proposing a new role is one part of a larger proposal to introduce some new resource or process.
 
 
 
# Discuss the idea informally with other contributors, e.g. via [Keybase].
 
# Follow the [[Proposals]] process to formally suggest the new resource or process.
 
# Draft documentation for the new resource or process, including a section about the new role, tagged as [WIP] on the Wiki.
 
 
 
For example, see the [https://github.com/bisq-network/proposals/15 proposal to support Tor Relays] and the resulting [https://github.com/bisq-network/proposals/72 Tor Relay Operator] role issue.
 
 
 
==Adding a secondary role owner==
 
A primary role owner may add a secondary owner with the following steps:
 
# Add them as a member of the role’s GitHub Team.
 
# Add them as an assignee to role’s GitHub Issue.
 
# Announce the change via a comment on the role’s GitHub Issue.
 
 
 
==Transferring role ownership==
 
A primary owner may transfer ownership to another with the following steps:
 
# Grant the ''maintainer'' role to the new primary in the role’s GitHub Team.
 
# Remove the ''maintainer'' role from yourself.
 
# Update the role’s GitHub Issue to reflect the new primary owner.
 
# Announce the change in a comment on the role’s GitHub Issue.
 
 
 
=The Roles Maintainer role=
 
{{:Roles_Maintainer}}
 

Revision as of 07:53, 8 June 2020

This article is a stub pending the transcription of https://docs.bisq.network/roles.html here to the wiki. See https://github.com/bisq-network/roles/issues for the canonical list of all current roles and see Category:Roles for a list of all roles documented here on the wiki.

Contents

Documentation

Each role should be documented as a wiki article using using the template below.

This article documents the ''<Role Name>'' [[role]].

__TOC__

== Issue ==
<!-- link to this role's corresponding issue in the https://github.com/bisq-network/roles repository -->

== Team ==
<!-- link to this role's corresponding team at https://github.com/orgs/bisq-network/teams -->

== Duties ==
<!-- list in bullet points each of the duties that owner(s) of this role must fulfill -->

== Rights ==
<!-- list in bullet points all special privileges that owner(s) of this role are granted, e.g. repository access -->

== Bonding ==
<!-- indicate whether bonding is required for this role, and if so, how much -->

[[Category:Roles]]