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: docs/input/docs/advanced.md
+86-42Lines changed: 86 additions & 42 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,62 +3,106 @@ Order: 20
3
3
Title: Advanced Workflow
4
4
---
5
5
6
-
# Advanced Workflow
7
-
8
-
In order to best understand the use case for GitReleaseManager let's take a look at an example workflow currently in use by the Chocolatey GUI project.
6
+
In order to best understand the use case for GitReleaseManager let's take a look
7
+
at an example workflow currently in use by the Chocolatey GUI project.
9
8
10
9
:::{.alert .alert-info}
11
-
Chocolatey GUI uses a number of concepts, for example, GitFlow, psake build script engine, AppVeyor Continuous Integration, as well as using GitReleaseManager. In order to understand the usage of GitReleaseManager for this project, you sort of have to understand the entire process. As a result, this walk-through steps you through the entire end to end process, which as a result, means it is quite lengthy.
10
+
Chocolatey GUI uses a number of concepts, for example, GitFlow, psake build
11
+
script engine, AppVeyor Continuous Integration, as well as using
12
+
GitReleaseManager. In order to understand the usage of GitReleaseManager for
13
+
this project, you sort of have to understand the entire process. As a result,
14
+
this walk-through steps you through the entire end to end process, which as a
15
+
result, means it is quite lengthy.
12
16
:::
13
17
14
-
# Chocolatey GUI
15
-
[Chocolatey GUI](https://github.com/chocolatey/ChocolateyGUI) is an open source project, hosted on GitHub that makes use of GitReleaseManager to create and export it's release notes. Before we can get into how GitReleaseManager is used, we need to take a look at how Chocolatey GUI is setup.
16
-
17
-
## GitHub Setup
18
-
* All Issues are tracked using the[ GitHub Issues List](https://github.com/chocolatey/ChocolateyGUI/issues)
19
-
* Each Issue is assigned to a [project milestone](https://github.com/chocolatey/ChocolateyGUI/milestones)
20
-
* Each Issue is appropriately tagged using one of the [pre-defined labels](https://github.com/chocolatey/ChocolateyGUI/labels)
18
+
## Chocolatey GUI
21
19
22
-
## GitFlow
23
-
* Chocolatey GUI uses the [GitFlow Branching Model](http://nvie.com/posts/a-successful-git-branching-model/)
24
-
*[GitVersion](https://github.com/ParticularLabs/GitVersion) is used to determine the current version number, based on the current state of the repository, i.e. what branch is being worked on, and what tags have been assigned, and how many commits have been made to the repository
25
-
26
-
## Build Artifacts
27
-
Every build of Chocolatey GUI generates a number of Build Artifacts, these include:
28
-
* An MSI package for installing Chocolatey GUI
29
-
* A Chocolatey package to ease the installation of Chocolatey GUI
20
+
[Chocolatey GUI](https://github.com/chocolatey/ChocolateyGUI) is an open source
21
+
project, hosted on GitHub that makes use of GitReleaseManager to create and
22
+
export it's release notes. Before we can get into how GitReleaseManager is
23
+
used, we need to take a look at how Chocolatey GUI is setup.
30
24
31
-
##Continuous Integration
25
+
### GitHub Setup
32
26
33
-
* Chocolatey GUI uses [AppVeyor](http://www.appveyor.com/) as it's Continuous Integration Server.
34
-
* Any time a **Pull Request** is created, an AppVeyor build is triggered, but no deployment of the build artifacts takes place
35
-
* Any time a commit is made into the **develop **branch, an AppVeyor build is triggered, and the build artifacts are deployed to the [MyGet Develop Feed](https://www.myget.org/feed/Packages/ghrm_develop)
36
-
* Any time a commit is made into the **master **branch, an AppVeyor build is triggered, and the build artifacts are deployed to the [MyGet Master Feed](https://www.myget.org/feed/Packages/ghrm_master)
37
-
* Any time a **tag **is applied to the repository, an AppVeyor build is triggered, and the build artifacts are deployed to [Chocolatey.org](https://chocolatey.org/) for public consumption.
27
+
* All Issues are tracked using the [GitHub Issues List](https://github.com/chocolatey/ChocolateyGUI/issues)
28
+
* Each Issue is assigned to a [project milestone](https://github.com/chocolatey/ChocolateyGUI/milestones)
29
+
* Each Issue is appropriately tagged using one of the [pre-defined labels](https://github.com/chocolatey/ChocolateyGUI/labels)
38
30
39
-
##Ok, so where does GitReleaseManager come into play?
31
+
### GitFlow
40
32
41
-
The role of GitReleaseManager really comes into play when moving between a **release** or **hotfix** branch and the **master **branch.
33
+
* Chocolatey GUI uses the [GitFlow Branching Model](http://nvie.com/posts/a-successful-git-branching-model/)
34
+
*[GitVersion](https://github.com/ParticularLabs/GitVersion) is used to
35
+
determine the current version number, based on the current state of the
36
+
repository, i.e. what branch is being worked on, and what tags have been
37
+
assigned, and how many commits have been made to the repository
42
38
43
-
Let's say you have done a bunch of work on the develop branch, you want to move all of that work into the master branch, via a release branch. When you do this, you are effectively saying that the milestone that you were working on is almost ready for release. It is at this point that you should really know, via the issues list, everything that is being included in the release, and now would seem like a great time to create some release notes. And this is exactly what the build process for Chocolatey GUI does. Let's break this down further...
39
+
### Build Artifacts
44
40
45
-
* A **release **branch is created from **develop **branch
46
-
* The release branch is merged into master branch, triggering a build (with deployment to MyGet Master Feed).
47
-
* During this build, GitReleaseManager is executed, using the **create** command, and the version number which was provided by GitVersion, to create a set of release notes for this milestone - [source](https://github.com/chocolatey/ChocolateyGUI/blob/09b78495ebc9d334fedf351b021fd7e215c5cf87/BuildScripts/default.ps1#L687).
48
-
* This set of release notes is created in draft format, ready for review, in the GitHub UI.
49
-
* The build artifacts which have been deployed to MyGet Master Feed are tested
50
-
* The release notes are reviewed, and ensured to be correct
51
-
* Assuming that everything is verified to be correct, the draft release is then published through the GitHub UI, which creates a tag in the repository, triggering another AppVeyor build, this time with deployment to Chocolatey.org
52
-
* During this build, GitReleaseManager is executed using the **export** command, so that all release notes can be bundled into the application - [source](https://github.com/chocolatey/ChocolateyGUI/blob/09b78495ebc9d334fedf351b021fd7e215c5cf87/BuildScripts/default.ps1#L707)
53
-
* In addition, GitReleaseManager is executed using the **addasset** command to add the build artifacts to the GitHub release - [source](https://github.com/chocolatey/ChocolateyGUI/blob/09b78495ebc9d334fedf351b021fd7e215c5cf87/BuildScripts/default.ps1#L731)
54
-
* And finally, GitReleaseManager is executed using the **close** command to close the milestone associated with the release that has just been published - [source](https://github.com/chocolatey/ChocolateyGUI/blob/09b78495ebc9d334fedf351b021fd7e215c5cf87/BuildScripts/default.ps1#L753)
55
-
56
-
The end result of this process can be seen [here](https://github.com/chocolatey/ChocolateyGUI/releases/tag/0.12.0). This release included 218 commits, and 75 issues. Personally, I simply wouldn't have created such a comprehensive set of release notes manually. Instead, I would have written something like...
41
+
Every build of Chocolatey GUI generates a number of Build Artifacts, these include:
57
42
58
-
```
43
+
* An MSI package for installing Chocolatey GUI
44
+
* A Chocolatey package to ease the installation of Chocolatey GUI
45
+
46
+
### Continuous Integration
47
+
48
+
* Chocolatey GUI uses [AppVeyor](http://www.appveyor.com/) as it's Continuous Integration Server.
49
+
* Any time a **Pull Request** is created, an AppVeyor build is triggered, but no
50
+
deployment of the build artifacts takes place
51
+
* Any time a commit is made into the **develop **branch, an AppVeyor build is
52
+
triggered, and the build artifacts are deployed to the
* Any time a **tag **is applied to the repository, an AppVeyor build is
58
+
triggered, and the build artifacts are deployed to
59
+
[Chocolatey.org](https://chocolatey.org/) for public consumption.
60
+
61
+
### Ok, so where does GitReleaseManager come into play?
62
+
63
+
The role of GitReleaseManager really comes into play when moving between a
64
+
**release** or **hotfix** branch and the **master **branch.
65
+
66
+
Let's say you have done a bunch of work on the develop branch, you want to move
67
+
all of that work into the master branch, via a release branch. When you do
68
+
this, you are effectively saying that the milestone that you were working on is
69
+
almost ready for release. It is at this point that you should really know, via
70
+
the issues list, everything that is being included in the release, and now would
71
+
seem like a great time to create some release notes. And this is exactly what
72
+
the build process for Chocolatey GUI does. Let's break this down further...
73
+
74
+
* A **release **branch is created from **develop **branch
75
+
* The release branch is merged into master branch, triggering a build (with
76
+
deployment to MyGet Master Feed).
77
+
* During this build, GitReleaseManager is executed, using the **create**
78
+
command, and the version number which was provided by GitVersion, to create a
79
+
set of release notes for this milestone - [source](https://github.com/chocolatey/ChocolateyGUI/blob/09b78495ebc9d334fedf351b021fd7e215c5cf87/BuildScripts/default.ps1#L687).
80
+
* This set of release notes is created in draft format, ready for review, in the
81
+
GitHub UI.
82
+
* The build artifacts which have been deployed to MyGet Master Feed are tested
83
+
* The release notes are reviewed, and ensured to be correct
84
+
* Assuming that everything is verified to be correct, the draft release is then
85
+
published through the GitHub UI, which creates a tag in the repository,
86
+
triggering another AppVeyor build, this time with deployment to Chocolatey.org
87
+
* During this build, GitReleaseManager is executed using the **export** command,
88
+
so that all release notes can be bundled into the application - [source](https://github.com/chocolatey/ChocolateyGUI/blob/09b78495ebc9d334fedf351b021fd7e215c5cf87/BuildScripts/default.ps1#L707)
89
+
* In addition, GitReleaseManager is executed using the **addasset** command to
90
+
add the build artifacts to the GitHub release - [source](https://github.com/chocolatey/ChocolateyGUI/blob/09b78495ebc9d334fedf351b021fd7e215c5cf87/BuildScripts/default.ps1#L731)
91
+
* And finally, GitReleaseManager is executed using the **close** command to
92
+
close the milestone associated with the release that has just been published - [source](https://github.com/chocolatey/ChocolateyGUI/blob/09b78495ebc9d334fedf351b021fd7e215c5cf87/BuildScripts/default.ps1#L753)
This release included 218 commits, and 75 issues. Personally, I simply wouldn't
97
+
have created such a comprehensive set of release notes manually. Instead, I
98
+
would have written something like...
99
+
100
+
```text
59
101
#0.12.0
60
102
61
103
This release included lots of bug fixes, and tonnes of new features. Enjoy!
62
104
```
63
105
64
-
By leveraging GitVersion, and GitReleaseManager, and a small amount of process (which you are likely already doing), I hope you will agree that you can very easily create a comprehensive set of release notes for your application.
106
+
By leveraging GitVersion, and GitReleaseManager, and a small amount of process
107
+
(which you are likely already doing), I hope you will agree that you can very
108
+
easily create a comprehensive set of release notes for your application.
Copy file name to clipboardExpand all lines: docs/input/docs/commands/close.md
+13-8Lines changed: 13 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,23 +3,28 @@ Order: 40
3
3
Title: Close
4
4
---
5
5
6
-
# Close
7
-
8
-
Out of the box, publishing a release on GitHub does not close the milestone associated with the release. This command, when executed, closes the specified milestone.
6
+
Out of the box, publishing a release on GitHub does not close the milestone
7
+
associated with the release. This command, when executed, closes the specified
8
+
milestone.
9
9
10
10
## **Required Parameters**
11
11
12
-
*`-u, --username`: The username to access GitHub with. This can't be used when using the token parameter.
13
-
*`-p, --password`: The password to access GitHub with. This can't be used when using the token parameter.
14
-
*`--token`: The access token to access GitHub with. This can't be used when using the username and password parameters.
12
+
*`-u, --username`: The username to access GitHub with. This can't be used when
13
+
using the token parameter.
14
+
*`-p, --password`: The password to access GitHub with. This can't be used when
15
+
using the token parameter.
16
+
*`--token`: The access token to access GitHub with. This can't be used when
17
+
using the username and password parameters.
15
18
*`-o, --owner`: The owner of the repository.
16
19
*`-r, --repository`: The name of the repository.
17
20
*`-m, --milestone`: The milestone to use.
18
21
19
22
## **Optional Parameters**
20
23
21
-
*`-d, --targetDirectory`: The directory on which GitReleaseManager should be executed. Defaults to current directory.
22
-
*`-l, --logFilePath`: Path to where log file should be created. Defaults to logging to console.
24
+
*`-d, --targetDirectory`: The directory on which GitReleaseManager should be
25
+
executed. Defaults to current directory.
26
+
*`-l, --logFilePath`: Path to where log file should be created. Defaults to
0 commit comments