Skip to content

Commit b3ca94e

Browse files
committed
added generate-changelog and initial release documentation
1 parent ff3d153 commit b3ca94e

File tree

3 files changed

+90
-0
lines changed

3 files changed

+90
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
build
2+
releases

contrib/generate-changelog

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
#!/bin/bash -e
2+
3+
fatal() { echo "fatal [$(basename $0)]: $@" 1>&2; exit 1; }
4+
5+
usage() {
6+
cat<<EOF
7+
Syntax: $0
8+
Convenience script to output updated CHANGELOG.md for manual editing
9+
10+
Notes::
11+
12+
- auto-increments major.minor.PATCH from latest git tag (or 0.1.0)
13+
- includes short git log of changes since latest git tag (or all)
14+
- includes diff releases/\$latest_tag/package.list and build/package.list
15+
16+
EOF
17+
exit 1
18+
}
19+
20+
increment_version() {
21+
version=$1
22+
last_char=${version#${version%?}}
23+
echo $version | sed 's/[0-9]$/'"$((last_char+1))"'/'
24+
}
25+
26+
get_log() {
27+
since=$1
28+
[ "$since" ] && between=$since..HEAD
29+
git --no-pager log $between --reverse --pretty=format:'- %s'
30+
}
31+
32+
diff_package_list() {
33+
version=$1
34+
diff releases/$version/package.list build/package.list
35+
}
36+
37+
[[ "$#" = "0" ]] || usage
38+
[ -e build/package.list ] || fatal "build/package.list does not exist"
39+
40+
latest=$(git tag -l | head -1)
41+
gitlog=$(get_log $latest)
42+
[ "$latest" ] && version=$(increment_version $latest)
43+
[ "$latest" ] && package_list_diff=$(diff_package_list $latest)
44+
45+
echo -e "## ${version:-0.1.0}\n"
46+
echo -e "<replace with high level summary>\n"
47+
echo -e "#### New features\n"
48+
echo -e "#### Bugfixes\n"
49+
echo "${gitlog}" | grep fix && echo || true
50+
echo -e "#### Other changes\n"
51+
echo "${gitlog}" | grep -v fix && echo || true
52+
if [ "$package_list_diff" ]; then
53+
echo -e "#### Package updates\n"
54+
echo -e "${package_list_diff}\n"
55+
fi
56+
[ -e CHANGELOG.md ] && cat CHANGELOG.md
57+
58+
exit 0

docs/release.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
## update changelog and create signed tag
2+
3+
```
4+
contrib/generate-changelog > CHANGELOG.tmp
5+
mv CHANGELOG.tmp CHANGELOG.md
6+
$EDITOR CHANGELOG.md # verify version is correct and tweak
7+
VERSION=$(head -1 CHANGELOG.md | awk '{print $2}')
8+
git add CHANGELOG.md
9+
git commit -m "changelog: updated for $VERSION release"
10+
git tag -s -m "$VERSION release" $VERSION
11+
```
12+
13+
## generate release files
14+
15+
```
16+
mkdir releases/$VERSION
17+
cp build/package.list releases/$VERSION/
18+
cp build/rootfs.tar.xz releases/$VERSION/
19+
gpg -u A16EB94D --armor --detach-sig releases/$VERSION/rootfs.tar.xz
20+
ln -sf $VERSION releases/latest
21+
```
22+
23+
## push to github and create new release
24+
25+
- git push github --tags
26+
27+
- create new release
28+
29+
- use CHANGELOG.md as basis for release notes
30+
- upload files in releases/$VERSION
31+

0 commit comments

Comments
 (0)