Individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit. This project is more like an open wiki than a standard guarded open source project.
There are a few basic ground-rules for contributors:
- No
--force
pushes onmaster
or modifying the Git history in any way after a PR has been merged. - Non-master branches ought to be used for ongoing work.
- External API changes and significant modifications ought to be subject to an internal pull-request to solicit feedback from other contributors.
- Internal pull-requests to solicit feedback are encouraged for any other non-trivial contribution but left to the discretion of the contributor.
- Contributors should attempt to adhere to the prevailing code-style.
- At least two contributors, or one core member, must approve pull-requests prior to merging.
- All integrated CI services must be green before a pull-request can be merged.
- SemVer-major changes in this repository must be merged by a lead maintainer.
- In case it is not possible to reach consensus in a pull-request, the decision is left to the lead maintainers team.
Code for Fastify's v1.x is in branch 1.x, so all Fastify 1.x related changes should be based on branch 1.x
.
Code for Fastify's v2.x is in branch 2.x, so all Fastify 2.x related changes should be based on branch 2.x
.
Declaring formal releases remains the prerogative of the lead maintainers. Do not bump version numbers in pull requests.
The contributors to the Fastify's plugins must attend the same rules of the Fastify repository with few adjustements:
- A release can be published by any member.
- The plugin version must follow the semver specification.
- The Node.js compatibility must match with the Fastify's master branch.
- The new release must have the changelog information stored in the GitHub release.
For this scope we suggest to adopt a tool like
releasify
to archive this. - PR opened by bots (like Greenkeeper) can be merged if the CI is green and the Node.js versions supported are the same of the plugin.
This is an experiment and feedback is welcome! This document may also be subject to pull-requests or changes by contributors where you believe you have something valuable to add or change.
We have many collaborators, and every kind of contribution is welcome! Our organization is structured as follows:
Team | Responsibility | Repository |
---|---|---|
@fastify/leads |
Fastify Lead Maintainers | GitHub organization owners |
@fastify/core |
Fastify Core development | fastify , fast-json-stringify , light-my-request , fastify-plugin , middie |
@fastify/plugins |
Build, maintain and release Fastify plugins | All plugins repositories |
@fastify/benchmarks |
Build and maintain our benchmarks suite | benchmarks |
@fastify/docs-chinese |
Translate the Fastify documentation in Chinese | docs-chinese |
Every memeber of the org is also part of @fastify/fastify
.
Welcome to the team! We are happy to have you. Before you start, please complete the following tasks:
- Set up 2 factor authentication for GitHub and NPM
- Choose which team to join (more than one is ok!) based on how you want to help.
- Open a pull request to
fastify/fastify:master
that adds your name, username, and email to the team you have choosen in the README.md and package.json (if you are part of the core team) files. The members lists are sorted alphabetically; make sure to add your name in the proper order. - Open a pull request to
fastify/website:master
adding yourself to the team.yml file. This list is also sorted alphabetically so make sure to add your name in the proper order. Use your GitHub profile icon for thepicture:
field. - The person that does the onboarding must add you to the npm org, so that you can help maintaining the official plugins.
We are thankful to you and we are really glad to have worked with you. We'll be really happy to see you here again if you want to come back, but for now the person that did the onboarding must:
- Ask the collaborator if they want to stay or not.
- If the collaborator can't work with us anymore, they should:
- Open a pull request to
fastify/fastify:master
and move themselves in the Past Collaborators section. - Open a pull request to
fastify/website:master
and move themselves in the Past Collaborators section in the team.yml file.
The person that did the onboarding must:
- If the collaborator doesn't reply to the ping in reasonable time, open the pull requests described above.
- Remove the collaborator from the Fastify teams on GitHub.
- Remove the collaborator from the npm org.
- Remove the collaborator from the Azure team.
By making a contribution to this project, I certify that:
-
(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or
-
(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or
-
(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.
-
(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved.