You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

186 lines
7.2 KiB

  1. # Contribution Guidelines
  2. ## Introduction
  3. This document explains how to contribute changes to the Gitea
  4. project. It assumes you have followed the [installation
  5. instructions](https://github.com/go-gitea/docs/tree/master/en-US/installation)
  6. Sensitive security-related issues should be reported to
  7. [security@gitea.io](mailto:security@gitea.io).
  8. ## Bug reports
  9. Please search the issues on the issue tracker with a variety of keywords
  10. to ensure your bug is not already reported.
  11. If unique, [open an issue](https://github.com/go-gitea/gitea/issues/new)
  12. and answer the questions so we can understand and reproduce the
  13. problematic behavior.
  14. The burden is on you to convince us that it is actually a bug
  15. in Gitea. This is easiest to do when you write clear, concise
  16. instructions so we can reproduce the behavior (even if it seems
  17. obvious). The more detailed and specific you are, the faster
  18. we will be able to help you. Check out [How to Report Bugs
  19. Effectively](http://www.chiark.greenend.org.uk/~sgtatham/bugs.html).
  20. Please be kind, remember that Gitea comes at no cost to you, and you're
  21. getting free help.
  22. ## Discuss your design
  23. The project welcomes submissions but please let everyone know what
  24. you're working on if you want to change or add something to the Gitea
  25. repositories.
  26. Before starting to write something new for the Gitea project, please
  27. [file an issue](https://github.com/go-gitea/gitea/issues/new).
  28. Significant changes must go through the [change proposal
  29. process](https://github.com/go-gitea/proposals) before they can be
  30. accepted.
  31. This process gives everyone a chance to validate the design, helps
  32. prevent duplication of effort, and ensures that the idea fits inside
  33. the goals for the project and tools. It also checks that the design is
  34. sound before code is written; the code review tool is not the place for
  35. high-level discussions.
  36. ## Testing redux
  37. Before sending code out for review, run all the tests for the whole
  38. tree to make sure the changes don't break other usage and keep the
  39. compatibility on upgrade:
  40. After running for a while, the command should print
  41. ```
  42. ALL TESTS PASSED
  43. ```
  44. ## Vendoring
  45. We keep a cached copy of dependencies within the `vendor/` directory,
  46. managing updates via [govendor](http://github.com/kardianos/govendor).
  47. Pull requests should only include `vendor/` updates if they are
  48. part of the same change, be it a bugfix or a feature addition.
  49. The `vendor/` update needs to be justified as part of the PR description,
  50. and must be verified by the reviewers and/or merger to always reference
  51. an existing upstream commit.
  52. ## Code review
  53. Changes to Gitea must be reviewed before they are accepted, no matter
  54. who makes the change even if an owners or a maintainer. We use github's
  55. pull request workflow to do that and use [lgtm](http://lgtm.co) to ensure
  56. every PR is reviewed by at least 2 maintainers.
  57. Please try to make your pull request easy to review for us. Please read the
  58. ["How to get faster PR reviews"](https://github.com/kubernetes/kubernetes/blob/master/docs/devel/faster_reviews.md),
  59. guide, it got useful tips for any project you may want to contribute. See some
  60. of the points:
  61. - Make small pull requests. The smaller, the faster to review and the more
  62. likely it will be merged soon.
  63. - Don't make changes unrelated to your PR. Maybe there are typos on some
  64. comments, maybe refactoring would welcome on a function... but if that is not
  65. related to you PR, please make *another* PR for that.
  66. - Split big pull requests in multiple. An incremental change will be faster to
  67. review than a huge PR.
  68. ## Sign your work
  69. The sign-off is a simple line at the end of the explanation for the
  70. patch. Your signature certifies that you wrote the patch or otherwise
  71. have the right to pass it on as an open-source patch. The rules are
  72. pretty simple: If you can certify [DCO](DCO), then you just add a line
  73. to every git commit message:
  74. ```
  75. Signed-off-by: Joe Smith <joe.smith@email.com>
  76. ```
  77. Please use your real name, we really dislike pseudonyms or anonymous
  78. contributions. We are in the opensource world without secrets. If you
  79. set your `user.name` and `user.email` git configs, you can sign your
  80. commit automatically with `git commit -s`.
  81. ## Contributors
  82. Everyone who sent a PR to Gitea that gets accepted will
  83. be as a contributor. Please send a PR to add your name to
  84. [CONTRIBUTORS](CONTRIBUTORS). For the format, see the
  85. [CONTRIBUTORS](CONTRIBUTORS).
  86. ## Maintainers
  87. To make sure every PR have been checked, we make a team maintainers. Any
  88. PR MUST be reviewed and by at least two maintainers before it can
  89. get merged. Maintainers should be a contributor of gitea(or gogs) and
  90. contributed at least 4 accepted PRs. And a contributor should apply as a
  91. maintainer in [gitter Gitea develop](https://gitter.im/go-gitea/develop).
  92. And the owners or the team maintainer could invite the contributor. A
  93. maintainer should spend some time on code reviews. If some maintainer
  94. have no time to do that, he should apply to leave maintainers team and
  95. we will give him an honor to be as a member of advisor team. Of course,
  96. if an advisor have time to code view, welcome it back to maintainers team.
  97. If some one have no time to code view and forget to leave the maintainers,
  98. the owners have the power to move him from maintainers team to advisors
  99. team.
  100. ## Owners
  101. Since Gitea is a pure community organization without any company
  102. support, to keep the development healthly We will elect the owners every
  103. year. Every time we will elect three owners. All the contributers could
  104. vote for three owners, one is the main owner, the other two are assistant
  105. owners. When the new owners have been elected, the old owners MUST move
  106. the power to the new owners. If some owner don't obey these rules,
  107. the other owners are allowed to revoke his owner status.
  108. After the election, the new owners should say he agrees with these
  109. rules on the [CONTRIBUTING](CONTRIBUTING.md) on the [Gitter Gitea
  110. Channel](https://gitter.im/go-gitea/gitea). Below is the word to speak
  111. ```
  112. I'm glad to be an owner of Gitea,
  113. I agree with [CONTRIBUTING](CONTRIBUTING.md).
  114. I will spend part of my time on gitea
  115. and lead the development of gitea.
  116. ```
  117. For a honor to the owners, this document will add the history owners
  118. below:
  119. 2016-11-04 ~ 2017-12-31
  120. - lunny <xiaolunwen@gmail.com>
  121. - tboerger <thomas@webhippie.de>
  122. - bkcsoft <kim.carlbacker@gmail.com>
  123. ## Versions
  124. Gitea has one master as a tip branch and have many version branch
  125. such as v0.9. v0.9 is a release branch and we will tag v0.9.0 both for
  126. binary download. If v0.9.0 have some bugs, we will accept PR on v0.9
  127. and publish v0.9.1 and merge bug PR to master.
  128. Branch master is a tip version, so if you wish a production usage,
  129. please download the latest release tag version. All the branch will be
  130. protected via github, All the PRs to all the branches should be review
  131. by two maintainers and pass the automatic tests.
  132. ## Copyright
  133. Code that you contribute should use the standard copyright header:
  134. ```
  135. // Copyright 2016 - 2017 The Gitea Authors. All rights reserved.
  136. // Use of this source code is governed by a MIT-style
  137. // license that can be found in the LICENSE file.
  138. ```
  139. Files in the repository are copyright the year they are added and the
  140. year they are last changed. If the copyright author is changed, just
  141. copy the head below the old one.