Skip to content

Commit 68198cf

Browse files
authored
Add governance, update funding (#1701)
* Add governance, update funding * Add CODEOWNERS
1 parent 96bdf10 commit 68198cf

File tree

6 files changed

+121
-15
lines changed

6 files changed

+121
-15
lines changed

.github/CODEOWNERS

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @openapi-ts/maintainers

.github/FUNDING.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# These are supported funding model platforms
22

3-
github: ['drwpow']
3+
github: # Replace with GitHub username(s)
44
patreon: # Replace with a single Patreon username
5-
open_collective: # Replace with a single Open Collective username
5+
open_collective: openapi-ts
66
ko_fi: # Replace with a single Ko-fi username
77
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
88
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry

CODE_OF_CONDUCT.md

+13-12
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,23 @@ diverse, inclusive, and healthy community.
1717
Examples of behavior that contributes to a positive environment for our
1818
community include:
1919

20-
* Demonstrating empathy and kindness toward other people
21-
* Being respectful of differing opinions, viewpoints, and experiences
22-
* Giving and gracefully accepting constructive feedback
23-
* Accepting responsibility and apologizing to those affected by our mistakes,
20+
- Demonstrating empathy and kindness toward other people
21+
- Being respectful of differing opinions, viewpoints, and experiences
22+
- Giving and gracefully accepting constructive feedback
23+
- Accepting responsibility and apologizing to those affected by our mistakes,
2424
and learning from the experience
25-
* Focusing on what is best not just for us as individuals, but for the
25+
- Focusing on what is best not just for us as individuals, but for the
2626
overall community
2727

2828
Examples of unacceptable behavior include:
2929

30-
* The use of sexualized language or imagery, and sexual attention or
30+
- The use of sexualized language or imagery, and sexual attention or
3131
advances of any kind
32-
* Trolling, insulting or derogatory comments, and personal or political attacks
33-
* Public or private harassment
34-
* Publishing others' private information, such as a physical or email
32+
- Trolling, insulting or derogatory comments, and personal or political attacks
33+
- Public or private harassment
34+
- Publishing others' private information, such as a physical or email
3535
address, without their explicit permission
36-
* Other conduct which could reasonably be considered inappropriate in a
36+
- Other conduct which could reasonably be considered inappropriate in a
3737
professional setting
3838

3939
## Enforcement Responsibilities
@@ -60,7 +60,8 @@ representative at an online or offline event.
6060

6161
Instances of abusive, harassing, or otherwise unacceptable behavior may be
6262
reported to the community leaders responsible for enforcement at
63-
63+
64+
6465
All complaints will be reviewed and investigated promptly and fairly.
6566

6667
All community leaders are obligated to respect the privacy and security of the
@@ -106,7 +107,7 @@ Violating these terms may lead to a permanent ban.
106107
### 4. Permanent Ban
107108

108109
**Community Impact**: Demonstrating a pattern of violation of community
109-
standards, including sustained inappropriate behavior, harassment of an
110+
standards, including sustained inappropriate behavior, harassment of an
110111
individual, or aggression toward or disparagement of classes of individuals.
111112

112113
**Consequence**: A permanent ban from any sort of public interaction within

GOVERNANCE.md

+86
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# Governance
2+
3+
This document outlines the governance model for openapi-typescript.
4+
5+
## Contributor model
6+
7+
The following elected roles are outlined for this project, and carry with it additional responsibilities and permissions for managing this open source project. All members must follow the [Code of Conduct](./CODE_OF_CONDUCT.md). Consequences for member violations are detailed in [Moderation](#moderation).
8+
9+
In this document, the term “maintainers” refers to both elected Leads and Core Contributors collectively. It does not include past contributors.
10+
11+
### Core Contributor
12+
13+
A Core Contributor owns the codebase(s) and is responsible for shepherding outside PRs to merge, and is responsible for project quality, maintenance, and direction.
14+
15+
A Core Contributor is invited to join by a Lead after demonstrating regular involvement, either in the form of multiple PRs opened, and/or participating in Issue discussions.
16+
17+
### Lead
18+
19+
A Lead maintains all responsibilities of a Core Contributor, and also manages the GitHub organization and additional resources like the website deployment, npm package credentials, domain, and sponsorship allocation. Leads organize the regular meetings and facilitate communication among the group. A Lead also may be a tiebreaker in the case of disagreement from a Core Contributor.
20+
21+
A Lead is a self-volunteer from a Core Contributor who has served for 6 months or more, and wants to take on more involvement in the direction of the project.
22+
23+
## Project direction
24+
25+
Project direction is determined by the current maintainers of the project, but involves anything tangentially related to the translation between the OpenAPI specification and TypeScript.
26+
27+
### Roadmap
28+
29+
The roadmap exists in the form of GitHub issues—feature requests and bug reports—that maintainers decide to prioritize in the order they choose. Beyond that, maintainers may decide to expand the project scope to additional tools given time, capacity, and mutual interest.
30+
31+
## Code review
32+
33+
Code reviews are done by at least one Lead or Core Contributor, given the following criteria are met:
34+
35+
1. The `main` branch must always be passing all CI checks before merging.
36+
2. Packages >= `1.0` follow semantic versioning (“semver”), where breaking changes necessitate a new major version release. Packages < `1.0` follow the pattern of minor versions may introduce breaking changes, and patches are everything else.
37+
3. PRs opened by non-maintainers need at least 1 maintainer approval to merge.
38+
4. PRs opened by maintainers are encouraged to seek review(s) from peers, but may merge and release work without review if it meets all other criteria and standards of work.
39+
5. PR authors should attempt to respond to all comments on a PR in a best-faith effort, or track followup work either in GitHub Issues if the scope/direction is clear, or GitHub Discussions if not.
40+
41+
## Financial contributions
42+
43+
openapi-typescript is a 100% volunteer open source project, and is not financial backed by any legal entity. To maintain this free public resource that operates under an open source license and model, openapi-typescript accepts **Sponsorship** for funding the project.
44+
45+
openapi-typescript does not currently participate in bounties under the belief that it rewards quick fixes over long term maintenance. Bounties also take funds away from Core Contributors that still have significant work to do in shepherding outside contributions, and are ultimately responsible for the long term quality of this project.
46+
47+
### Sponsorship
48+
49+
Sponsorship can be placed through [Open Collective](https://opencollective.com/openapi-ts). The rewards and tiers are communicated through Open Collective. At this time GitHub Sponsors isn’t supported.
50+
51+
### Fund Allocation
52+
53+
Fund allocation is made transparent through Open Collective. The funds are distributed first to pay for recurring expenses, and the rest are distributed evenly among maintainers.
54+
55+
### Recurring expenses
56+
57+
Recurring expenses include, but aren’t limited to domain cost, website hosting, and GitHub organization costs—bare essentials needed to run the project and provide documentation for free.
58+
59+
### Lead/Core Contributor payout
60+
61+
The remaining funds are distributed evenly among maintainers on a monthly basis, keeping the project at a $0 monthly balance (for now). Maintainers get paid the month they join the project. Payout amounts and dates are made public via [Open Collective](https://opencollective.com/openapi-ts).
62+
63+
## Moderation
64+
65+
Moderation is the process of handling violations of the [Code of Conduct](./CODE_OF_CONDUCT.md).
66+
67+
### Reporting
68+
69+
Anyone may report a violation. Violations can be reported:
70+
71+
- In **private**, via `[email protected]` which is listed in the Code of Conduct. All Core Contributors monitor this email address.
72+
- In **private**, via email to one or more Core Contributor
73+
- In **public**, via a GitHub comment (mentioning `@openapi-ts/maintainers`).
74+
75+
### Reviewing
76+
77+
The incident will be reviewed by all maintainers to determine if a Code of Conduct violation occurred (barring any conflict of interest). As soon as consensus is reached, the reporter will be notified of whether or not a violation occurred, and what the resolution is.
78+
79+
### Resolution
80+
81+
In the case action is needed, it may result in any or all of the following, but not limited to:
82+
83+
- Private or public apology
84+
- Ban from participating in the GitHub organization (including code contributions, and Issue and Discussion comments). This may be temporary or permanent.
85+
- In the case a maintainer violated the Code of Conduct, a ban includes stripping of their elected title and all access from the project.
86+
- A community Discussion post notifying the rest of the community of the action taken (though details of the violation may be omitted at the discretion of maintainers to protect personal information of any involved parties).

README.md

+18
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,23 @@ Generate TypeScript types from static OpenAPI schemas
1212
Ultra-fast fetching for TypeScript generated automatically from your OpenAPI schema.
1313
</a>
1414

15+
## ⭐ Sponsors
16+
17+
### Gold Sponsors
18+
19+
<p align="center"><a href="https://github.com/zuplo"><img width="128" height="128" alt="@zuplo on GitHub" src="https://avatars.githubusercontent.com/u/85497839?s=200&v=4"></a></p>
20+
21+
### Backers
22+
23+
<p align="center"><a href="https://github.com/bddvlpr"><img width="64" height="64" alt="@bddvlpr on GitHub" src="https://avatars.githubusercontent.com/u/17461028?v=4" /></a>
24+
<a href="https://github.com/customerio"><img width="64" height="64" alt="@customerio on GitHub" src="https://avatars.githubusercontent.com/u/1152079?s=200&v=4"></a></p>
25+
26+
Become a sponsor by supporting this project on [OpenCollective](https://opencollective.com/openapi-ts)!
27+
28+
<a href="https://opencollective.com/webpack/donate" target="_blank">
29+
<img src="https://opencollective.com/webpack/donate/[email protected]?color=blue" width="300" />
30+
</a>
31+
1532
## 🤝 Contributing
1633

1734
Contributions are appreciated and welcome! See the appropriate guide for each package:
@@ -22,6 +39,7 @@ Contributions are appreciated and welcome! See the appropriate guide for each pa
2239

2340
## ♥️ Thanks
2441

42+
- Thanks to [the Project Sponsors](#sponsors) for keeping this project going!
2543
- Thanks to [dozens of lovely, smart contributors](https://github.com/drwpow/openapi-typescript/graphs/contributors) that made this library possible
2644
- Thanks to [Vitepress](https://vitepress.dev/) for the docs site
2745
- Thanks to [Cloudflare Pages](https://pages.cloudflare.com/) for docs site hosting

docs/.vitepress/shared.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export const shared = defineConfig({
1515
{
1616
defer: "",
1717
src: "https://static.cloudflareinsights.com/beacon.min.js",
18-
"data-cf-beacon": '{"token": "ea4189cb68024071a5aff8663b3b63f1"}',
18+
"data-cf-beacon": '{"token": "a2adac3f69344a25a38525e84400dd6c"}',
1919
},
2020
],
2121
],

0 commit comments

Comments
 (0)