From 9416e2d78451f45a987c310bf5c061a8d316630a Mon Sep 17 00:00:00 2001 From: Valentin Rothberg Date: Sat, 17 Mar 2018 15:52:54 +0100 Subject: Makefile: add changelog target Maintaining a changelog for each new version or release of Podman helps users to quickly skim for new changes. Add a `make changelog` target to facilitate creating a new log. There are two env variables to control the base and target commit for the new log. The output gets prepended to the changelog.txt file, which is a textfile in following format: - Changelog for $(CHANGELOG_TARGET) (ISO-8601 DATE): * Commit subject * Commit subject... Notice that the list of commit subjects excludes merge commits, and can be manually modified after generation if needed. `CHANGELOG_BASE=v0.3.2 CHANGELOG_TARGET=v0.3.3 make changelog` would generate the following shortened output to the changelog.txt file: Changelog for v0.3.3 (2018-03-17): * Bump to v0.3.3 * Fix build after c/image changes * Update containers/image * Fix E2E tests * Address review comments * Fix E2E tests * Add restart to main podman manpage * Add podman restart to podman bash completions and commands Signed-off-by: Valentin Rothberg --- Makefile | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 58fa0b93c..97238c849 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,8 @@ GO ?= go EPOCH_TEST_COMMIT ?= c08a1e0b11 HEAD ?= HEAD +CHANGELOG_BASE ?= HEAD~ +CHANGELOG_TARGET ?= HEAD PROJECT := github.com/projectatomic/libpod GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null) GIT_BRANCH_CLEAN := $(shell echo $(GIT_BRANCH) | sed -e "s/[^[:alnum:]]/-/g") @@ -24,6 +26,7 @@ PACKAGES ?= $(shell go list -tags "${BUILDTAGS}" ./... | grep -v github.com/proj COMMIT_NO := $(shell git rev-parse HEAD 2> /dev/null || true) GIT_COMMIT := $(if $(shell git status --porcelain --untracked-files=no),"${COMMIT_NO}-dirty","${COMMIT_NO}") BUILD_INFO := $(shell date +%s) +ISODATE := $(shell date --iso-8601) # If GOPATH not specified, use one in the local directory ifeq ($(GOPATH),) @@ -150,6 +153,16 @@ docs: $(MANPAGES) docker-docs: docs (cd docs; ./dckrman.sh *.1) +changelog: + @echo "Creating changelog from $(CHANGELOG_BASE) to $(CHANGELOG_TARGET)" + $(eval TMPFILE := $(shell mktemp)) + $(shell cat changelog.txt > $(TMPFILE)) + $(shell echo "- Changelog for $(CHANGELOG_TARGET) ($(ISODATE)):" > changelog.txt) + $(shell git log --no-merges --format=" * %s" $(CHANGELOG_BASE)..$(CHANGELOG_TARGET) >> changelog.txt) + $(shell echo "" >> changelog.txt) + $(shell cat $(TMPFILE) >> changelog.txt) + $(shell rm $(TMPFILE)) + install: .gopathok install.bin install.man install.cni install.bin: @@ -227,4 +240,5 @@ install.tools: .install.gitvalidation .install.gometalinter .install.md2man lint \ pause \ uninstall \ - shell + shell \ + changelog -- cgit v1.2.3-54-g00ecf