Skip to content

Commit 92b5d7f

Browse files
authored
Merge pull request #90 from tig/v1_0_6
Prepping for Release v1.0.6
2 parents 093b2f5 + bd3b39c commit 92b5d7f

File tree

5 files changed

+126
-66
lines changed

5 files changed

+126
-66
lines changed

NStack/NStack.csproj

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -26,34 +26,7 @@
2626

2727
It starts with a new string type that is focused on Unicode code-points as opposed to the historical chars and UTF-16 encoding and introduces a utf8 string that supports slicing</Description>
2828
<PackageReleaseNotes>
29-
Version 1.0.5
30-
* Fixes #83. Ustring ConsoleWidth must return the exactly character size or zero and not Rune.ColumnWidth
31-
32-
Version 1.0.3
33-
* Fixes #79. Needed to add unit test for equal and not equal operators.
34-
35-
Version 1.0.1 - Moderinized API doc generation and now using gitflow
36-
* Fixes #59. Automatically generate API docs via github action
37-
* Fixes #61. ustring.IsNullOrEmpty doesn't work the same way as the string.IsNullOrEmpty method.
38-
39-
Previous Versions:
40-
0.17: Fork by @tig modernize build/deploy and help publishing newer versions. No functional changes.
41-
0.16: Fixes issue #51 (chess symbols);
42-
0.15: Fixes to MaxRune; ColumnWidth differentiates between non-printable and nul characters; Rune has a constructor from two surrogate pairs; contributions by @BDisp;
43-
0.14: Upgrade the NetStandard dependencies;
44-
0.13: Fixes ustring.Map() and Lower(); Extends Rune.IsValid to match Go; add Rune.ExpectedSizeFromFirstByte() plus a bug fix;
45-
stack
46-
0.12: Rebuild with an older Roslyn, to prevent regressions on Xamarin.
47-
0.10: Merged some changes from upstream.
48-
49-
0.9:
50-
Added ustring.ColumnWidth to return number of columns that a ustring takes in a console.
51-
52-
0.8:
53-
* Renamed some methods to match the equivalent methods in Char.
54-
* Introduced Substring (int start)
55-
* Introduced difference between this [int start, int end] and this [int start, object end] the latter used to mean "until the end", replacing '0' as the previous value for "until the end".
56-
* Introduced new method in Rune to measure the width in columns for console applications.
29+
See https://github.com/gui-cs/NStack/releases
5730
</PackageReleaseNotes>
5831

5932
<!-- Version numbers are automatically updated by gitversion when a release is released -->

NStack/README.md

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
# Build & Deploy
2+
3+
## Regenerating Tables when the Unicode standard is updated
4+
5+
To regenerate the Tables.cs file from the reference unicode files, run `Makefile`
6+
with the command `make tables`, which will create the updated tables.
7+
8+
There is some work to be done to dump the tables as a binary blob,
9+
without going through the various data structures that we have now, it would
10+
avoid all these constructors triggered on the static class.
11+
12+
## Version Numbers
13+
14+
Version info for NStack is managed by [gitversion](https://gitversion.net).
15+
16+
Install `gitversion`:
17+
18+
```powershell
19+
dotnet tool install --global GitVersion.Tool
20+
dotnet-gitversion
21+
```
22+
23+
The project version (the nuget package and in `NStack.dll`) is determined from the latest `git tag`.
24+
25+
The format of version numbers is `vmajor.minor.patch.build.height` and follows the [Semantic Versioning](https://semver.org/) rules.
26+
27+
To define a new version (e.g. with a higher `major`, `minor`, `patch`, or `build` value) tag a commit using `git tag`:
28+
29+
```powershell
30+
git tag v1.3.4-beta.5 -a -m "Release v1.3.4 Beta 5"
31+
dotnet-gitversion /updateprojectfiles
32+
dotnet build -c Release
33+
```
34+
35+
**DO NOT COMMIT AFTER USING `/updateprojectfiles`!**
36+
37+
Doing so will update the `.csproj` files in your branch with version info, which we do not want.
38+
39+
## Deploying a new version of the NStack Nuget Library
40+
41+
To release a new version (e.g. with a higher `major`, `minor`, or `patch` value) tag a commit using `git tag` and then
42+
push that tag directly to the `main` branch on `github.com/gui-cs/NStack` (`upstream`).
43+
44+
The `tag` must be of the form `v<major>.<minor>.<patch>`, e.g. `v2.3.4`.
45+
46+
`patch` can indicate pre-release or not (e.g. `pre`, `beta`, `rc`, etc...).
47+
48+
### 1) Verify the `develop` branch is ready for release
49+
50+
* Ensure everything is committed and pushed to the `develop` branch
51+
* Ensure your local `develop` branch is up-to-date with `upstream/develop`
52+
53+
### 2) Create a pull request for the release in the `develop` branch
54+
55+
The PR title should be of the form "Release v2.3.4"
56+
57+
```powershell
58+
git checkout develop
59+
git pull upstream develop
60+
git checkout -b v_2_3_4
61+
git merge develop
62+
git add .
63+
git commit -m "Release v2.3.4"
64+
git push
65+
```
66+
67+
Go to the link printed by `git push` and fill out the Pull Request.
68+
69+
### 3) On github.com, verify the build action worked on your fork, then merge the PR
70+
71+
### 4) Pull the merged `develop` from `upstream`
72+
73+
```powershell
74+
git checkout develop
75+
git pull upstream develop
76+
```
77+
78+
### 5) Merge `develop` into `main`
79+
80+
```powershell
81+
git checkout main
82+
git pull upstream main
83+
git merge develop
84+
```
85+
86+
Fix any merge errors.
87+
88+
### 6) Create a new annotated tag for the release on `main`
89+
90+
```powershell
91+
git tag v2.3.4 -a -m "Release v2.3.4"
92+
```
93+
94+
### 7) Push the new tag to `main` on `upstream`
95+
96+
```powershell
97+
git push --atomic upstream main v2.3.4
98+
```
99+
100+
*See https://stackoverflow.com/a/3745250/297526*
101+
102+
### 8) Monitor Github Actions to ensure the Nuget publishing worked.
103+
104+
https://github.com/gui-cs/NStack/actions
105+
106+
### 9) Check Nuget to see the new package version (wait a few minutes)
107+
https://www.nuget.org/packages/NStack.Core
108+
109+
### 10) Add a new Release in Github: https://github.com/gui-cs/NStack/releases
110+
111+
Generate release notes with the list of PRs since the last release
112+
113+
Use `gh` to get a list with just titles to make it easy to paste into release notes:
114+
115+
```powershell
116+
gh pr list --limit 500 --search "is:pr is:closed is:merged closed:>=2022-11-1"
117+
```
118+
### 11) Update the `develop` branch with the new version
119+
120+
```powershell
121+
git checkout develop
122+
git pull upstream develop
123+
git merge main
124+
git push upstream develop
125+
```

NStack/demo.md

Lines changed: 0 additions & 6 deletions
This file was deleted.

NStack/unicode/README.md

Lines changed: 0 additions & 6 deletions
This file was deleted.

README.md

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -34,29 +34,3 @@ can exist without them being valid UTF8 strings, but rather a collection of byte
3434
a particular character set and are effectively not possible to map into strings.
3535

3636

37-
# Version Numbers
38-
39-
Version info for NStack is managed by [gitversion](https://gitversion.net).
40-
41-
Install `gitversion`:
42-
43-
```powershell
44-
dotnet tool install --global GitVersion.Tool
45-
dotnet-gitversion
46-
```
47-
48-
The project version (the nuget package and in `NStack.dll`) is determined from the latest `git tag`.
49-
50-
The format of version numbers is `vmajor.minor.patch.build.height` and follows the [Semantic Versioning](https://semver.org/) rules.
51-
52-
To define a new version (e.g. with a higher `major`, `minor`, `patch`, or `build` value) tag a commit using `git tag`:
53-
54-
```powershell
55-
git tag v1.3.4-beta.5 -a -m "Release v1.3.4 Beta 5"
56-
dotnet-gitversion /updateprojectfiles
57-
dotnet build -c Release
58-
```
59-
60-
**DO NOT COMMIT AFTER USING `/updateprojectfiles`!**
61-
62-
Doing so will update the `.csproj` files in your branch with version info, which we do not want.

0 commit comments

Comments
 (0)