Ohm-Management - Projektarbeit B-ME
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.

CONTRIBUTING.md 8.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. # Contributing to node-bunyan
  2. Thanks for using node-bunyan and for considering contributing to it! Or perhaps
  3. you are just here to get a sniff for what is going on with node-bunyan
  4. development.
  5. ## How you can help
  6. If you want to help me here, great! Thank you! Some ideas:
  7. - Do you have experience with and/or recommendations for a good automated
  8. testing service? Ideally I'd like support for Mac, Linux, SmartOS, and maybe
  9. Windows. Also, support for node.js versions 0.10 up to whatever the current
  10. latest is. Are those too tall an order? What's more, Bunyan is meant to work
  11. (at least partially) in the browser. Is there a good service for that?
  12. Please discuss on [issue #342](https://github.com/trentm/node-bunyan/issues/342).
  13. - Fielding issues labelled with "[Type-Question][Type-Question]", if you are familiar
  14. with Bunyan and know how to answer them, would be great.
  15. - If you want to dive into code, but aren't *that* familiar with node-bunyan,
  16. then [issues labelled with Experience-Easy][Experience-Easy] are a good
  17. place to start.
  18. - [Once I've made a once over
  19. triaging](https://github.com/trentm/node-bunyan/issues/335) and consolodating
  20. issues and PRs, volunteering for issues in a particular
  21. [component](#component) with which you have familiarity would be great.
  22. [Type-Question]: https://github.com/trentm/node-bunyan/issues?q=is%3Aopen+is%3Aissue+label%3AType-Question
  23. ## Trent's Biased Rules for Code
  24. In the hope that it makes it easier to get PRs into Bunyan, here is my biased
  25. list of what I typically want. Submitting a PR without all of these is
  26. *totally fine*! The only side-effect is that it may take longer for me to
  27. provide feedback on it and merge it. I'll politely request missing pieces.
  28. - Please follow existing code style. Contributed code must pass `make check`.
  29. (Note: I intended to [change to eslint
  30. soon](https://github.com/trentm/node-bunyan/issues/341), so currently `make
  31. check` might be a moving target.)
  32. - Any user visible change in behaviour should almost certainly include an
  33. update to the docs. Currently the "docs" is the README.md.
  34. - Adding a test case for code changes is **stronly recommended**, else I
  35. can't easily promise to not break your fix/feature later. If you don't
  36. grok the test suite, please ask. We can use it to form the basis for a
  37. "test/README.md".
  38. - Typically a code change should have an associated issue or PR. This allows
  39. addition of follow-up issues, discussion, test data, etc. to be associated
  40. with the commit. Just using GitHub pull requests makes this easy.
  41. - All but the most trivial code changes should have an addition to the
  42. [changelog](./CHANGES.md). The audience for the changelog is *Bunyan users*.
  43. However, because rebasing longer-lived PRs against master is a pain
  44. with a change to CHANGES.md, please **do not include a CHANGES.md change
  45. in your PR. Instead suggest a CHANGES.md addition in a comment on the
  46. PR.**
  47. - Good commit messages, please:
  48. - The first line should be a succinct summary of the issue or fix. A
  49. good candidate is to just cut 'n paste the issue title, if there is one.
  50. - If the commit is for a particular issue/PR (see previous rule), please
  51. list the issue number in the commit message. E.g. "Fixes #123" or "Related
  52. to #234".
  53. - The audience for commit messages is *Bunyan developers*.
  54. ## Pull Request Lifecycle
  55. (Language adapted from
  56. [terraform](https://github.com/hashicorp/terraform/blob/master/CONTRIBUTING.md).)
  57. - You are welcome to submit your pull request for commentary or review before it
  58. is fully completed. Please prefix the title of your pull request with "[WIP]"
  59. to indicate this. It's also a good idea to include specific questions or items
  60. you'd like feedback on.
  61. - Once you believe your pull request is ready to be merged, you can remove any
  62. "[WIP]" prefix from the title and a core team member will review. See
  63. Trent's Biased Rules above to help ensure that your contribution will be
  64. merged quickly.
  65. - Trent or, if things go well, a node-bunyan maintainer will look over your
  66. contribution and either provide comments letting you know if there is anything
  67. left to do. Please be patient. Unfortunately, I'm not able to carve out
  68. a *lot* of time for Bunyan development and maintenance.
  69. - Once all outstanding comments and checklist items have been addressed, your
  70. contribution will be merged. Merged PRs will be included in the next
  71. node-bunyan release.
  72. - In some cases, we might decide that a PR should be closed. We'll make sure to
  73. provide clear reasoning when this happens.
  74. ## Issue labels
  75. The point of issue labeling for node-bunyan is to help answer "what should be
  76. worked on now? what can be left for later?" I don't want issue labelling to
  77. become a burden for anyone, so (a) don't feel obliged to add them yourself and
  78. (b) I'm happy to reevaluate their usage.
  79. Bunyan shall have categories of [issue
  80. labels](https://github.com/trentm/node-bunyan/labels) named "$category-$value".
  81. An issue should have max *one* label from each set. Users of Google Code's
  82. dearly departed issue tracker may remember this kind of thing. This is a
  83. poorman's version of structured issue tracker metadata.
  84. I'm inclined to *not* do priorities right now. *Possibly* we'll use GitHub
  85. milestones to basically set targets for upcoming releases. But otherwise my
  86. sense is that for smaller OSS projects, assigning prios will get in the way.
  87. If people would think it helpful, I'd consider "Difficulty-" or "Experience-"
  88. categories (a la Rust's "E-" labels) to mark easier and intermediate tasks
  89. that someone interested but maybe not very familiar with Bunyan might want
  90. to tackle.
  91. For now, here are the various labels and their purpose:
  92. ### Meta
  93. - needstriage: Temporary label to help me do a single triage pass through all
  94. current open issues and PRs.
  95. See [#335](https://github.com/trentm/node-bunyan/issues/335)
  96. where I'm working through this.
  97. ### Type
  98. Color: green
  99. - Type-Unknown: If it is still unclear or undecided if an issue is an intended
  100. feature (perhaps arguing for better docs or examples to avoid confusion) or a
  101. bug, I will use this category.
  102. - Type-Question: Asking a question on Bunyan usage, about the project, etc.
  103. - Type-Bug: A bug in Bunyan's behaviour.
  104. - Type-Improvement: A new feature or other improvement.
  105. - Type-Doc: Issues with Bunyan's documentation.
  106. - Type-Task: A project task to be done.
  107. TODO: consider Type-Unknown for the "unclear if bug or feature" tickets.
  108. ### Component
  109. Color: blue
  110. - Component-Project: Project meta stuff like testing, linting, build, install,
  111. etc.
  112. - Component-CLI: The `bunyan` command-line tool.
  113. - Component-Lib: catch-all for other library stuff
  114. - Component-LibRotation: The bunyan library's log rotation support.
  115. - Component-LibBrowser: Bunyan's handling/support for running in the browser.
  116. - Component-LibFlush: A separate component for collecting the tickets related
  117. to closing/flushing bunyan streams on process shutdown.
  118. The point of components is to find like issues to help with reference, search
  119. and resolving them. If no component fits an issue/PR, then don't add a label.
  120. ### Resolution
  121. Color: red
  122. - Resolution-WontFix
  123. - Resolution-Duplicate
  124. - Resolution-Fixed: Also used to indicate "doc written", "question answered",
  125. "feature implemented".
  126. - Resolution-CannotRepro: After some reasonable attempt by maintainers to
  127. reproduce a bug report, I want it to be non-controversial to close it
  128. and mark it with this. If given more info by someone able to repro, we
  129. can happy re-open issues.
  130. ### Experience
  131. Color: yellow
  132. - Experience-Easy: Relatively little experience with node-bunyan should be
  133. required to complete this issue.
  134. - Experience-NeedsTest: Typically added to an issue or PR that needs a test
  135. case. Someone familiar enough with node-bunyan's test suite could tackle this.
  136. - Experience-Hard: At a guess, this is a thorny issue that requires known
  137. node-bunyan well, knowing node.js well, requires design review or all of
  138. these.
  139. One of the "Experience-\*" labels can optionally be put on an issue or PR to
  140. indicate what kind of experience a contributor would need with node-bunyan
  141. (and/or node.js) to complete it. For example, if you're looking for somewhere to
  142. start, check out the [Experience-Easy][Experience-Easy] tag. This category idea
  143. is borrowed from [rust's E-\* labels][rust-issue-triage].
  144. [Experience-Easy]: https://github.com/trentm/node-bunyan/issues?q=is%3Aopen+is%3Aissue+label%3AExperience-Easy
  145. [rust-issue-triage]: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#issue-triage
  146. ## Acknowledgements
  147. Anything good about this document is thanks to inspiration from
  148. [rust](https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md) and, more
  149. recently
  150. [terraform](https://github.com/hashicorp/terraform/blob/master/CONTRIBUTING.md).
  151. Anything bad about it, is my fault.