process](https://github.com/go-gitea/proposals) before they can be
before they can be accepted.
accepted.
This process gives everyone a chance to validate the design,
This process gives everyone a chance to validate the design, helps
helps prevent duplication of effort,
prevent duplication of effort, and ensures that the idea fits inside
and ensures that the idea fits inside the goals for the project and tools.
the goals for the project and tools. It also checks that the design is
It also checks that the design is sound before code is written;
sound before code is written; the code review tool is not the place for
the code review tool is not the place for high-level discussions.
high-level discussions.
## Testing redux
## Testing redux
Before sending code out for review, run all the tests for the whole
Before sending code out for review, run all the tests for the whole
tree to make sure the changes don't break other usage and keep the compatibility on upgrade:
tree to make sure the changes don't break other usage and keep the
compatibility on upgrade:
After running for a while, the command should print
After running for a while, the command should print
@ -56,62 +60,92 @@ ALL TESTS PASSED
## Code review
## Code review
Changes to Gitea must be reviewed before they are accepted,
Changes to Gitea must be reviewed before they are accepted, no matter
no matter who makes the change even if an owners or a maintainer.
who makes the change even if an owners or a maintainer. We use github's
We use github's pull request workflow to do that and use [lgtm](http://lgtm.co) to ensure every PR is reviewed by at least 2 maintainers.
pull request workflow to do that and use [lgtm](http://lgtm.co) to ensure
every PR is reviewed by at least 2 maintainers.
## Sign your work
## Sign your work
The sign-off is a simple line at the end of the explanation for the patch. Your
The sign-off is a simple line at the end of the explanation for the
signature certifies that you wrote the patch or otherwise have the right to pass
patch. Your signature certifies that you wrote the patch or otherwise
it on as an open-source patch. The rules are pretty simple: If you can certify
have the right to pass it on as an open-source patch. The rules are
[DCO](DCO), then you just add a line to every git commit message:
pretty simple: If you can certify [DCO](DCO), then you just add a line
to every git commit message:
```
```
Signed-off-by: Joe Smith <joe.smith@email.com>
Signed-off-by: Joe Smith <joe.smith@email.com>
```
```
Please use your real name, we really dislike pseudonyms or anonymous
Please use your real name, we really dislike pseudonyms or anonymous
contributions. We are in the opensource world without secrets. If you set your
contributions. We are in the opensource world without secrets. If you
`user.name` and `user.email` git configs, you can sign your commit automatically
set your `user.name` and `user.email` git configs, you can sign your
with `git commit -s`.
commit automatically with `git commit -s`.
## Contributors
## Contributors
Everyone who sent a PR to Gitea that gets accepted will be as a contributor. Please send a PR to add your name to
Everyone who sent a PR to Gitea that gets accepted will
[CONTRIBUTORS](CONTRIBUTORS). For the format, see the [CONTRIBUTORS](CONTRIBUTORS).
be as a contributor. Please send a PR to add your name to
[CONTRIBUTORS](CONTRIBUTORS). For the format, see the
[CONTRIBUTORS](CONTRIBUTORS).
## Maintainers
## Maintainers
To make sure every PR have been checked, we make a team maintainers. Any PR MUST be reviewed and by at least two maintainers before it can get merged.
To make sure every PR have been checked, we make a team maintainers. Any
Maintainers should be a contributor of gitea(or gogs) and contributed at least 4 accepted PRs. And a contributor should apply as a maintainer in [gitter Gitea develop](https://gitter.im/go-gitea/develop).
PR MUST be reviewed and by at least two maintainers before it can
And the owners or the team maintainer could invite the contributor. A maintainer should spend some time on code reviews. If some maintainer have no time
get merged. Maintainers should be a contributor of gitea(or gogs) and
to do that, he should apply to leave maintainers team and we will give him an honor to be as a member of advisor team. Of course, if an advisor have time to code view, welcome it back to maintainers team.
contributed at least 4 accepted PRs. And a contributor should apply as a
If some one have no time to code view and forget to leave the maintainers, the owners have the power to move him from maintainers team to advisors team.
maintainer in [gitter Gitea develop](https://gitter.im/go-gitea/develop).
And the owners or the team maintainer could invite the contributor. A
maintainer should spend some time on code reviews. If some maintainer
have no time to do that, he should apply to leave maintainers team and
we will give him an honor to be as a member of advisor team. Of course,
if an advisor have time to code view, welcome it back to maintainers team.
If some one have no time to code view and forget to leave the maintainers,
the owners have the power to move him from maintainers team to advisors
team.
## Owners
## Owners
Since Gitea is a pure community organization without any company support, to keep the development healthly We will elect the owners every year. Every time we will elect three owners.
Since Gitea is a pure community organization without any company
All the contributers could vote for three owners, one is the main owner, the other two are assistant owners. When the new owners have been elected, the old owners MUST move the power to the new owners.
support, to keep the development healthly We will elect the owners every
If some owner don't obey these rules, the other owners are allowed to revoke his owner status.
year. Every time we will elect three owners. All the contributers could
vote for three owners, one is the main owner, the other two are assistant
owners. When the new owners have been elected, the old owners MUST move
the power to the new owners. If some owner don't obey these rules,
the other owners are allowed to revoke his owner status.
After the election, the new owners should say he agrees with these rules on the [CONTRIBUTING](CONTRIBUTING.md) on the [Gitter Gitea Channel](https://gitter.im/go-gitea/gitea). Below is the word to speak
After the election, the new owners should say he agrees with these
rules on the [CONTRIBUTING](CONTRIBUTING.md) on the [Gitter Gitea
Channel](https://gitter.im/go-gitea/gitea). Below is the word to speak
```
```
I'm glad to be an owner of Gitea, I agree with [CONTRIBUTING](CONTRIBUTING.md). I will spend part of my time on gitea and lead the development of gitea.
I'm glad to be an owner of Gitea,
I agree with [CONTRIBUTING](CONTRIBUTING.md).
I will spend part of my time on gitea
and lead the development of gitea.
```
```
For a honor to the owners, this document will add the history owners below:
For a honor to the owners, this document will add the history owners
Gitea has one master as a tip branch and have many version branch such as v0.9. v0.9 is a release branch and we will tag v0.9.0 both for binary download.
Gitea has one master as a tip branch and have many version branch
If v0.9.0 have some bugs, we will accept PR on v0.9 and publish v0.9.1 and merge bug PR to master.
such as v0.9. v0.9 is a release branch and we will tag v0.9.0 both for
binary download. If v0.9.0 have some bugs, we will accept PR on v0.9
and publish v0.9.1 and merge bug PR to master.
Branch master is a tip version, so if you wish a production usage, please download the latest release tag version. All the branch will be protected via github,
Branch master is a tip version, so if you wish a production usage,
All the PRs to all the branches should be review by two maintainers and pass the automatic tests.
please download the latest release tag version. All the branch will be
protected via github, All the PRs to all the branches should be review
by two maintainers and pass the automatic tests.
## Copyright
## Copyright
@ -123,5 +157,6 @@ Code that you contribute should use the standard copyright header:
// license that can be found in the LICENSE file.
// license that can be found in the LICENSE file.
```
```
Files in the repository are copyright the year they are added and the year they are last changed. If the copyright author is changed, just copy the head
Files in the repository are copyright the year they are added and the
below the old one.
year they are last changed. If the copyright author is changed, just