my xfce4 dotfiles
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.

224 lines
8.1 KiB

3 years ago
  1. # CONTRIBUTING GUIDELINES
  2. Oh-My-Zsh is a community-driven project. Contribution is welcome, encouraged, and appreciated.
  3. It is also essential for the development of the project.
  4. First, please take a moment to review our [code of conduct](CODE_OF_CONDUCT.md).
  5. These guidelines are an attempt at better addressing the huge amount of pending
  6. issues and pull requests. Please read them closely.
  7. Foremost, be so kind as to [search](#use-the-search-luke). This ensures any contribution
  8. you would make is not already covered.
  9. <!-- TOC updateonsave:true depthfrom:2 -->
  10. - [Reporting Issues](#reporting-issues)
  11. - [You have a problem](#you-have-a-problem)
  12. - [You have a suggestion](#you-have-a-suggestion)
  13. - [Submitting Pull Requests](#submitting-pull-requests)
  14. - [Getting started](#getting-started)
  15. - [You have a solution](#you-have-a-solution)
  16. - [You have an addition](#you-have-an-addition)
  17. - [Use the Search, Luke](#use-the-search-luke)
  18. - [Commit Guidelines](#commit-guidelines)
  19. - [Format](#format)
  20. - [Style](#style)
  21. - [Volunteer](#volunteer)
  22. <!-- /TOC -->
  23. ## Reporting Issues
  24. ### You have a problem
  25. Please be so kind as to [search](#use-the-search-luke) for any open issue already covering
  26. your problem.
  27. If you find one, comment on it so we can know there are more people experiencing it.
  28. If not, look at the [Troubleshooting](https://github.com/ohmyzsh/ohmyzsh/wiki/Troubleshooting)
  29. page for instructions on how to gather data to better debug your problem.
  30. Then, you can go ahead and create an issue with as much detail as you can provide.
  31. It should include the data gathered as indicated above, along with:
  32. 1. How to reproduce the problem
  33. 2. What the correct behavior should be
  34. 3. What the actual behavior is
  35. Please copy to anyone relevant (_eg_ plugin maintainers) by mentioning their GitHub handle
  36. (starting with `@`) in your message.
  37. We will do our very best to help you.
  38. ### You have a suggestion
  39. Please be so kind as to [search](#use-the-search-luke) for any open issue already covering
  40. your suggestion.
  41. If you find one, comment on it so we can know there are more people supporting it.
  42. If not, you can go ahead and create an issue. Please copy to anyone relevant (_eg_ plugin
  43. maintainers) by mentioning their GitHub handle (starting with `@`) in your message.
  44. ## Submitting Pull Requests
  45. ### Getting started
  46. You should be familiar with the basics of
  47. [contributing on GitHub](https://help.github.com/articles/using-pull-requests) and have a fork
  48. [properly set up](https://github.com/ohmyzsh/ohmyzsh/wiki/Contribution-Technical-Practices).
  49. You MUST always create PRs with _a dedicated branch_ based on the latest upstream tree.
  50. If you create your own PR, please make sure you do it right. Also be so kind as to reference
  51. any issue that would be solved in the PR description body,
  52. [for instance](https://help.github.com/articles/closing-issues-via-commit-messages/)
  53. _"Fixes #XXXX"_ for issue number XXXX.
  54. ### You have a solution
  55. Please be so kind as to [search](#use-the-search-luke) for any open issue already covering
  56. your [problem](#you-have-a-problem), and any pending/merged/rejected PR covering your solution.
  57. If the solution is already reported, try it out and +1 the pull request if the
  58. solution works ok. On the other hand, if you think your solution is better, post
  59. it with a reference to the other one so we can have both solutions to compare.
  60. If not, then go ahead and submit a PR. Please copy to anyone relevant (e.g. plugin
  61. maintainers) by mentioning their GitHub handle (starting with `@`) in your message.
  62. ### You have an addition
  63. Please [do not](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes#dont-send-us-your-theme-for-now)
  64. send themes for now.
  65. Please be so kind as to [search](#use-the-search-luke) for any pending, merged or rejected Pull Requests
  66. covering or related to what you want to add.
  67. If you find one, try it out and work with the author on a common solution.
  68. If not, then go ahead and submit a PR. Please copy to anyone relevant (_eg_ plugin
  69. maintainers) by mentioning their GitHub handle (starting with `@`) in your message.
  70. For any extensive change, _eg_ a new plugin, you will have to find testers to +1 your PR.
  71. ----
  72. ## Use the Search, Luke
  73. _May the Force (of past experiences) be with you_
  74. GitHub offers [many search features](https://help.github.com/articles/searching-github/)
  75. to help you check whether a similar contribution to yours already exists. Please search
  76. before making any contribution, it avoids duplicates and eases maintenance. Trust me,
  77. that works 90% of the time.
  78. You can also take a look at the [FAQ](https://github.com/ohmyzsh/ohmyzsh/wiki/FAQ)
  79. to be sure your contribution has not already come up.
  80. If all fails, your thing has probably not been reported yet, so you can go ahead
  81. and [create an issue](#reporting-issues) or [submit a PR](#submitting-pull-requests).
  82. ----
  83. ## Commit Guidelines
  84. Oh My Zsh uses the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/)
  85. specification. The automatic changelog tool uses these to automatically generate
  86. a changelog based on the commit messages. Here's a guide to writing a commit message
  87. to allow this:
  88. ### Format
  89. ```
  90. type(scope)!: subject
  91. ```
  92. - `type`: the type of the commit is one of the following:
  93. - `feat`: new features.
  94. - `fix`: bug fixes.
  95. - `docs`: documentation changes.
  96. - `refactor`: refactor of a particular code section without introducing
  97. new features or bug fixes.
  98. - `style`: code style improvements.
  99. - `perf`: performance improvements.
  100. - `test`: changes to the test suite.
  101. - `ci`: changes to the CI system.
  102. - `build`: changes to the build system (we don't yet have one so this shouldn't apply).
  103. - `chore`: for other changes that don't match previous types. This doesn't appear
  104. in the changelog.
  105. - `scope`: section of the codebase that the commit makes changes to. If it makes changes to
  106. many sections, or if no section in particular is modified, leave blank without the parentheses.
  107. Examples:
  108. - Commit that changes the `git` plugin:
  109. ```
  110. feat(git): add alias for `git commit`
  111. ```
  112. - Commit that changes many plugins:
  113. ```
  114. style: fix inline declaration of arrays
  115. ```
  116. For changes to plugins or themes, the scope should be the plugin or theme name:
  117. -`fix(agnoster): commit subject`
  118. -`fix(theme/agnoster): commit subject`
  119. - `!`: this goes after the `scope` (or the `type` if scope is empty), to indicate that the commit
  120. introduces breaking changes.
  121. Optionally, you can specify a message that the changelog tool will display to the user to indicate
  122. what's changed and what they can do to deal with it. You can use multiple lines to type this message;
  123. the changelog parser will keep reading until the end of the commit message or until it finds an empty
  124. line.
  125. Example (made up):
  126. ```
  127. style(agnoster)!: change dirty git repo glyph
  128. BREAKING CHANGE: the glyph to indicate when a git repository is dirty has
  129. changed from a Powerline character to a standard UTF-8 emoji. You can
  130. change it back by setting `ZSH_THEME_DIRTY_GLYPH`.
  131. Fixes #420
  132. Co-authored-by: Username <email>
  133. ```
  134. - `subject`: a brief description of the changes. This will be displayed in the changelog. If you need
  135. to specify other details you can use the commit body but it won't be visible.
  136. Formatting tricks: the commit subject may contain:
  137. - Links to related issues or PRs by writing `#issue`. This will be highlighted by the changelog tool:
  138. ```
  139. feat(archlinux): add support for aura AUR helper (#9467)
  140. ```
  141. - Formatted inline code by using backticks: the text between backticks will also be highlighted by
  142. the changelog tool:
  143. ```
  144. feat(shell-proxy): enable unexported `DEFAULT_PROXY` setting (#9774)
  145. ```
  146. ### Style
  147. Try to keep the first commit line short. This is harder to do using this commit style but try to be
  148. concise and if you need more space, you can use the commit body. Try to make sure that the commit
  149. subject is clear and precise enough that users will know what change by just looking at the changelog.
  150. ----
  151. ## Volunteer
  152. Very nice!! :)
  153. Please have a look at the [Volunteer](https://github.com/ohmyzsh/ohmyzsh/wiki/Volunteers)
  154. page for instructions on where to start and more.