From c5c072e8fa60d464296039c4b7ecab6e7887b196 Mon Sep 17 00:00:00 2001 From: Mike Gerwitz Date: Tue, 19 May 2015 01:29:37 -0400 Subject: [PATCH] Release notes on website --- .gitignore | 10 ++++++---- Makefile | 12 +++++++++++- download.html | 9 +++++++++ release-notes.html | 9 +++++++++ tools/release-notes | 40 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 75 insertions(+), 5 deletions(-) create mode 100644 release-notes.html create mode 100755 tools/release-notes diff --git a/.gitignore b/.gitignore index b373fc3..a9c89d1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ -node_modules -webroot -tools/compiler.jar -build/ +/node_modules +/webroot +/tools/compiler.jar +/build +/.release-*.html + diff --git a/Makefile b/Makefile index 67d4b1c..a12dc85 100644 --- a/Makefile +++ b/Makefile @@ -34,7 +34,7 @@ output_html := $(addprefix $(outdir)/, $(input_html)) output_images := $(addprefix $(outdir)/, $(input_images)) output_scripts := $(addprefix $(outdir)/, $(input_scripts)) -.PHONY: default clean news publish +.PHONY: default clean news publish FORCE default: $(outdir) $(output_html) $(output_images) \ $(output_scripts) $(outdir)/style.css $(outdir)/fonts @@ -54,6 +54,8 @@ $(outdir)/images/%.png: images/%.png | $(outdir) $(outdir)/fonts: fonts mkdir -p "$@" && cp $ $@ +.release-current.html: FORCE + ./tools/release-notes 1 > $@ + +.release-all.html: FORCE + ./tools/release-notes > $@ + # requires git-weblog from mikegerwitz's git-supp package news: tools/news-fmt < NEWS \ @@ -81,3 +89,5 @@ publish: | default clean: ${RM} -r webroot doc-cp + +FORCE: diff --git a/download.html b/download.html index 9ba81e9..5fa237c 100644 --- a/download.html +++ b/download.html @@ -74,3 +74,12 @@ See Chapter 1 of the manual for more information on downloading and integrating ease.js into your own projects. + +

Release Notes

+Below are the release notes for the current release of GNU +ease.js. Historical release notes are also +available. GPG signatures for each of the releases and their respective +notes can be found in their respective tags in the Git +repository. + + diff --git a/release-notes.html b/release-notes.html new file mode 100644 index 0000000..bb4544d --- /dev/null +++ b/release-notes.html @@ -0,0 +1,9 @@ +

+ All historical release notes are included below in descending order, + beginning with the current release. GPG + signatures for each of the releases and the corresponding notes can be + found in their respective tags in the Git + repository. +

+ + diff --git a/tools/release-notes b/tools/release-notes new file mode 100755 index 0000000..e54dd65 --- /dev/null +++ b/tools/release-notes @@ -0,0 +1,40 @@ +#!/bin/bash + +release-tags() { + local -i limit="$1" + + git tag -l '[0-9]*' \ + | tac \ + | { test $limit -gt 0 \ + && head -n$limit \ + || cat; } +} + +tag-subject() { + local tag="${1?Missing tag}" + + git tag -n1 -l "$tag" \ + | sed 's/ \+/: /' +} + +tag-body() { + local tag="${1?Missing tag}" + + git cat-file tag "$tag" \ + | awk '/^-----BEGIN PGP SIGNATURE-----$/ { exit; } + nl>=2 { print; next; } + /^$/ { nl++; }' \ + | sed 's/&/\&\;/g + s//\>\;/g;' +} + +# optional limit +declare -i limit="$1" + +for t in $( release-tags "$limit" ); do + cat <$( tag-subject "$t" ) +
$( tag-body "$t" )
+EOF +done