1 | # Expense Policy
|
2 |
|
3 | Fastify collaborators accept donations through the [Open Collective](https://opencollective.com/fastify/)
|
4 | platform and [GitHub Sponsors](https://github.com/sponsors/fastify)
|
5 | to enhance the project and support the community.
|
6 |
|
7 | This Collective is run by and for the benefit of the independent contributors to
|
8 | the Fastify open source software project.
|
9 | This Collective is not endorsed or administered by OpenJS Foundation, Inc.
|
10 | (the “OpenJS Foundation”). The OpenJS Foundation does not receive or have
|
11 | control over any funds contributed. The OpenJS Foundation does not direct or
|
12 | otherwise supervise the actions of any contributor to the Fastify project,
|
13 | and all donations made will be expended for the private benefit of or otherwise
|
14 | to reimburse individuals that do not have an employer/employee, contractor, or
|
15 | other agency relationship with the OpenJS Foundation.
|
16 | The Fastify marks used herein are used under license from the OpenJS Foundation
|
17 | for the benefit of the open source software community.
|
18 |
|
19 | The admins of the Fastify Collective are the [lead maintainers](./GOVERNANCE.md)
|
20 | of the project.
|
21 |
|
22 | This document outlines the process for requesting reimbursement or an invoice
|
23 | for expenses.
|
24 |
|
25 | ## Reimbursement
|
26 |
|
27 | Reimbursement is applicable for expenses already paid, such as:
|
28 |
|
29 | - Stickers
|
30 | - Gadgets
|
31 | - Hosting
|
32 |
|
33 | **Before making any purchases**, initiate a [new discussion](https://github.com/orgs/fastify/discussions)
|
34 | in the `fastify` organization with the following information:
|
35 |
|
36 | - What is needed
|
37 | - Why it is needed
|
38 | - Cost
|
39 | - Deadline
|
40 |
|
41 | Once the discussion is approved by a lead maintainer and with no unresolved objections,
|
42 | the purchase can proceed, and an expense can be submitted to the [Open Collective][submit].
|
43 | This process takes a minimum of 3 business days from the request to allow time for
|
44 | discussion approval.
|
45 |
|
46 | The discussion helps prevent misunderstandings and ensures the expense is not rejected.
|
47 | As a project under the OpenJS Foundation, Fastify benefits from the Foundation's
|
48 | resources, including servers, domains, and [travel funds](https://github.com/openjs-foundation/community-fund/tree/main/programs/travel-fund).
|
49 |
|
50 | Always seek approval first.
|
51 |
|
52 | ## Invoice
|
53 |
|
54 | Invoices are for services provided to the Fastify project, such as PR reviews,
|
55 | documentation, etc.
|
56 | A VAT number is not required to submit an invoice.
|
57 | Refer to the [Open Collective documentation][openc_docs] for details.
|
58 |
|
59 | ### Adding a bounty to an issue
|
60 |
|
61 | Issues become eligible for a bounty when the core team adds the `bounty` label,
|
62 | with the amount determined by the core team based on `estimated hours * rate`
|
63 | (suggested $50 per hour).
|
64 |
|
65 | > Example: If the estimated time to fix the issue is 2 hours,
|
66 | > the bounty will be $100.
|
67 |
|
68 | To add a bounty:
|
69 |
|
70 | - Apply the `bounty` label to the issue
|
71 | - Comment on the issue with the bounty amount
|
72 | - Edit the first comment of the issue using this template:
|
73 |
|
74 | ```
|
75 | ## 💰 Bounty
|
76 |
|
77 | This issue has a bounty of [$AMOUNT](LINK TO THE BOUNTY COMMENT).
|
78 | _Read more about [the bounty program](./EXPENSE_POLICY.md)_
|
79 | ```
|
80 |
|
81 | For discussions on bounties or determining amounts, open a [new discussion](https://github.com/orgs/fastify/discussions/new?category=bounty).
|
82 |
|
83 | ### Outstanding contributions
|
84 |
|
85 | The lead team can decide to add a bounty to an issue or PR not labeled as `bounty`
|
86 | if the contribution is outstanding.
|
87 |
|
88 | ### Claiming a bounty
|
89 |
|
90 | To claim a bounty:
|
91 |
|
92 | - Submit a PR that fixes the issue
|
93 | - If multiple submissions exist, a core member will choose the best solution
|
94 | - Once merged, the PR author can claim the bounty by:
|
95 | - Submitting an expense to the [Open Collective][submit] with the PR link
|
96 | - Adding a comment on the PR with a link to their Open Collective expense to
|
97 | ensure the claimant is the issue resolver
|
98 | - The expense will be validated by a lead maintainer and then the payment will be
|
99 | processed by Open Collective
|
100 |
|
101 | If the Open Collective budget is insufficient, the expense will be rejected.
|
102 | Unclaimed bounties are available for other issues.
|
103 |
|
104 | [submit]: https://opencollective.com/fastify/expenses/new
|
105 | [openc_docs]: https://docs.oscollective.org/how-it-works/basics/invoice-and-reimbursement-examples
|