mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2025-12-26 15:57:56 +01:00
Release v1.7.0 (#1920)
* updating release instructions * learning more about git push --atomic * tweak * tweak
This commit is contained in:
@@ -43,31 +43,21 @@ dotnet-gitversion /updateprojectfiles
|
||||
dotnet build -c Release
|
||||
```
|
||||
|
||||
**DO NOT COMMIT AFTER USING `/updateprojectfiles`!**
|
||||
|
||||
Doing so will update the `.csproj` files in your branch with version info, which we do not want.
|
||||
|
||||
## Publishing a Release of Terminal.Gui
|
||||
|
||||
To release a new version (e.g. with a higher `major`, `minor`, or `patch` value) tag a commit using `git tag` and then push that tag directly to the upstream repo.
|
||||
To release a new version (e.g. with a higher `major`, `minor`, or `patch` value) tag a commit using `git tag` and then push that tag directly to the `main` branch on `github.com/gui-cs/Terminal.Gui` (`upstream`).
|
||||
|
||||
The `tag` must be of the form `v<major>.<minor>.<patch>`, e.g. `v1.2.3`.
|
||||
|
||||
```powershell
|
||||
git tag vmajor.minor.patch -a -m "Release vmajor.minor.patch"
|
||||
git push upstream vmajor.minor.patch
|
||||
```
|
||||
The `tag` must be of the form `v<major>.<minor>.<patch>`, e.g. `v2.3.4`.
|
||||
|
||||
`patch` can indicate pre-release or not (e.g. `pre`, `beta`, `rc`, etc...).
|
||||
|
||||
For example, to launch v1.3.4-beta.5 as a Pre-Release nuget package, do the following:
|
||||
|
||||
```powershell
|
||||
git tag v1.3.4-beta.5 -a -m "v1.3.4 Beta 5"
|
||||
git push upstream v1.3.4-beta.5
|
||||
```
|
||||
### 1) Generate release notes with the list of PRs since the last release
|
||||
|
||||
## To launch version 2.3.4 as a Release nuget package do this:
|
||||
|
||||
1) Generate release notes with the list of PRs since the last release
|
||||
|
||||
Use `gh` to get list with just titles to make it easy to paste into release notes:
|
||||
Use `gh` to get a list with just titles to make it easy to paste into release notes:
|
||||
|
||||
```powershell
|
||||
gh pr list --limit 500 --search "is:pr is:closed is:merged closed:>=2021-05-18"
|
||||
@@ -75,57 +65,72 @@ gh pr list --limit 500 --search "is:pr is:closed is:merged closed:>=2021-05-18"
|
||||
|
||||
Use the output to update `./Terminal.Gui/Terminal.Gui.csproj` with latest release notes
|
||||
|
||||
2) Update the API documentation
|
||||
### 2) Update the API documentation
|
||||
|
||||
See `./docfx/README.md`.
|
||||
|
||||
3) Create a PR for the release
|
||||
### 3) Create a PR for the release in the `develop` branch
|
||||
|
||||
The PR title should be "Release v2.3.4"
|
||||
|
||||
```powershell
|
||||
git checkout develop
|
||||
git pull -all
|
||||
git checkout -b v_2_3_4
|
||||
git add .
|
||||
git commit -m "Release v2.3.4"
|
||||
git push
|
||||
```
|
||||
|
||||
4) On github.co, verify the build action worked on your fork, then merge the PR
|
||||
### 4) On github.com, verify the build action worked on your fork, then merge the PR
|
||||
|
||||
5) Pull the merged main
|
||||
### 5) Pull the merged `develop` from `upstream`
|
||||
|
||||
```powershell
|
||||
git pull upstream main
|
||||
git pull upstream `develop`
|
||||
```
|
||||
|
||||
6) Create a new tag for the release
|
||||
### 6) Merge `develop` into `main`
|
||||
|
||||
```powershell
|
||||
git checkout main
|
||||
git merge develop
|
||||
```
|
||||
|
||||
Fix any merge errors.
|
||||
|
||||
### 7) Create a new annotated tag for the release
|
||||
|
||||
```powershell
|
||||
git tag v2.3.4 -a -m "Release v2.3.4"
|
||||
```
|
||||
|
||||
7) Push new tag to `main`
|
||||
### 8) Push the new tag to `main` on `origin`
|
||||
|
||||
```powershell
|
||||
git push upstream v2.3.4
|
||||
git push --atomic upstream main v2.3.4
|
||||
```
|
||||
|
||||
8) Monitor Github actions to ensure it worked.
|
||||
*See https://stackoverflow.com/a/3745250/297526*
|
||||
|
||||
9) Check nuget to see new package (wait a few minutes)
|
||||
### 9) Monitor Github actions to ensure the Nuget publishing worked.
|
||||
|
||||
### 10) Check Nuget to see the new package version (wait a few minutes):
|
||||
https://www.nuget.org/packages/Terminal.Gui
|
||||
|
||||
10) Add a new Release in Github: https://github.com/gui-cs/Terminal.Gui/releases
|
||||
### 11) Add a new Release in Github: https://github.com/gui-cs/Terminal.Gui/releases
|
||||
|
||||
### 12) Tweet about it
|
||||
|
||||
## Nuget
|
||||
|
||||
https://www.nuget.org/packages/Terminal.Gui
|
||||
|
||||
When a new version tag is defined, and merged into main, a nuget package will be generated.
|
||||
When a new version tag is defined and merged into `main`, a Nuget package will be generated by a Github Action.
|
||||
|
||||
If the version is pre-release (includes a hyphen, e.g. `1.3.4-beta.5`) the Nuget package will be tagged as pre-release.
|
||||
|
||||
Miguel can hide defunct/old nuget packages.
|
||||
Miguel & Tig can hide defunct/old Nuget packages.
|
||||
|
||||
## Contributing
|
||||
|
||||
|
||||
Reference in New Issue
Block a user