You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+59-45Lines changed: 59 additions & 45 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,10 +2,10 @@
2
2
3
3
We love contributions to get started contributing you might need:
4
4
5
-
*[Get started with git](http://rogerdudler.github.io/git-guide)
5
+
*[Get started with git](https://rogerdudler.github.io/git-guide)
6
6
*[How to create a pull request](https://help.github.com/articles/using-pull-requests)
7
-
*[An issue to work on](https://github.com/GitTools/GitVersion/labels/up-for-grabs) - We are on [Up for grabs](http://up-for-grabs.net/), our up for grabs issues are tagged `up-for-grabs`
8
-
* An understanding of our [architecture](http://gitversion.net/docs/learn/how-it-works#architecture) and how [we write tests](#writing-tests)
7
+
*[An issue to work on](https://github.com/GitTools/GitVersion/labels/up-for-grabs) - We are on [Up for grabs](https://up-for-grabs.net/), our up for grabs issues are tagged `up-for-grabs`
8
+
* An understanding of our [architecture](https://gitversion.net/docs/learn/how-it-works#architecture) and how [we write tests](#writing-tests)
9
9
10
10
Once you know how to create a pull request and have an issue to work on, just post a comment saying you will work on it.
11
11
If you end up not being able to complete the task, please post another comment so others can pick it up.
@@ -23,7 +23,7 @@ Issues are also welcome, [failing tests](#writing-tests) are even more welcome.
23
23
24
24
## How it works
25
25
26
-
See [how it works](http://gitversion.net/docs/learn/how-it-works/) in GitVersion's documentation
26
+
See [how it works](https://gitversion.net/docs/learn/how-it-works) in GitVersion's documentation
27
27
28
28
## Writing Tests
29
29
@@ -39,7 +39,25 @@ Find where your issue would logically sit. Or create a new scenario class if it
39
39
40
40
We are currently using NUnit, so just create a descriptive test method and attribute it with `[Test]`
41
41
42
-
### 3. Use a fixture
42
+
### 3. Create a configuration
43
+
44
+
We use a builder pattern to create a configuration. You can use the `GitFlowConfigurationBuilder` or `GitHubConfigurationBuilder` or `EmptyConfigurationBuilder` to create a configuration builder.
4. Choose GitVersion release, when you press deploy it will create a _non-released_ GitHub release, this _will not_ create a Git tag. This step is so we can validate the release and release notes before pushing the button.
1. Remove the build metadata from the tag and title (the + and everything after it)
100
-
2. Paste the downloaded release notes in, you can clean them up if you want otherwise there may be closed issues which were questions etc.
101
-
3. Tick the pre-release box if it's pre-release
102
-
4. Press Publish
103
-
8. Publishing tags (a git tag) the release commit, this will trigger another appveyor build which only builds tags, this build uses deploy.cake. It downloads the artifacts from that GitHub release, then performs the release
104
-
105
-
## Docker
106
-
107
-
It is a manual release step after the release now, first download the appropriate ZIP and put into a `releaseArtifacts` folder in the GitVersion repository, then run:
We use Cake for our build and deployment process. The way the release process is setup is:
99
+
100
+
1. We build releasable artifacts with GitHub Actions
101
+
2. We create a milestone for the release if it's not already created. Our milestones are named using the semver.
102
+
For example `5.12.0` or `6.0.0-beta.2`
103
+
3. We move all the closed issues and closed pull requests that are going to be included in the release to the milestone.
104
+
4. We check that all the issues and pull requests that are going to be included in the release have a label assigned,
105
+
otherwise it will fail the release.
106
+
5. We create a release in the GitHub UI, and create a tag and name it using the milestone name. For example `5.12.0` or `6.0.0-beta.2`
107
+
6. We specify if the release is a pre-release or latest release in the GitHub UI.
108
+
7. We publish the release.
109
+
8. The GitHub Actions will create a GitHub release and publish the artifacts to NuGet, Chocolatey, Docker, Homebrew
110
+
and other distribution channels.
111
+
9. The issues and pull requests will get updated with message specifying in which release it was included.
112
112
113
113
## Code Style
114
114
115
115
In order to apply the code style defined by by the `.editorconfig` file you can use [`dotnet-format`](https://github.com/dotnet/format).
116
116
117
-
1. Install [`dotnet-format`](https://github.com/dotnet/format) as a global tool:
117
+
Change to the root folder of the GitVersion repository and use the following command to apply the code style:
118
+
119
+
```shell
120
+
dotnet format ./src/ --exclude **/AddFormats/
121
+
```
122
+
123
+
## Documentation
124
+
125
+
The documentation is stored in the repository under the [`docs`](docs) folder.
126
+
Have a look at the [documentation readme file](docs/readme.md) for guidance.
127
+
128
+
In order to check locally how the documentation looks like you can use the following command:
118
129
119
130
```shell
120
-
dotnet tool install -g dotnet-format
131
+
./build.ps1 -Stage docs -Target PreviewDocs
121
132
```
122
133
123
-
2. Change to the root folder of the GitVersion repository and use the following command to apply the code style:
134
+
## Schemas generation
135
+
136
+
If there are changes to the GitVersionVariables or to the GitVersionConfiguration, the following command should be executed to update the schema files:
124
137
125
138
```shell
126
-
dotnet format ./ --folder --exclude **/AddFormats/ --fix-codestyle
0 commit comments