Skip to content

Commit

Permalink
Initial version
Browse files Browse the repository at this point in the history
  • Loading branch information
voxpelli committed Aug 21, 2024
0 parents commit 4cf8ed6
Show file tree
Hide file tree
Showing 4 changed files with 233 additions and 0 deletions.
9 changes: 9 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
root = true

[*]
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 2
charset = utf-8
trim_trailing_whitespace = true
128 changes: 128 additions & 0 deletions GUIDELINES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
# Collective Funds Guidelines 0.1.0

## Purpose

The primary use of funds collected for the project is for the health and benefit of it and its community. All use of funds should be of direct benefit to that.

## Definitions

* `TSC` – refers to the Technical Steering Commitee of a project or, for those projects that lack an explicit `TSC`, the lead maintainer(s) of the project
* `Contributors` – refers to any non-`TSC` member of of the project

## Allocation of money

* 70% Project Development
* 0% Travel and Event Expenses
* 10% Contributor Pool
* 20% Dependencies and Community Projects
* \<1% Support Systems

A project using these guidelines can decide to specify their own allocation and/or limit any specific area to a minimum/maximum amount.

The allocation is based on monthly or yearly funds – estimated, average or actual ones (depending on availability and reliability of data).

The project will keep a level of transparency that makes it possible for givers to roughly follow up on this allocation, but exact level of transparency is out-of-scope of these guidelines.

The project strives to keep the monthly spending over time below what it takes in each month, to allow saving for special projects and to allow for flexibility in month-to-month spending.

### Project Development

Expenses can be submitted by project members (Project Contributors or TSC Members).

Contributions include submitting code, writing documentation, answering questions in chat, attending meetings on behalf of the project, and so on. All contributions to an open-source project are valuable, and we feel that compensating team members for any time they spend on the project is the right thing to do.

Project members should track their time and submit a monthly invoice at the beginning of the month with those hours split up across the following categories and across any sub-projects / areas within the project:

* Discord/Discussions Help
* Infrastructure
* Issues/Pull Request Triage
* Meetings
* Programming
* Project Management
* Writing

Before doing and submitting significant expenses a project's members should get pre-approval from the TSC.

To ensure transparency and avoid conflicts of interest, contributors or TSC members should not request compensation from the project for specific work (e.g., features, bug fixes) that has already been funded by other sources, such as employer contracts, external sponsorships, or crowdfunding campaigns. However, the TSC may evaluate scenarios on a case-by-case basis and may agree to co-fund specific work if a suitable arrangement can be reached.

#### Hourly rates

* **TSC Members:** $80.00 USD/hour
* **Project Contributors:** $50.00 USD/hour

Projects using these guidelines can, and are encouraged to, specify their own rates that are adjusted for their project's financial capabilities. See “How To Adopt”.

### Travel and Event Expenses

Guidelines for this are out of scope of these financial guidelines and should be defined separately by those wanting to use it. See eg. [WebdriverIO](https://github.com/webdriverio/webdriverio/blob/main/GOVERNANCE.md\#travel-and-event-expenses) for inspiration.

### Contributor Pool

The project sets aside money to pay outside contributors who have made significant contributions to the project.

Contributions include submitting code, writing documentation, answering questions in our Discord server, and more.

### Dependencies and Community Projects

The project believe that open source projects who are lucky enough to get funded have a responsibility to pay that forward and support the smaller projects they rely on and as such uses its funds to support its dependencies

The project also supports auxiliary projects that benefit its community at large by augmenting or extending the project, or similar.

These funds should generally not go to projects maintained by members of this project as members should get compensated through the *Project Development* funds.

### Support systems

The project uses this to pay for software the team uses to help manage the project, which can include things like Google Workspace and cloud storage.

## Special projects

### Contractors

Additionally, from time to time the TSC can use funds to pay contractors to work on things that are important to the project and where the team doesn’t have the time or expertise to complete the work on their own.

### Tech debt / maintenance

Funds allowing, the TSC can decide that for a period of time it allows its members to submit expenditures that go beyond what the project takes in monthly, to allow for extended maintenance and/or handling of tech debt.

The TSC should then decide a guiding upper limit for what each member can expense monthly.

## Guidelines Info

### How to Adopt Guidelines

Add a note in your `README.md`, or a `FUNDING.md`, file in the root directory of your project’s repository:

> \# Fund Usage Guidelines
>
> This project follows the \[Collective Funds Guidelines 0.1\](\#).
If you want to specify your own allocation, hourly rates and/or additional notes then do something like:

> \# Fund Usage Guidelines
>
> This project follows \[Collective Funds Guidelines 0.1\](\#) with the following definitions:
>
> Allocation:
>
> \* 70% Project Development
> \* 0% Travel and Event Expenses
> \* 10% Contributor Pool (Min: $100/month)
> \* 20% Dependencies and Community Projects (Max: $200/month)
> \* \<1% Support Systems
>
> Rates:
>
> \* TSC Members: $80.00 USD/hour
> \* Project Contributors: $50.00 USD/hour
>
> Additional notes:
>
> \<Any additional notes you would want to add\>
## Credits

These guidelines have been strongly inspired by the excellent work of the [ESLint](https://eslint.org/donate/) and [WebdriverIO](https://github.com/webdriverio/webdriverio/blob/main/GOVERNANCE.md\#sponsoring-and-donations) projects and were created for the [Mocha](https://github.com/mochajs/mocha) and [neostandard](https://github.com/neostandard/neostandard) projects, with feedback given from the co-maintainers of those projects.

## License

The content of this license (apart from name) is licensed under the [Creative Commons Attribution 4.0 International Public License](https://creativecommons.org/licenses/by/4.0/).
77 changes: 77 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
<div align="center">
<img
src="assets/collective-funds-guidelines.svg"
width="650"
height="auto"
alt="Collective Funds"
/>
</div>

<div align="center">

Open source projects collects funds – but how do they spend them?

The Collective Funds Guidelines provides a framework for use of funds.

</div>


## Status

An early v0.1.0 draft of the [guidelines](./GUIDELINES.md) are available for early adoptors while we gather feedback.

Guidelines are not recommended for wider adoption until it reaches a stable v1.0.0 (staying in line with [Semantic Versioning](https://semver.org/)).

## Where

The current version of the guidelines are found in [`GUIDELINES.md`](./GUIDELINES.md).

Historic versions are tagged in git and can be found in [releases](https://github.com/collective-funds/guidelines/releases) on GitHub.

## Used by

### Current users

* _None yet_

### In discussion

* Mocha (soon)
* Neostandard

## How to Adopt

You adopt the guidelines by noting the use in your `FUNDING.md` file or `README.md`.

See details in the [How to Adopt Guidelines](./GUIDELINES.md#how-to-adopt-guidelines) section of the guidelines.

### Badges

If you use the Collective Funds Guidelines for your project, you can improve discoverability of it by using one of these badges in your `README.md`:

[![Collective Funds Guidelines v0.1](https://img.shields.io/badge/collective_funds_guidelines-v0.1-D8E8D4?style=flat&labelColor=3A6457)](https://github.com/collective-funds/guidelines)

```md
[![Collective Funds Guidelines v0.1](https://img.shields.io/badge/collective_funds_guidelines-v0.1-D8E8D4?style=flat&labelColor=3A6457)](https://github.com/collective-funds/guidelines)
```

[![Collective Funds Guidelines v0.1](https://img.shields.io/badge/collective_funds_guidelines-v0.1-brightgreen?style=flat)](https://github.com/collective-funds/guidelines)

```md
[![Collective Funds Guidelines v0.1](https://img.shields.io/badge/collective_funds_guidelines-v0.1-brightgreen?style=flat)](https://github.com/collective-funds/guidelines)
```


## History

These guidelines are strongly inspired by the excellent prior art of [ESLint](https://eslint.org/donate/) and [WebdriverIO](https://github.com/webdriverio/webdriverio/blob/main/GOVERNANCE.md\#sponsoring-and-donations).

They were initally drafted for the [mocha](https://github.com/mochajs/mocha) and [neostandard](https://github.com/neostandard/neostandard) projects, aiming to provide them and other projects a common baseline that's easy to adopt and provides clarity on usage of funds – for maintainers as well as community.

First draft was written by [@voxpelli](https://github.com/voxpelli) with review and feedback from fellow co-maintainers and community.

To fascilitate feedback the [Collective Funds](https://github.com/collective-funds) group was set up, to help the community evolve the guidelines further.

## License

The content of this repository (apart from names and logos) is licensed under the [Creative Commons Attribution 4.0 International Public License](https://creativecommons.org/licenses/by/4.0/).
19 changes: 19 additions & 0 deletions assets/collective-funds-guidelines.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 4cf8ed6

Please sign in to comment.