Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Product-Team-Conversion #247

Open
wants to merge 24 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 20 commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/styles/config/vocabularies/Mautic/accept.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ Dripflow
Dynamic Web Content
Etherpad
FALSE
Figma
Focus Item
Focus Items
Froala
Expand Down Expand Up @@ -87,6 +88,7 @@ OAuth
Packagist
PATCH
patch
Payoneer
PHP
PHPUnit
Pipedrive
Expand Down
71 changes: 71 additions & 0 deletions docs/contributing/mautic_bounty_programme.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
Mautic bounty programme
#######################

What follows is the Mautic project's approach to operating a bounty program for contributions to Mautic Core and officially supported Plugins via relevant GitHub repositories.

If you have feedback on this policy, please join the next team meeting on Slack in #t-product. Get an invite at :xref:`Mautic Community Slack`.

About the program
*****************

The Mautic core team is very small and always looking for new contributors to the Open Source codebase. Mautic's bounty program is an opportunity to address neglected yet important issues and also allows Mautic members to bring attention to issues they care about by providing a financial incentive. Contributors who fix issues with an associated bounty receive financial compensation through invoices on Open Collective, provided that their contribution meets all requirements and a core team member merges their pull request.

No compromise on quality
========================

Mautic requires all contributions to meet high standards. Pull requests are only accepted if they're:

* Completed to a high standard
* Fully covered by automated tests
* Prepared in a reasonable time frame, including prompt responses to feedback
* Resolving the linked issue in its entirety
* For bug fixes, submit the pull request against the upcoming major release branch - for example, 6.x - with a companion PR against the current minor release branch - for example, 5.1. You must meet all quality criteria, and wait for a maintainer to merge the PRs, for payout eligibility.

Mautic seeks **quality contributions only**. For general pull request guidelines, see the :xref:`Mautic-pr-requirements`.

A contribution is only approved for payment after a maintainers has merged all related pull requests.

Developers should only request to work on tasks and projects that they're confident of completing in their entirety, seen through to completion, and which they're capable of working on at their current knowledge and skill level.

Mautic's Product Team is happy to answer questions and provide some limited support, but don't have the capacity to mentor junior developers working on bounty issues - it's expected developers work on the task **without requiring direct support from the team**.

Workflow for bounty program contributors
****************************************

1. Verify that you can receive payments from Open Collective and create an account on :xref:`Open Collective`.
2. Look for issues with attached bounties: browse :xref:`bounty issues`.
3. Express interest by commenting on the issue and asking the Core Team to assign it to you.
4. Open a Pull Request **within 7 days** of assignment and request feedback and review.
5. Address feedback from the Core Team, if applicable, **within 7 days** of receiving it.
6. Wait for the core team to review the PR, approve it, and merge it.
7. Submit an invoice on Open Collective with links to the issue and PRs.
8. The Mautic Legal & Finance team reviews and approves payment requests where appropriate.
9. Receive payment from Open Collective - processed twice a week on Tuesdays and Thursdays.

If you live in certain countries, you may need to use a workaround like Payoneer. Review :xref:`Open Collective Payout Method` for more information.

Important notes
***************
* Some regions may not be eligible for Open Collective payments due to payment provider restrictions or trade limitations. Review the :xref:`Mautic Financial Policy` for details.
* Contributors are responsible for any tax obligations from program earnings. Open Collective may require :xref:`relevant tax forms` for withdrawals exceeding $600 per year.

Check warning on line 50 in docs/contributing/mautic_bounty_programme.rst

View workflow job for this annotation

GitHub Actions / prose

[vale] reported by reviewdog 🐶 [Mautic.FeatureList] Is this referring to a Mautic feature? If so, use 'Forms' instead of 'forms'. Raw Output: {"message": "[Mautic.FeatureList] Is this referring to a Mautic feature? If so, use 'Forms' instead of 'forms'.", "location": {"path": "docs/contributing/mautic_bounty_programme.rst", "range": {"start": {"line": 50, "column": 127}}}, "severity": "INFO"}
* Discuss your participation with your employer to ensure that it complies with your employment terms.

Workflow for bounty providers
*****************************

If you wish to sponsor a bounty for a specific issue, follow these steps.

.. note::

Providing a bounty doesn't guarantee issue resolution, Core Team acceptance, prioritization, or a specific release date.

The Core Team or any Mautic member may contribute funds to the :xref:`Bounties Project` on Open Collective for a specific issue. Here's how:

1. Log in on Open Collective.
2. Navigate to the :xref:`Bounties Project`, then scroll to the Donation button.
3. Enter your donation amount, and select the appropriate :xref:`Organization` on the next screen if you want an organization to pay and/or display as the funding source. Otherwise it's associated to your individual profile.
4. Provide the necessary payment details and complete payment.
5. Comment on the issue with a link to the transaction and the amount added. A Triage Team member can update the issue title with the bounty amount and add the Bounty label.
6. Wait for a developer to work on the issue, or search for one.
7. When a pull request is available, test it thoroughly and provide an approval review on GitHub; this is **mandatory** for the Core Team to consider it for merging.
8. After merging the pull request and any companion pull requests, the contributor submits an invoice on Open Collective. The Core Team's Legal & Finance representative reviews and approves it for payment.
11 changes: 10 additions & 1 deletion docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,22 @@ The vision is that it grows over time as the teams and governance structure evol
:hidden:

teams/legal_and_finance_team
teams/product_team/product_team_overview

.. toctree::
:maxdepth: 2
:caption: Policies
:hidden:

policies/request_for_proposals_(RFP)_process

.. toctree::
:maxdepth: 2
:caption: Contributing
:hidden:

contributing/google_summer_of_code
contributing/mautic_bounty_programme

.. toctree::
:maxdepth: 2
Expand All @@ -57,4 +66,4 @@ The vision is that it grows over time as the teams and governance structure evol
community_leadership/community_leadership_overview
community_leadership/current_leadership_team
community_leadership/leadership_role_definitions
community_leadership/community_council
community_leadership/community_council
7 changes: 7 additions & 0 deletions docs/links/Mautic_pull_request_requirements.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from . import link

link_name = "Mautic-pr-requirements"
link_text = "Mautic-pr-requirements"
link_url = "https://contribute.mautic.org/contributing-to-mautic/developer/code/pull-requests"

link.xref_links.update({link_name: (link_text, link_url)})
7 changes: 7 additions & 0 deletions docs/links/bounty_issues.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from . import link

link_name = "bounty issues"
link_text = "bounty issues"
link_url = "https://github.com/search?q=label%3Abounty+owner%3Amautic&type=issues&state=open"

link.xref_links.update({link_name: (link_text, link_url)})
7 changes: 7 additions & 0 deletions docs/links/bounty_project.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from . import link

link_name = "Bounties Project"
link_text = "Bounties Project"
link_url = "https://opencollective.com/mautic/projects/bounties"

link.xref_links.update({link_name: (link_text, link_url)})
7 changes: 7 additions & 0 deletions docs/links/idea_forum.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from . import link

link_name = "Ideas and Feature Requests"
link_text = "Ideas and Feature Requests"
link_url = "https://forum.mautic.org/c/ideas"

link.xref_links.update({link_name: (link_text, link_url)})
7 changes: 7 additions & 0 deletions docs/links/mautic_community_partners.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from . import link

link_name = "Mautic Community Partners"
link_text = "Mautic Community Partners"
link_url = "https://mautic.org/mautic-community-partners"

link.xref_links.update({link_name: (link_text, link_url)})
7 changes: 7 additions & 0 deletions docs/links/mautic_community_portal_roadmap.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from . import link

link_name = "Mautic community portal roadmap process"
link_text = "Community Portal roadmap process"
link_url = "https://community.mautic.org/processes/roadmap/f/4/"

link.xref_links.update({link_name: (link_text, link_url)})
7 changes: 7 additions & 0 deletions docs/links/mautic_financial_policy.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from . import link

link_name = "Mautic Financial Policy"
link_text = "Mautic Financial Policy"
link_url = "https://docs.mautic.org/policies/financial-policy#10-foreign-assets-control"

link.xref_links.update({link_name: (link_text, link_url)})
File renamed without changes.
7 changes: 7 additions & 0 deletions docs/links/mautic_mail.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from . import link

link_name = "Mautic Mail"
link_text = "Mautic Mail"
link_url = "[email protected]"
RitaOC marked this conversation as resolved.
Show resolved Hide resolved

link.xref_links.update({link_name: (link_text, link_url)})
7 changes: 7 additions & 0 deletions docs/links/mautic_product_team_slack.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from . import link

link_name = "Mautic product team Slack"
link_text = "#t-product on Slack"
link_url = "https://mautic.slack.com/archives/CQMKV0RU1"

link.xref_links.update({link_name: (link_text, link_url)})
7 changes: 7 additions & 0 deletions docs/links/obs_model.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from . import link

link_name = "OBS open-source project's model"
link_text = "OBS open-source project's model"
link_url = "https://github.com/obsproject/obs-studio/wiki/OBS-Project-Bounty-Program"

link.xref_links.update({link_name: (link_text, link_url)})
7 changes: 7 additions & 0 deletions docs/links/open_collective.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from . import link

link_name = "Open Collective"
link_text = "Open Collective"
link_url = "https://opencollective.com"

link.xref_links.update({link_name: (link_text, link_url)})
7 changes: 7 additions & 0 deletions docs/links/open_collective_organization.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from . import link

link_name = "Organization"
link_text = "Organization"
link_url = "https://docs.opencollective.com/help/financial-contributors/organizations"

link.xref_links.update({link_name: (link_text, link_url)})
7 changes: 7 additions & 0 deletions docs/links/open_collective_payment_mtd.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from . import link

link_name = "Open Collective Payout Method"
link_text = "Open Collective Payout Method"
link_url = "https://opencollective.com"

link.xref_links.update({link_name: (link_text, link_url)})
7 changes: 7 additions & 0 deletions docs/links/relevant_tax_forms.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from . import link

link_name = "relevant tax forms"
link_text = "relevant tax forms"
link_url = "https://docs.opencollective.com/help/expenses-and-getting-paid/tax-information"

link.xref_links.update({link_name: (link_text, link_url)})
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@

link_name = "Suicide Prevention Lifeline"
link_text = "Suicide Prevention Lifeline"
link_url = "http://www.suicidepreventionlifeline.org/"
link_url = "https://988lifeline.org/"

link.xref_links.update({link_name: (link_text, link_url)})
Loading
Loading