Difference between revisions of "Contributor checklist"

From Bisq Wiki
Jump to navigation Jump to search
(heavy revision for early 2021)
Line 1: Line 1:
<big>So you’re interested in contributing to Bisq, ​welcome! This checklist will get you plugged in and productive as quickly as possible.</big>
+
If you're interested in contributing to Bisq, ​welcome! This checklist will get you plugged in and productive as quickly as possible.
 +
 
 +
__TOC__
  
 
== How to contribute ==  
 
== How to contribute ==  
  
Bisq is free and open source software, but contributing is not just about writing code. '''A contributor is any individual who works to improve and add value to the Bisq Network and its users.'''
+
Bisq is free and open source software, but contributing is not just about writing code. '''A contributor is any individual who works to improve and add value to the Bisq network and its users.'''
 +
 
 +
This can mean anything from fixing typos in documentation, to providing support, to testing out new growth strategies, to implementing new Bisq features and everything in-between. All such contributions are eligible for [[compensation]] from the Bisq DAO.
 +
 
 +
[[#Do_valuable_work_and_get_compensated|See more tips below.]]
  
This can mean anything from fixing typos in documentation, to answering questions on the Bisq Forum, to implementing new Bisq features and everything in-between. All such contributions are eligible for compensation under the Bisq DAO. See more details below and in the [[Compensation]] doc.
+
== Getting started ==
  
=== Getting started ===
+
Suggestions below are in no particular order. Disregard developer-oriented items if you're not looking to contribute code.
  
# Join our [https://keybase.io/team/bisq Keybase team].
+
# Join the [https://keybase.io/team/bisq Keybase team].
 
# Introduce yourself in the <code>#introductions</code> channel. Say a bit about your skills and interests. This will help others point you in the right direction.
 
# Introduce yourself in the <code>#introductions</code> channel. Say a bit about your skills and interests. This will help others point you in the right direction.
# Explore the other channels on Keybase, and join the ones that are of interest to you. For a start, we recommend joining <code>#proposals</code>, <code>#growth</code>, <code>#roles</code>, <code>#compensation</code>, <code>#dev</code> and <code>#dev-onboarding</code> (if you’re a developer).
+
# Explore the other channels on Keybase, and join the ones that are of interest to you. For a start, consider joining <code>#proposals</code>, <code>#dev</code>, <code>#growth</code>, and <code>#dev-onboarding</code> (if you’re a developer).
# Watch the [https://github.com/bisq-network/proposals proposals], [https://github.com/bisq-network/roles roles] and [https://github.com/bisq-network/compensation compensation] repositories to get notified of threaded GitHub issue discussions that happen there.
+
# Watch the following repositories on GitHub: [https://github.com/bisq-network/bisq core software], [https://github.com/bisq-network/bisq/discussions discussions], [https://github.com/bisq-network/proposals proposals], [https://github.com/bisq-network/growth growth], [https://github.com/bisq-network/roles roles] and [https://github.com/bisq-network/compensation compensation].
 
# Read the [https://github.com/bisq-network/bisq/blob/master/docs/README.md developer docs] to set up a Bisq development environment.
 
# Read the [https://github.com/bisq-network/bisq/blob/master/docs/README.md developer docs] to set up a Bisq development environment.
 
# Read [https://chris.beams.io/posts/git-commit How to Write a Git Commit Message] and follow its [https://chris.beams.io/posts/git-commit/#7-rules 7 rules] when contributing to Bisq projects.
 
# Read [https://chris.beams.io/posts/git-commit How to Write a Git Commit Message] and follow its [https://chris.beams.io/posts/git-commit/#7-rules 7 rules] when contributing to Bisq projects.
# Get set up to [https://help.github.com/articles/signing-commits-using-gpg/ Sign your Git Commits] with GPG.
+
# Get set up to [https://help.github.com/articles/signing-commits-using-gpg/ Sign your Git Commits] with GPG. Any commits to any Bisq repository must be signed.
  
 
=== Learn how we work ===
 
=== Learn how we work ===
Line 22: Line 28:
 
# Familiarize yourself with [https://ossec-docs.readthedocs.io/en/latest/docs/development/oRFC/orfc-1.html C4: The Collective Code Construction Contract]. It’s a simple set of collaboration rules based on GitHub’s fork+pull request model, and a foundational part of how we work together.
 
# Familiarize yourself with [https://ossec-docs.readthedocs.io/en/latest/docs/development/oRFC/orfc-1.html C4: The Collective Code Construction Contract]. It’s a simple set of collaboration rules based on GitHub’s fork+pull request model, and a foundational part of how we work together.
 
# For more context on C4 and the principles behind it, read author Pieter Hintjens' short book, [https://www.gitbook.com/?utm_source=legacy&utm_medium=redirect&utm_campaign=close_legacy Social Architecture].
 
# For more context on C4 and the principles behind it, read author Pieter Hintjens' short book, [https://www.gitbook.com/?utm_source=legacy&utm_medium=redirect&utm_campaign=close_legacy Social Architecture].
# Introduce yourself to Bisq and the Bisq DAO with the [[Phase_zero|Phase Zero doc]]. It’s a bit outdated now, as the DAO has been launched, but it’s the best overview of Bisq’s background and underlying concepts.
+
# To understand the fundamentals of Bisq's mission and motivations, read the introductory wiki articles on [[Introduction|Bisq]] and the [[Introduction_to_the_DAO|Bisq DAO]].
 
# To understand Bisq’s commitment to radical transparency and radical honesty, read Part III of [https://www.amazon.com/Principles-Life-Work-Ray-Dalio/dp/1501124021/ Ray Dalio’s Principles].
 
# To understand Bisq’s commitment to radical transparency and radical honesty, read Part III of [https://www.amazon.com/Principles-Life-Work-Ray-Dalio/dp/1501124021/ Ray Dalio’s Principles].
 
# To get inspired about what building software in a non-hierarchical organization can be like (and what it requires of everyone involved), read the [https://steamcdn-a.akamaihd.net/apps/valve/Valve_NewEmployeeHandbook.pdf Valve Employee Handbook].
 
# To get inspired about what building software in a non-hierarchical organization can be like (and what it requires of everyone involved), read the [https://steamcdn-a.akamaihd.net/apps/valve/Valve_NewEmployeeHandbook.pdf Valve Employee Handbook].
Line 28: Line 34:
 
=== Get connected ===
 
=== Get connected ===
  
# Subscribe to the [https://www.youtube.com/c/bisq-network Bisq YouTube channel] to get notified about every meeting we hold, tutorial we publish, live session we broadcast, and more.
+
# Browse and subscribe to the [https://www.youtube.com/c/bisq-network Bisq YouTube channel] to catch up on meetings we hold, tutorials we publish, technical sessions, and more.
# Follow [https://twitter.com/bisq_network @bisq_network] on Twitter.
+
# Follow [https://twitter.com/bisq_network @bisq_network] on Twitter, or on any of the other channels listed [https://bisq.network/#community on the bottom of the website]: forum, Telegram, Matrix, Mastodon, etc.
# Catch up on past [https://www.youtube.com/playlist?list=PLFH5SztL5cYOtcg64PntHlbtLoiO3HAjB Bisq Tech Session YouTube live streams].
 
 
# Subscribe to the [https://lists.bisq.network/listinfo/bisq-contrib bisq-contrib] mailing list for low-frequency, high-priority contributor communications.
 
# Subscribe to the [https://lists.bisq.network/listinfo/bisq-contrib bisq-contrib] mailing list for low-frequency, high-priority contributor communications.
  
=== Get assigned to an issue or role ===
+
If you decide to proceed and start contributing, you'll want to join Bisq's GitHub organization so you can be assigned to issues:
 
 
Discuss with others, and after it is agreed that someone will assign something to you, do the following:
 
  
# Request an invite to the [https://github.com/bisq-network @bisq-network organization]. An admin will get you set up. Doing this makes it possible to add you to the [https://github.com/orgs/bisq-network/teams @bisq-network/contributors] team and to assign you to GitHub issues.
+
# Request an invite to the [https://github.com/bisq-network @bisq-network GitHub organization] on Keybase. An admin will get you set up. Doing this makes it possible to add you to the [https://github.com/orgs/bisq-network/teams @bisq-network/contributors] team and to assign you to GitHub issues.
# After accepting your GitHub invitation, please change your [https://github.com/orgs/bisq-network/people membership visibility] from <code>private</code> to <code>public</code>. This helps others know at a glance roughly how many contributors are involved with Bisq.
+
# After accepting your GitHub invitation, consider changing your [https://github.com/orgs/bisq-network/people membership visibility] from <code>private</code> to <code>public</code>. This helps others know at a glance roughly how many contributors are involved with Bisq.
  
 
=== Do valuable work and get compensated ===
 
=== Do valuable work and get compensated ===
  
Ok. You’re all set up and ready to work. Here’s what to do next.</br></br>
+
After browsing GitHub repositories and Keybase discussions, you will start to develop a sense for what's happening, what's needed, and where you can help:
  
# '''Find a problem somewhere in Bisq-land''' that (a) needs fixing and (b) is a match for your skills and interests. Browse critical bugs, open bounties, ask around about what other contributors think needs fixing. Because while you don’t need anybody’s permission and you can work on whatever you want, you’ll want to know up front whether anybody else is going to care about the work you do.
+
# '''Find a problem somewhere in Bisq-land''' that (a) needs fixing and (b) is a match for your skills and interests. Browse critical bugs, open bounties, follow chats on Keybase and the forums, and ask around about what other contributors think needs fixing.  
 +
# '''Get assigned to an issue''' or have your initiative acknowledged in some other way. While you don’t strictly need anybody’s permission to do anything for Bisq, you’ll want to make sure there's buy-in from other contributors so your work is received well. Otherwise, there are no guarantees that your work will be merged, reviewed, or eligible for compensation.
 
# '''Do work to fix that problem'''. Submit your fix for review with a pull request (for code and documentation changes) or with a GitHub issue (for everything else).
 
# '''Do work to fix that problem'''. Submit your fix for review with a pull request (for code and documentation changes) or with a GitHub issue (for everything else).
 
# '''Request that others review your work'''. The best way to do this is by writing good commit comments and pull request/issue descriptions that clearly explain the problem your work is intended to solve, why it’s important, and why you fixed it the way you did. Make it as easy as possible for others to review your work. Make it a pleasure for others to review your work.
 
# '''Request that others review your work'''. The best way to do this is by writing good commit comments and pull request/issue descriptions that clearly explain the problem your work is intended to solve, why it’s important, and why you fixed it the way you did. Make it as easy as possible for others to review your work. Make it a pleasure for others to review your work.
 
# '''Incorporate review feedback''' you get until your fix gets merged or is otherwise accepted.
 
# '''Incorporate review feedback''' you get until your fix gets merged or is otherwise accepted.
# '''Repeat''' steps 1–4.
+
# '''Repeat''' steps 1–5.
# [[compensation|Submit a compensation request]] at the end of the month, link to your finished work and request the amount of BSQ you believe that work to be worth to Bisq, the Bisq Network and its users.
+
# [[compensation|Submit a compensation request]] toward the end of the cycle.
  
{{Admonition Note|<big>'''More on finding work to do'''</big></br></br>It is not required to work on an existing bounty issue to contribute to Bisq, and no one is here to tell you what to do. Contributors who have their own ideas are free to work in their own forks on whatever they wish, however they wish, and without any permission from Bisq stakeholders.</br></br>With that said, it’s a good idea to consult with stakeholders via Keybase, GitHub, the mailing list, or other communication channels before setting out on any serious contribution effort. Do this in order to ensure your contribution is:</br></br>
+
{{Admonition Note|As you'll see from browsing the various repositories on GitHub, changes to Bisq are almost always discussed publicly. This helps maintain Bisq's commitment to transparency, invites feedback to improve the quality of contributions, and it helps keep compensation honest. '''Always try to make sure your work is documented somewhere so others can follow its progress and offer feedback.'''}}
# Something that the relevant maintainer(s) would be likely to merge;
 
# Something that stakeholders would likely vote to approve as a compensation request;
 
# Subjected to as much feedback as possible while still an idea and thus cheap to change or abort.</br></br>
 
Remember: '''every contributor''' is free to work on what they want, including maintainers who may or may not want to review and merge your pull request if they don’t have any prior context for it, or reason to believe it’s worth spending their time on.}}
 
  
 +
Ultimately, please remember that all Bisq contributors participate on a voluntary basis, and the more energy and quality you bring to the table, the more existing contributors will be encouraged to pay you attention.
  
'''''Reviews are for everybody'''''</br></br>If you want to be really popular around here, don’t just submit your own work, but also spend time reviewing the work of others. And remember: reviews are eligible for compensation just like any other contribution.
+
If you can't or don't want to contribute code just yet, reviewing the work of others can be hugely valuable as well. Quality code reviews are eligible for compensation just like any other contribution.

Revision as of 18:04, 10 April 2021

If you're interested in contributing to Bisq, ​welcome! This checklist will get you plugged in and productive as quickly as possible.

How to contribute

Bisq is free and open source software, but contributing is not just about writing code. A contributor is any individual who works to improve and add value to the Bisq network and its users.

This can mean anything from fixing typos in documentation, to providing support, to testing out new growth strategies, to implementing new Bisq features and everything in-between. All such contributions are eligible for compensation from the Bisq DAO.

See more tips below.

Getting started

Suggestions below are in no particular order. Disregard developer-oriented items if you're not looking to contribute code.

  1. Join the Keybase team.
  2. Introduce yourself in the #introductions channel. Say a bit about your skills and interests. This will help others point you in the right direction.
  3. Explore the other channels on Keybase, and join the ones that are of interest to you. For a start, consider joining #proposals, #dev, #growth, and #dev-onboarding (if you’re a developer).
  4. Watch the following repositories on GitHub: core software, discussions, proposals, growth, roles and compensation.
  5. Read the developer docs to set up a Bisq development environment.
  6. Read How to Write a Git Commit Message and follow its 7 rules when contributing to Bisq projects.
  7. Get set up to Sign your Git Commits with GPG. Any commits to any Bisq repository must be signed.

Learn how we work

  1. Read about Bisq’s project management process.
  2. Familiarize yourself with C4: The Collective Code Construction Contract. It’s a simple set of collaboration rules based on GitHub’s fork+pull request model, and a foundational part of how we work together.
  3. For more context on C4 and the principles behind it, read author Pieter Hintjens' short book, Social Architecture.
  4. To understand the fundamentals of Bisq's mission and motivations, read the introductory wiki articles on Bisq and the Bisq DAO.
  5. To understand Bisq’s commitment to radical transparency and radical honesty, read Part III of Ray Dalio’s Principles.
  6. To get inspired about what building software in a non-hierarchical organization can be like (and what it requires of everyone involved), read the Valve Employee Handbook.

Get connected

  1. Browse and subscribe to the Bisq YouTube channel to catch up on meetings we hold, tutorials we publish, technical sessions, and more.
  2. Follow @bisq_network on Twitter, or on any of the other channels listed on the bottom of the website: forum, Telegram, Matrix, Mastodon, etc.
  3. Subscribe to the bisq-contrib mailing list for low-frequency, high-priority contributor communications.

If you decide to proceed and start contributing, you'll want to join Bisq's GitHub organization so you can be assigned to issues:

  1. Request an invite to the @bisq-network GitHub organization on Keybase. An admin will get you set up. Doing this makes it possible to add you to the @bisq-network/contributors team and to assign you to GitHub issues.
  2. After accepting your GitHub invitation, consider changing your membership visibility from private to public. This helps others know at a glance roughly how many contributors are involved with Bisq.

Do valuable work and get compensated

After browsing GitHub repositories and Keybase discussions, you will start to develop a sense for what's happening, what's needed, and where you can help:

  1. Find a problem somewhere in Bisq-land that (a) needs fixing and (b) is a match for your skills and interests. Browse critical bugs, open bounties, follow chats on Keybase and the forums, and ask around about what other contributors think needs fixing.
  2. Get assigned to an issue or have your initiative acknowledged in some other way. While you don’t strictly need anybody’s permission to do anything for Bisq, you’ll want to make sure there's buy-in from other contributors so your work is received well. Otherwise, there are no guarantees that your work will be merged, reviewed, or eligible for compensation.
  3. Do work to fix that problem. Submit your fix for review with a pull request (for code and documentation changes) or with a GitHub issue (for everything else).
  4. Request that others review your work. The best way to do this is by writing good commit comments and pull request/issue descriptions that clearly explain the problem your work is intended to solve, why it’s important, and why you fixed it the way you did. Make it as easy as possible for others to review your work. Make it a pleasure for others to review your work.
  5. Incorporate review feedback you get until your fix gets merged or is otherwise accepted.
  6. Repeat steps 1–5.
  7. Submit a compensation request toward the end of the cycle.
Note
As you'll see from browsing the various repositories on GitHub, changes to Bisq are almost always discussed publicly. This helps maintain Bisq's commitment to transparency, invites feedback to improve the quality of contributions, and it helps keep compensation honest. Always try to make sure your work is documented somewhere so others can follow its progress and offer feedback.

Ultimately, please remember that all Bisq contributors participate on a voluntary basis, and the more energy and quality you bring to the table, the more existing contributors will be encouraged to pay you attention.

If you can't or don't want to contribute code just yet, reviewing the work of others can be hugely valuable as well. Quality code reviews are eligible for compensation just like any other contribution.