Skip to content

Commit cac1985

Browse files
authored
Initial commit
0 parents  commit cac1985

34 files changed

+1672
-0
lines changed

.github/FUNDING.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
p# These are supported funding model platforms
2+
3+
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4+
patreon: # Replace with a single Patreon username
5+
open_collective: # Replace with a single Open Collective username
6+
ko_fi: # Replace with a single Ko-fi username
7+
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8+
community_bridge: # Replace with a single Community Bridge project-name, e.g., cloud-foundry
9+
liberapay: # Replace with a single Liberapay username
10+
issuehunt: # Replace with a single IssueHunt username
11+
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-nam,e e.g., cloud-foundry
12+
polar: # Replace with a single Polar username
13+
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
14+
thanks_dev: # Replace with a single thanks.dev username
15+
custom: # Replace with up to 4 custom sponsorship URLs, e.g., ['link1', 'link2']
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
name: Proposal for New Factor
3+
about: Large Change -- Adding a new factor
4+
title: Proposal to Add [Factor Title]
5+
labels: large change, proposal
6+
assignees: ''
7+
8+
---
9+
10+
> Describe the factor you'd like to include and why. Include why you think it
11+
> fits with the [vision](VISION.md).
12+
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
name: Proposal for Change to Core Principles
3+
about: Large Change -- Substantial alteration to core principles
4+
title: Proposal to Change [Vision/Intro]
5+
labels: large change, proposal
6+
assignees: ''
7+
8+
---
9+
10+
> Describe what in the [vision](VISION.md) or [introduction](content/intro.md)
11+
> you think should be changed and why.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
name: Proposal to Remove Factor
3+
about: Large Change -- Removing an existing factor
4+
title: Proposal to Remove [Factor Title]
5+
labels: large change, proposal
6+
assignees: ''
7+
8+
---
9+
10+
> Explain which factor you think should be removed and why.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
name: Proposal for Updating Scope of Factor
3+
about: Medium Change - Significant modifications to an existing factor
4+
title: Proposal to Modify Factor [Factor Title]
5+
labels: medium change, proposal
6+
assignees: ''
7+
8+
---
9+
10+
> Describe the proposed changes to the factor. Why does it need to be changed?
11+
> What are the benefits?

.github/workflows/blank.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# This is a basic workflow to help you get started with Actions
2+
3+
name: CI
4+
5+
# Controls when the workflow will run
6+
on:
7+
# Triggers the workflow on push or pull request events but only for the "next" branch
8+
push:
9+
branches: [ "next" ]
10+
pull_request:
11+
branches: [ "next" ]
12+
13+
# Allows you to run this workflow manually from the Actions tab
14+
workflow_dispatch:
15+
16+
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
17+
jobs:
18+
# This workflow contains a single job called "build"
19+
build:
20+
# The type of runner that the job will run on
21+
runs-on: ubuntu-latest
22+
23+
# Steps represent a sequence of tasks that will be executed as part of the job
24+
steps:
25+
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
26+
- uses: actions/checkout@v4
27+
28+
# Runs a single command using the runners shell
29+
- name: Run a one-line script
30+
run: echo Hello, world!
31+
32+
# Runs a set of commands using the runners shell
33+
- name: Run a multi-line script
34+
run: |
35+
echo Add other actions to build,
36+
echo test, and deploy your project.

CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @twelve-factor/maintainers

CONTRIBUTING.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Contributing to the Twelve-Factor Project
2+
3+
Thank you for your interest in contributing to the twelve-factor manifesto!
4+
This guide will help you get started with contributing to the project in a way
5+
that aligns with our community values and governance structure.
6+
7+
## Getting Started
8+
9+
1. **Familiarize Yourself with the Project**
10+
- Begin by reviewing the [Twelve-Factor Manifesto](https://12factor.net) to
11+
see the current state.
12+
- Check out the [Twelve-Factor Vision](VISION.md) to understand the
13+
project's goals and principles.
14+
- Take a look at the [Twelve-Factor Governance document](GOVERNANCE.md) to
15+
familiarize yourself with how we operate.
16+
17+
2. **Find an Area to Contribute**
18+
- Contributions come in many forms: documentation, bug fixes, new features,
19+
or participating in discussions.
20+
- Look for open issues on our GitHub repository that are tagged as [good
21+
first issue](../../issues?q=is%3Aissue+is%3Aopen+label%3Agood+first+issue)
22+
for beginners, or explore areas where you feel you can provide value.
23+
24+
3. **Join the Discussion**
25+
- Engaging with the community is crucial to contributing. You can:
26+
- Participate in discussions on [open issues](../../issues).
27+
- Broader discussions often happen on the [mailing
28+
list](https://groups.google.com/g/twelve-factor)
29+
- Near real-time collaboration happens on
30+
[discord](https://discord.gg/9HFMDMt95z)
31+
- Respectful dialogue and collaboration a key to our community's success.
32+
33+
## How to Contribute
34+
35+
### Code Contributions
36+
37+
1. **Fork the Repository**
38+
- Create a personal fork of the [twelve-factor
39+
repository](https://github.com/twelve-factor/twelve-factor).
40+
2. **Clone Your Fork**
41+
- Clone your fork to your local development environment targeting the
42+
`next` branch.
43+
```bash
44+
git clone -b next https://github.com/your-username/twelve-factor.git
45+
cd twelve-factor
46+
```
47+
3. **Create a new Branch**
48+
```bash
49+
git checkout -b your-branch-name
50+
```
51+
4. **Make Your Changes**
52+
- Ensure your changes adhere to the project’s guidelines.
53+
5. **Submit a Pull Request**
54+
- Push your changes to your fork and submit a pull request (PR) to the main
55+
repository.
56+
- In your PR description, link to any relevant issues and explain the
57+
purpose and scope of your changes.
58+
6. **Review Process**
59+
- A [maintainer](MAINTAINERS.md) will review your pull request. Feedback
60+
might be provided to help align your contribution with the project’s
61+
standards.
62+
- Small changes require sign-off from one maintainer, while medium and large
63+
changes will undergo a broader review process as outlined in the
64+
[governance document](GOVERNANCE.md).

GOVERNANCE.md

Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
# Twelve-Factor Governance
2+
3+
This document defines the governance structure for the twelve-factor manifesto
4+
maintained at [https://12factor.net](https://12factor.net). This project is
5+
committed to building an open, inclusive, productive and self-governing open
6+
source community. The guidelines herein describe how the twelve-factor
7+
community should work together to achieve this goal.
8+
9+
## Membership
10+
11+
A member of the project is a person who has contributed to twelve-factor via
12+
source code, documentation, pull requests, issues, or discussions. A member may
13+
additionally have one of the roles listed below. Roles are tied to individuals,
14+
not companies. Therefore a person leaving a role from a company cannot transfer
15+
the role to someone else in that company.
16+
17+
### Maintainers
18+
19+
Maintainers are members who are in charge of the day-to-day work of the project
20+
and its technical governing body. The [maintainership group](MAINTAINERS.md) should be
21+
sufficiently large to provide diverse perspectives and ensure sustainable
22+
governance, ideally comprising more than ten but fewer than fifty members.
23+
Maintainers oversee all aspects of the project and have a mandate to drive
24+
consensus for:
25+
26+
* Defining and maintaining the mission and charter for the project.
27+
* Fostering a healthy and welcoming community, including by defining and
28+
enforcing our Code of Conduct.
29+
* Defining the governance structure of the project including how changes are
30+
proposed and merged.
31+
* Anything else that falls through the cracks.
32+
33+
New maintainers must be nominated by existing maintainers and elected by a
34+
(66%+) supermajority of the maintainers. Maintainers may graduate to emeritus
35+
status by request or by a super-majority vote of the rest of the maintainers.
36+
37+
### Contributors
38+
39+
Contributors are members who make regular contributions (documentation,
40+
reviews, responding to issues, participation in proposal discussions, code,
41+
etc.) and are therefore granted additional permissions (triaging issues,
42+
merging approved PRs, pushing to non-protected branches) that support those
43+
activities.
44+
45+
New contributors may be self-nominated or be nominated by existing
46+
contributors, and must be approved by a super-majority of the maintainers.
47+
Likewise, contributors may resign or can be removed by a super-majority of
48+
maintainers.
49+
50+
### Emeritus
51+
52+
Serving as a member of an open source project requires a significant amount of
53+
work that cannot be sustained indefinitely. The project recognizes emeritus
54+
members to whom we will always be grateful, but who no longer actively
55+
participate in the project.
56+
57+
Project members should graduate to emeritus status through self-nomination when
58+
they no longer intend to actively fulfill an assigned role in the project.
59+
Members holding multiple roles may choose emeritus status for one role while
60+
retaining other roles.
61+
62+
As a guideline, when members have not been active contributors for longer than
63+
3 months they should be nominated to be moved to emeritus. Out of courtesy, a
64+
notice for nomination should be given to members that fall under this category
65+
prior to being nominated.
66+
67+
If emeritus members in a leadership position in the project wish to regain an
68+
active role, they may skip the normal nomination process and can do so by
69+
renewing their contributions for at least two weeks and contacting an existing
70+
maintainer to review their work and mark them active again.
71+
72+
## Change Management Process
73+
74+
The twelve-factor manifesto is treated as a foundational reference, so changes
75+
follow a defined process:
76+
77+
* **Change Principles**: To accept or reject a change, the following principles
78+
will be used:
79+
* Changes should align with the core values and objectives in the
80+
[Twelve-Factor Vision](VISION.md).
81+
* Consensus among maintainers is preferred, aiming for broad agreement.
82+
* **Change Approval**: Changes require different levels of approval depending
83+
on their significance. Medium and large changes should be open for feedback
84+
for a minimum of one week. This ensures the community has time to comment.
85+
Members can \-1 the change to represent concerns that need to be discussed. A
86+
vote should only be held if consensus cannot be reached.
87+
* **Small Changes**: These include minor updates such as grammar corrections,
88+
clarifications, or updates to examples. Small changes require sign-off from
89+
at least one maintainer, with no active maintainer concerns.
90+
* **Medium Changes**: These include significant modifications to an existing
91+
factor, such as changing recommendations or updating the scope of a factor.
92+
Medium changes require sign-off from at least three maintainers, with no
93+
active maintainer concerns.
94+
* **Large Changes**: These include adding a new factor, removing an existing
95+
factor, or making substantial alterations to core principles. Large changes
96+
require sign-off from at least five maintainers, with no active maintainer
97+
concerns.
98+
* **Version Control**: Medium and large changes will be made in a "next" branch
99+
within the version control system (e.g., Git), allowing the community to test
100+
and evaluate proposed modifications before they are finalized. This ensures
101+
traceability and the ability to easily review and revert changes if needed.
102+
103+
## Major Releases
104+
105+
Once the changes in the "next" branch have been tested and reviewed,
106+
maintainers will review the set of changes and sign off with a supermajority on
107+
"major releases" of the principles. This process moves the changes from the
108+
"next" branch to the main branch, officially updating the manifesto. Major
109+
releases will happen no more than once a year to ensure stability and provide
110+
sufficient time for evaluation and community feedback.
111+
112+
## Updating Governance
113+
114+
All substantive changes in Governance require a supermajority agreement by the
115+
maintainers.
116+
117+
## Brand
118+
119+
In its pre-foundation form, Heroku will retain control over the brand of the
120+
project. The brand is inclusive of any associated logos, trademarks, and site
121+
designs. The intent is to find a longer term home where this will all be
122+
transferred to a foundation for community governance. The governance will be
123+
updated to reflect when this change occurs.
124+
125+
## Code of Conduct
126+
127+
For code of conduct, we will follow the [Contributor
128+
Covenant](https://www.contributor-covenant.org/). In case of violations of the
129+
covenant, the following process will be followed:
130+
131+
1. **Initial Report**: Violations must be reported to the
132+
[maintainers](MAINTAINERS.md). Reports can be submitted anonymously or
133+
directly to a designated maintainer.
134+
2. **Assessment**: Upon receiving a report, a team of three (3) maintainers
135+
will be selected to assess the situation and gather relevant information.
136+
This may involve interviewing the involved parties and any witnesses.
137+
3. **Decision**: Based on the gathered information, maintainers will decide on
138+
the appropriate action. Actions may include issuing warnings, requiring a
139+
formal apology, removing members from roles, or banning individuals from
140+
participation.
141+
4. **Notification**: The involved parties will be informed of the decision, and
142+
a record will be kept for future reference.
143+
5. **Appeal**: The individual subject to disciplinary action has the right to
144+
appeal the decision. Appeals will be reviewed by a panel of maintainers not
145+
directly involved in the initial assessment.
146+
147+
Actions may vary depending on the severity of the infraction, and maintainers
148+
will strive to apply consequences consistently and fairly.
149+
150+
## Definitions
151+
152+
#### Supermajority
153+
154+
Throughout these documents, "supermajority" means 66%+.

0 commit comments

Comments
 (0)