Skip to content

Commit aeb6d94

Browse files
committed
changelog: get release notes from CHANGELOG.md
- move notes from earlier `deployment.yml` into `CHANGELOG.md` - this is actual Markdown that will highlight so in the editor and when reading on GitHub - also fix various spelling, grammar, and formatting issues from `deployment.yml`'s release notes - add a `RELEASE_NOTES` variable in the `Makefile` that uses `awk` to parse out the latest release's notes from `CHANGELOG.md` - add a `make test_release_notes` command for double-checking - update release docs with the `CHANGELOG.md` changes
1 parent 6d289d3 commit aeb6d94

File tree

4 files changed

+121
-8
lines changed

4 files changed

+121
-8
lines changed

Diff for: Changelog.md

+112-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,113 @@
1-
# Change history
1+
# Changelog
22

3-
See the [GitHub Releases](https://github.com/docopt/docopts/releases).
3+
## bug fix v0.6.4-with-no-mangle-double-dash
4+
5+
Tag: `v0.6.4-with-no-mangle-double-dash`
6+
7+
This is a bug fix release.
8+
9+
features changes:
10+
- fix error refusing mangling double dash in global mode [#52]
11+
- still refuse to mangle single dash `[-]` in global mode (not compatible with v0.6.1)
12+
- now can mangle single-dash and double-dash in `-G` mode
13+
- fix output bash empty array #53
14+
15+
internal changes:
16+
- use Go 1.17.1 for compiling
17+
- `language_agnostic_tester.py` re-write for python3
18+
- sort argument key in `Print_bash_args()` `Print_bash_global()`
19+
- sort input keys in `docopts_test.go`
20+
- add PR #52 test to `testcases.docopt`
21+
- completed developer documentation
22+
- #52 ignore `[--]` double-dash option in `Print_bash_global()`
23+
- reformat of Go code with `gofmt`; indent change Space ==> Tab
24+
- add `tests/functional_tests_docopts.bats`
25+
26+
## docopts binary transitional v0.6.3-rc2
27+
28+
Tag: `v0.6.3-rc2`
29+
30+
This is a transitional release.
31+
32+
It supports all the previous command line API plus some extra options.
33+
Fully compatible with previous 0.6.2 python code for Bash.
34+
35+
See: https://github.com/docopt/docopts/tree/v0.6.1%2Bfix
36+
based on master branch
37+
38+
features changes:
39+
- `docopts.sh` function `docopt_get_help_string()` now uses awk to extract only first `Usage:`
40+
41+
internal changes:
42+
- use Go 1.14 for compiling
43+
- more pre-built binaries, removed darwin/386
44+
- fixed #44 `get_docopts.sh` for macOS + functional tests
45+
- removed `bats` git submodule
46+
- use [bats-core 1.2-dev](https://github.com/bats-core/bats-core) as testing framework from travis
47+
- `deploy.sh` removed, now uses its [own repository](https://github.com/opensource-expert/deploy.sh)
48+
- updated Makefile to use `get_ldflags.sh` from `deploy.sh`
49+
- [travis hack](travis/get_bash5_macos.sh) to get faster build on macos with our embedded bash5 binary
50+
51+
## docopts binary transitional v0.6.3-rc1
52+
53+
Tag: `v0.6.3-rc1`
54+
55+
This is a transitional release.
56+
57+
It supports all the previous API plus some extra command line options.
58+
Fully compatible with previous 0.6.2 Python code for Bash.
59+
60+
See: https://github.com/docopt/docopts/tree/v0.6.1%2Bfix
61+
based on master branch
62+
63+
changes:
64+
- more test for macOS
65+
- Bash 3.2 support is more documented and fixed
66+
- use `bats-core` as testing framework
67+
- updated README merged from old README.rst
68+
- now documentation introduce `docopts.sh` See [docs](https://github.com/docopt/docopts/tree/v0.6.3-rc1/docs/)
69+
- added `Makefile`
70+
- added `build_doc.sh` PoC markdown preprocessor
71+
72+
all examples written for docopts:
73+
- shebang conversion `#!/bin/bash` ==> `#!/usr/bin/env bash`
74+
- legacy example completed
75+
- example from README extracted a file, and merged in README via `build_doc.sh`
76+
- `sshdiff` full example coded
77+
- added examples with `--auto -G`
78+
79+
docopts.sh helper:
80+
- is more documented in the code
81+
- has documenation in [docs/README.md](https://github.com/docopt/docopts/tree/v0.6.3-rc1/docs/README.md)
82+
- now supports bash strict mode (`set -euo pipefail`)
83+
- now supports `--auto -G` to auto parse with global vars (doesn't use bash 4 associative array)
84+
`docopts` behavior sould be unchanged:
85+
- add mangled name collision detection
86+
87+
## docopts for Bash first release in golang
88+
89+
Tag: `v0.6.3-alpha1`
90+
91+
This is a transitional release.
92+
93+
It is a complete rewrite of the Python code in Go.
94+
It supports all of the previous API plus some extra command line options.
95+
96+
Fully compatible with previous 0.6.2 python code for Bash.
97+
based on https://github.com/docopt/docopts/tree/packaging-debian
98+
99+
## first release in Go
100+
101+
Tag: `v0.6.2`
102+
103+
This is a transitional release.
104+
105+
Docopt for shell.
106+
It supports all of the previous API.
107+
108+
Fully compatible with previous 0.6.1 Python code for Bash.
109+
See: https://github.com/docopt/docopts/tree/v0.6.1%2Bfix
110+
based on master branch
111+
112+
changes:
113+
- now written in Go, no more Python dependency

Diff for: Makefile

+5-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
PREFIX ?= /usr/local
66
GOVERSION := $$(go version)
7+
RELEASE_NOTES := $$(awk -v RS='\#\# *|\#\# ' 'NR==2 { print }' CHANGELOG.md)
78

89
# keep docopts: as first target for development
910

@@ -35,8 +36,11 @@ README.md: examples/legacy_bash/rock_hello_world.sh examples/legacy_bash/rock_he
3536
clean:
3637
rm -f docopts-* docopts README.tmp dist/*
3738

39+
test_release_notes:
40+
echo "\n## $(RELEASE_NOTES)"
41+
3842
snapshot: install_builddep
3943
GOVERSION=$(GOVERSION) goreleaser build --rm-dist --snapshot -o docopts
4044

4145
release: clean all test snapshot
42-
GOVERSION=$(GOVERSION) goreleaser release
46+
GOVERSION=$(GOVERSION) goreleaser release --release-notes "## $(RELEASE_NOTES)"

Diff for: docs/pre_built_binaries.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ git push origin "$(cat VERSION)"
7070

7171
In `docopts` project folder.
7272

73-
You need to create the release text in `deployment.yml` first.
73+
You need to create the release text in `CHANGELOG.md` first.
7474

7575
Dry-run to create release files and binaries in the `dist/` dir:
7676

Diff for: docs/release.md

+3-4
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,8 @@ git add ./tests/VERSION
1515

1616
Increment the `./VERSION` number
1717

18-
edit `./deployment.yml`
19-
20-
- add the new tag name release matching ./VERSION
18+
edit `CHANGELOG.md`:
19+
- add a new heading at the top of the file with `## <insert heading here>` (only the first `##` will be used)
2120
- the description you want, changes etc.
2221

2322
## 2. rebuild all
@@ -82,7 +81,7 @@ git tag
8281
8382
## 9. build the release
8483
85-
The following will build all binary version from `deployment.yml`
84+
The following will build all binary version from `.goreleaser.yml`
8685
8786
```
8887
make snapshot

0 commit comments

Comments
 (0)