Skip to content

Commit a164609

Browse files
joeyaielloTravisEz13
authored andcommitted
Add documentation requirements to CONTRIBUTING.md (PowerShell#3794)
1 parent 3133f85 commit a164609

1 file changed

Lines changed: 55 additions & 73 deletions

File tree

.github/CONTRIBUTING.md

Lines changed: 55 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
Contributing to PowerShell
2-
========================
1+
# Contributing to PowerShell
32

43
We welcome and appreciate contributions from the community.
54
There are many ways to become involved with PowerShell:
@@ -9,25 +8,21 @@ writing and improving documentation,
98
and contributing to the code.
109
Please read the rest of this document to ensure a smooth contribution process.
1110

12-
New to Git?
13-
-----------
11+
## Intro to Git and GitHub
1412

1513
* Make sure you have a [GitHub account](https://github.com/signup/free).
1614
* Learning Git:
17-
* GitHub Help: [Good Resources for Learning Git and GitHub][good-git-resources].
18-
* [Git Basics](../docs/git/basics.md):
19-
install and getting started.
15+
* GitHub Help: [Good Resources for Learning Git and GitHub][good-git-resources]
16+
* [Git Basics](../docs/git/basics.md): install and getting started
2017
* [GitHub Flow Guide](https://guides.github.com/introduction/flow/):
21-
step-by-step instructions of GitHub flow.
18+
step-by-step instructions of GitHub Flow
2219

23-
Quick Start Checklist
24-
---------------------
20+
## Quick Start Checklist
2521

2622
* Review the [Contribution License Agreement][CLA] requirement.
2723
* Get familiar with the [PowerShell repository](../docs/git).
2824

29-
Contributing to Issues
30-
----------------------
25+
## Contributing to Issues
3126

3227
* Review [Issue Management][issue-management].
3328
* Check if the issue you are going to file already exists in our [GitHub issues][open-issue].
@@ -37,8 +32,7 @@ Contributing to Issues
3732
* If the issue is marked as [`Up-for-Grabs`][up-for-grabs],
3833
the PowerShell Maintainers are looking for help with the issue.
3934

40-
Contributing to Documentation
41-
-----------------------------
35+
## Contributing to Documentation
4236

4337
### Contributing to documentation related to PowerShell
4438

@@ -58,25 +52,29 @@ which can be run in interactive mode to correct typos or add words to the ignore
5852
(`.spelling` at the repository root).
5953

6054
To run the spellchecker, follow the steps as follows:
61-
* install [Node.js](https://nodejs.org/en/) (v6.4.0 or up)
62-
* install [markdown-spellcheck](https://github.com/lukeapage/node-markdown-spellcheck) by
63-
`npm install -g markdown-spellcheck` (v0.11.0 or up)
64-
* run `mdspell "**/*.md" --ignore-numbers --ignore-acronyms`
65-
* if the `.spelling` file is updated, commit and push it
6655

67-
Contributing to Code
68-
--------------------
56+
* install [Node.js](https://nodejs.org/en/) (v6.4.0 or up)
57+
* install [markdown-spellcheck](https://github.com/lukeapage/node-markdown-spellcheck) by
58+
`npm install -g markdown-spellcheck` (v0.11.0 or up)
59+
* run `mdspell "**/*.md" --ignore-numbers --ignore-acronyms`
60+
* if the `.spelling` file is updated, commit and push it
61+
62+
## Contributing to Code
6963

7064
### Building and testing
65+
7166
#### Building PowerShell
67+
7268
Please see [Building PowerShell](../README.md#building-the-repository).
69+
7370
#### Testing PowerShell
71+
7472
Please see PowerShell [Testing Guidelines - Running Tests Outside of CI][running-tests-outside-of-ci] on how to test you build locally.
7573

7674
### Finding or creating an issue
7775

7876
1. Follow the instructions in [Contributing to Issues][contribute-issues] to find or open an issue.
79-
2. Mention in the issue that you are working on the issue and ask `@powershell/powershell` for an assignment.
77+
1. Mention in the issue that you are working on the issue and ask `@powershell/powershell` for an assignment.
8078

8179
### Forks and Pull Requests
8280

@@ -87,11 +85,11 @@ To contribute these changes back into the original repository,
8785
a user simply creates a pull request in order to "request" that the changes be taken "upstream".
8886

8987
Additional references:
88+
9089
* GitHub's guide on [forking](https://guides.github.com/activities/forking/)
9190
* GitHub's guide on [Contributing to Open Source](https://guides.github.com/activities/contributing-to-open-source/#pull-request)
9291
* GitHub's guide on [Understanding the GitHub Flow](https://guides.github.com/introduction/flow/)
9392

94-
9593
### Lifecycle of a pull request
9694

9795
#### Before submitting
@@ -103,68 +101,66 @@ Additional references:
103101
Each commit should be a **single complete** change.
104102
This discipline is important when reviewing the changes as well as when using `git bisect` and `git revert`.
105103

106-
107104
#### Pull request submission
108105

109106
**Always create a pull request to the `master` branch of this repository**.
110107

111108
![Github-PR-dev.png](Images/Github-PR-dev.png)
112109

113110
* If you're contributing in a way that changes the user or developer experience, you are expected to document those changes.
114-
See [Contributing to documentation related to PowerShell](#contributing-to-documentation-related-to-powershell).
115-
111+
See [Contributing to documentation related to PowerShell](#contributing-to-documentation-related-to-powershell).
116112
* Add a meaningful title of the PR describing what change you want to check in.
117113
Don't simply put: "Fixes issue #5".
118114
A better example is: "Add Ensure parameter to New-Item cmdlet", with "Fixes #5" in the PR's body.
119-
120115
* When you create a pull request,
121116
including a summary of what's included in your changes and
122117
if the changes are related to an existing GitHub issue,
123118
please reference the issue in pull request description (e.g. ```Closes #11```).
124119
See [this][closing-via-message] for more details.
125-
126120
* If the change warrants a note in the [changelog](../CHANGELOG.MD)
127121
either update the changelog in your pull request or
128122
add a comment in the PR description saying that the change may warrant a note in the changelog.
129123
New changes always go into the **Unreleased** section.
130124
Keeping the changelog up-to-date simplifies the release process for Maintainers.
131-
An example:
132-
```
133-
Unreleased
134-
----------
135-
136-
* `Update-Item` now supports `-FriendlyName`.
137-
```
138-
Please use the present tense and imperative mood when describing your changes:
139-
140-
* Instead of "Adding support for Windows Server 2012 R2", write "Add support for Windows Server 2012 R2".
141-
142-
* Instead of "Fixed for server connection issue", write "Fix server connection issue".
143-
144-
This form is akin to giving commands to the code base,
145-
and is recommended by the Git SCM developers.
146-
It is also used in the [Git commit messages](#common-engineering-practices).
147-
148-
Also, if change is related to a specific resource, please prefix the description with the resource name:
149-
150-
* Instead of "New,parameter 'ConnectionCredential' in New-SqlConnection",
151-
write "New-SqlConnection: added parameter 'ConnectionCredential'".
125+
An example (with an associated PR #):
126+
127+
```markdown
128+
Unreleased
129+
----------
130+
131+
* `Update-Item` now supports `-FriendlyName` (#1234).
132+
```
133+
134+
* Please use the present tense and imperative mood when describing your changes:
135+
* Instead of "Adding support for Windows Server 2012 R2", write "Add support for Windows Server 2012 R2".
136+
* Instead of "Fixed for server connection issue", write "Fix server connection issue".
137+
138+
This form is akin to giving commands to the code base
139+
and is recommended by the Git SCM developers.
140+
It is also used in the [Git commit messages](#common-engineering-practices).
141+
* If the change is related to a specific resource, please prefix the description with the resource name:
142+
* Instead of "New parameter 'ConnectionCredential' in New-SqlConnection",
143+
write "New-SqlConnection: add parameter 'ConnectionCredential'".
144+
* If your change warrants an update to user-facing documentation,
145+
a Maintainer will add the `Documentation Needed` label to your PR and add an issue to the [PowerShell-Docs repository][PowerShell-Docs],
146+
so that we make sure to update official documentation to reflect your contribution.
147+
As an example, this requirement includes any changes to cmdlets (including cmdlet parameters) and features which have associated about_* topics.
148+
While not required, we appreciate any contributors who add this label and create the issue themselves.
149+
Even better, all contributors are free to contribute the documentation themselves.
150+
(See [Contributing to documentation related to PowerShell](#contributing-to-documentation-related-to-powershell) for more info.)
152151

153152
#### Pull Request - Automatic Checks
154153

155154
* If this is your first contribution to PowerShell,
156155
you may be asked to sign a [Contribution Licensing Agreement][CLA] (CLA)
157156
before your changes will be accepted.
158-
159157
* Make sure you follow the [Common Engineering Practices](#common-engineering-practices)
160158
and [testing guidelines](../docs/testing-guidelines/testing-guidelines.md).
161-
162159
* After submitting your pull request,
163160
our [CI system (Travis CI and AppVeyor)][ci-system]
164161
will run a suite of tests and automatically update the status of the pull request.
165-
166162
* Our CI contains automated spellchecking. If there is any false-positive,
167-
[run the spellchecker command line tool in interactive mode](#spellchecking-documentation)
163+
[run the spellchecker command line tool in interactive mode](#spellchecking-documentation)
168164
to add words to the `.spelling` file.
169165

170166
#### Pull Request - Code Review
@@ -186,40 +182,33 @@ See [Contributing to documentation related to PowerShell](#contributing-to-docum
186182
* For a PR to be merged, it must be approved by at least one PowerShell Team member or Collaborator,
187183
so additional Reviewer(s) may be added by the Assignee as appropriate.
188184
The Assignee may also be re-assigned by Maintainers.
189-
190185
* A Reviewer can postpone the code review if CI builds fail,
191186
but also can start the code review early regardless of the CI builds.
192-
193187
* The Author **is responsible** for driving the PR to the Approved state.
194188
The Author addresses review comments, and pings Reviewer(s) to start the next iteration.
195189
If the review is making no progress (or very slow),
196190
the Author can always ask the Assignee to help coordinate the process and keep it moving.
197-
198191
* Additional feedback is always welcome!
199192
Even if you are not designated as a Reviewer,
200193
feel free to review others' pull requests anyway.
201194
Leave your comments even if everything looks good;
202195
a simple "Looks good to me" or "LGTM" will suffice.
203196
This way we know someone has already taken a look at it!
204-
205197
* When updating your pull request, please **create new commits**
206198
and **don't rewrite the commits history**. This way it's very easy for
207199
the reviewers to see diff between iterations.
208200
If you rewrite the history in the pull request, review could be much slower.
209201
Once the review is done, you can rewrite the history to make it prettier,
210202
if you like.
211203
Otherwise it's likely would be squashed on merge to master.
212-
213204
* Once the code review is done,
214205
all merge conflicts are resolved,
215206
and the CI system build status is passing,
216207
the PR Assignee will merge your changes.
217-
218-
* For more information on the the PowerShell Maintainers' process,
208+
* For more information on the PowerShell Maintainers' process,
219209
see the [documentation](../docs/maintainers).
220210

221-
Making Breaking Changes
222-
-----------------------
211+
## Making Breaking Changes
223212

224213
When you make code changes,
225214
please pay attention to these that can affect the [Public Contract](../docs/dev-process/breaking-change-contract.md).
@@ -228,14 +217,12 @@ Before making changes to the code,
228217
first review the [breaking changes contract](../docs/dev-process/breaking-change-contract.md)
229218
and follow the guidelines to keep PowerShell backward compatible.
230219

231-
Making Design Changes
232-
---------------------
220+
## Making Design Changes
233221

234222
To add new features such as cmdlets or making design changes,
235223
please follow the [PowerShell Request for Comments (RFC)](https://github.com/PowerShell/PowerShell-RFC) process.
236224

237-
Common Engineering Practices
238-
----------------------------
225+
## Common Engineering Practices
239226

240227
Other than the guidelines for ([coding](../docs/dev-process/coding-guidelines.md),
241228
the [RFC process](https://github.com/PowerShell/PowerShell-RFC) for design,
@@ -277,23 +264,17 @@ is also appropriate, as is using Markdown syntax.
277264
Git SCM [submitting patches](https://git.kernel.org/cgit/git/git.git/tree/Documentation/SubmittingPatches),
278265
Brandon Rhodes' [semantic linefeeds][],
279266
and John Gruber's [Markdown syntax](https://daringfireball.net/projects/markdown/syntax).
280-
281267
* Don't commit code that you didn't write.
282268
If you find code that you think is a good fit to add to PowerShell,
283269
file an issue and start a discussion before proceeding.
284-
285270
* Create and/or update tests when making code changes.
286-
287271
* Run tests and ensure they are passing before pull request.
288-
289272
* All pull requests **must** pass CI systems before they can be approved.
290-
291273
* Avoid making big pull requests.
292274
Before you invest a large amount of time,
293275
file an issue and start a discussion with the community.
294276

295-
Contributor License Agreement (CLA)
296-
-----------------------------------
277+
## Contributor License Agreement (CLA)
297278

298279
To speed up the acceptance of any contribution to any PowerShell repositories,
299280
you could [sign a Microsoft Contribution Licensing Agreement (CLA)](https://cla.microsoft.com/) ahead of time.
@@ -321,3 +302,4 @@ Once you sign a CLA, all your existing and future pull requests will be labeled
321302
[open-issue]: https://github.com/PowerShell/PowerShell/issues
322303
[up-for-grabs]: https://github.com/powershell/powershell/issues?q=is%3Aopen+is%3Aissue+label%3AUp-for-Grabs
323304
[semantic linefeeds]: http://rhodesmill.org/brandon/2012/one-sentence-per-line/
305+
[PowerShell-Docs]: https://github.com/powershell/powershell-docs/

0 commit comments

Comments
 (0)