1
1
# Contribution Guidelines
2
2
3
- We welcome many kinds of community contributions to this project! Whether it's a feature implementation,
4
- bug fix, or a good idea, please create an issue so that we can discuss it. It is not necessary to create an
5
- issue before sending a pull request but it may speed up the process if we can discuss your idea before
3
+ We welcome many kinds of community contributions to this project! Whether it's a feature implementation,
4
+ bug fix, or a good idea, please create an issue so that we can discuss it. It is not necessary to create an
5
+ issue before sending a pull request but it may speed up the process if we can discuss your idea before
6
6
you start implementing it.
7
7
8
- Because this project exposes a couple different public APIs, we must be very mindful of any potential breaking
9
- changes. Some contributions may not be accepted if they risk introducing breaking changes or if they
8
+ Because this project exposes a couple different public APIs, we must be very mindful of any potential breaking
9
+ changes. Some contributions may not be accepted if they risk introducing breaking changes or if they
10
10
don't match the goals of the project. The core maintainer team has the right of final approval over
11
- any contribution to this project. However, we are very happy to hear community feedback on any decision
11
+ any contribution to this project. However, we are very happy to hear community feedback on any decision
12
12
so that we can ensure we are solving the right problems in the right way.
13
13
14
14
** NOTE** : If you believe there is a security vulnerability, please see [ Security Reporting] ( #security-reporting ) .
@@ -31,7 +31,7 @@ Here's a high level list of guidelines to follow to ensure your code contributio
31
31
- Follow established guidelines for commit hygiene
32
32
- Write unit tests to validate new features and bug fixes
33
33
- Ensure that the 'Release' build and unit tests pass locally
34
- - Ensure that the AppVeyor build passes for your change
34
+ - Ensure that the Azure DevOps build passes for your change
35
35
- Respond to all review feedback and final commit cleanup
36
36
37
37
### Practice Good Commit Hygiene
@@ -44,46 +44,46 @@ so that your commits provide a good history of the changes you are making. To b
44
44
Commit messages should be clearly written so that a person can look at the commit log and understand
45
45
how and why a given change was made. Here is a great model commit message taken from a [ blog post
46
46
by Tim Pope] ( http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html ) :
47
-
47
+
48
48
Capitalized, short (50 chars or less) summary
49
-
49
+
50
50
More detailed explanatory text, if necessary. Wrap it to about 72
51
51
characters or so. In some contexts, the first line is treated as the
52
52
subject of an email and the rest of the text as the body. The blank
53
53
line separating the summary from the body is critical (unless you omit
54
54
the body entirely); tools like rebase can get confused if you run the
55
55
two together.
56
-
56
+
57
57
Write your commit message in the imperative: "Fix bug" and not "Fixed bug"
58
58
or "Fixes bug." This convention matches up with commit messages generated
59
59
by commands like git merge and git revert.
60
-
60
+
61
61
Further paragraphs come after blank lines.
62
-
62
+
63
63
- Bullet points are okay, too
64
-
64
+
65
65
- Typically a hyphen or asterisk is used for the bullet, followed by a
66
66
single space, with blank lines in between, but conventions vary here
67
-
67
+
68
68
- Use a hanging indent
69
-
69
+
70
70
A change that fixes a known bug with an issue filed should use the proper syntax so that the [ issue
71
- is automatically closed] ( https://help.github.com/articles/closing-issues-via-commit-messages/ ) once
71
+ is automatically closed] ( https://help.github.com/articles/closing-issues-via-commit-messages/ ) once
72
72
your change is merged. Here's an example of what such a commit message should look like:
73
-
73
+
74
74
Fix #3: Catch NullReferenceException from DoThing
75
-
75
+
76
76
This change adds a try/catch block to catch a NullReferenceException that
77
77
gets thrown by DoThing [...]
78
78
79
79
- ** Squash your commits**
80
80
81
- If you are introducing a new feature but have implemented it over multiple commits,
82
- please [ squash those commits] ( http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html )
81
+ If you are introducing a new feature but have implemented it over multiple commits,
82
+ please [ squash those commits] ( http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html )
83
83
into a single commit that contains all the changes in one place. This especially applies to any "oops"
84
- commits where a file is forgotten or a typo is being fixed. Following this approach makes it a lot easier
84
+ commits where a file is forgotten or a typo is being fixed. Following this approach makes it a lot easier
85
85
to pull those changes to other branches or roll back the change if necessary.
86
-
86
+
87
87
- ** Keep individual commits for larger changes**
88
88
89
89
You can certainly maintain individual commits for different phases of a big change. For example, if
@@ -96,10 +96,10 @@ so that your commits provide a good history of the changes you are making. To b
96
96
If you're adding a new feature to the project, please make sure to include adequate [ xUnit] ( http://xunit.github.io/ )
97
97
tests with your change. In this project, we have chosen write out unit tests in a way that uses the
98
98
actual PowerShell environment rather than extensive interface mocking. This allows us to be sure that
99
- our features will work in practice.
99
+ our features will work in practice.
100
100
101
- We do both component-level and scenario-level testing depending on what code is being tested. We don't
102
- expect contributors to test every possible edge case. Testing mainline scenarios and the most common
101
+ We do both component-level and scenario-level testing depending on what code is being tested. We don't
102
+ expect contributors to test every possible edge case. Testing mainline scenarios and the most common
103
103
failure scenarios is often good enough.
104
104
105
105
We are very happy to accept unit test contributions for any feature areas that are more error-prone than
@@ -118,15 +118,15 @@ on this check so that our project will always have good generated documentation.
118
118
119
119
- ** Create your pull request**
120
120
121
- Use the [ typical process] ( https://help.github.com/articles/using-pull-requests/ ) to send a pull request
121
+ Use the [ typical process] ( https://help.github.com/articles/using-pull-requests/ ) to send a pull request
122
122
from your fork of the project. In your pull request message, please give a high-level summary of the
123
123
changes that you have made so that reviewers understand the intent of the changes. You should receive
124
124
initial comments within a day or two, but please feel free to ping if things are taking longer than
125
125
expected.
126
126
127
127
- ** The build and unit tests must run green**
128
128
129
- When you submit your pull request, our automated build system on AppVeyor will attempt to run a
129
+ When you submit your pull request, our automated build system on Azure DevOps will attempt to run a
130
130
Release build of your changes and then run all unit tests against the build. If you notice that
131
131
any of your unit tests have failed, please fix them by creating a new commit and then pushing it
132
132
to your branch. If you see that some unrelated test has failed, try re-running the build for your
@@ -137,15 +137,15 @@ on this check so that our project will always have good generated documentation.
137
137
138
138
If the reviewers ask you to make changes, make them as a new commit to your branch and push them so
139
139
that they are made available for a final review pass. Do not rebase the fixes just yet so that the
140
- commit hash changes don't upset GitHub's pull request UI.
141
-
140
+ commit hash changes don't upset GitHub's pull request UI.
141
+
142
142
- ** If necessary, do a final rebase**
143
143
144
144
Once your final changes have been accepted, we may ask you to do a final rebase to have your commits
145
145
so that they follow our commit guidelines. If specific guidance is given, please follow it when
146
- rebasing your commits. Once you do your final push and we see the AppVeyor build pass, we will
146
+ rebasing your commits. Once you do your final push and we see the Azure DevOps build pass, we will
147
147
merge your changes!
148
-
148
+
149
149
### Security Reporting
150
150
151
151
If you believe that there is a security vulnerability in the PowerShell extension for VSCode,
0 commit comments