Ver Fonte

Release v1.7.0 (#1920)

* updating release instructions

* learning more about git push --atomic

* tweak

* tweak
Tig Kindel há 3 anos atrás
pai
commit
21ec8698ec
1 ficheiros alterados com 36 adições e 31 exclusões
  1. 36 31
      Terminal.Gui/README.md

+ 36 - 31
Terminal.Gui/README.md

@@ -43,31 +43,21 @@ dotnet-gitversion /updateprojectfiles
 dotnet build -c Release
 ```
 
-## Publishing a Release of Terminal.Gui
+**DO NOT COMMIT AFTER USING `/updateprojectfiles`!**
 
-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.
+Doing so will update the `.csproj` files in your branch with version info, which we do not want.
 
-The `tag` must be of the form `v<major>.<minor>.<patch>`, e.g. `v1.2.3`.
+## Publishing a Release of Terminal.Gui
 
-```powershell
-git tag vmajor.minor.patch -a -m "Release vmajor.minor.patch"
-git push upstream vmajor.minor.patch
-```      
+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`).
 
-`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
-```
+The `tag` must be of the form `v<major>.<minor>.<patch>`, e.g. `v2.3.4`.
 
-## To launch version 2.3.4 as a Release nuget package do this:
+`patch` can indicate pre-release or not (e.g. `pre`, `beta`, `rc`, etc...). 
 
-1) Generate release notes with the list of PRs since the last release
+### 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