From 6319d52fe4625ed1b8e1a14a220d39d1faafd937 Mon Sep 17 00:00:00 2001 From: David Rheinsberg Date: Tue, 31 Mar 2020 11:44:02 +0200 Subject: [PATCH] docs: import changelog as NEWS.md Import a new `NEWS.md` file with the changelog for each release. This is targetted at distributors, so it should contain information on new features, modified features, and anything important to packagers. This is not a replacement for the git-changelog, but rather a human-readable instruction to packagers what needs to be changed when using the new release. Additionally, copy `make release` from *osbuild* to help in creating new release entries in NEWS.md. --- Makefile | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ NEWS.md | 47 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 NEWS.md diff --git a/Makefile b/Makefile index f64eff87c..27495e59c 100644 --- a/Makefile +++ b/Makefile @@ -30,12 +30,18 @@ RST2MAN ?= rst2man # evaluated once. This, however, means they are always executed regardless of # which target is run. # +# VERSION: +# This evaluates the `Version` field of the specfile. Therefore, it will +# be set to the latest version number of this repository without any +# prefix (just a plain number). +# # COMMIT: # This evaluates to the latest git commit sha. This will not work if # the source is not a git checkout. Hence, this variable is not # pre-fetched but evaluated at time of use. # +VERSION := $(shell (cd "$(SRCDIR)" && grep "^Version:" osbuild-composer.spec | sed 's/.*\([[:digit:]]\+\).*/\1/')) COMMIT = $(shell (cd "$(SRCDIR)" && git rev-parse HEAD)) # @@ -206,3 +212,66 @@ old-rpm: $(OLD_RPM_SPECFILE) $(RPM_TARBALL) rpmbuild -bb \ --define "_topdir $(CURDIR)/rpmbuild" \ $(OLD_RPM_SPECFILE) + +# +# Releasing +# + +NEXT_VERSION := $(shell expr "$(VERSION)" + 1) + +.PHONY: release +release: + @echo + @echo "Checklist for release of osbuild-composer-$(NEXT_VERSION):" + @echo + @echo " * Create news entry in NEWS.md with a short description of" + @echo " any changes since the last release, which are relevant to" + @echo " users, packagers, distributors, or dependent projects." + @echo + @echo " Use the following template, break lines at 80ch:" + @echo + @echo "--------------------------------------------------------------------------------" + @echo "## CHANGES WITH $(NEXT_VERSION):" + @echo + @echo " * ..." + @echo + @echo " * ..." + @echo + @echo -n " Contributions from: " + # We omit the contributor list if `git log` fails. If you hit this, + # consider fetching missing tags via `git fetch --tags`, or just copy + # this command and remove the stderr-redirect. + @echo `( git log --format='%an, ' v$(VERSION)..HEAD 2>/dev/null | sort -u | tr -d '\n' | sed 's/, $$//' ) || echo` + @echo + @echo " - Location, YYYY-MM-DD" + @echo "--------------------------------------------------------------------------------" + @echo + @echo " To get a list of changes since the last release, you may use:" + @echo + @echo " git log v$(VERSION)..HEAD" + @echo + @echo " * Bump the project version. The canonical location so far is" + @echo " 'osbuild-composer.spec'." + @echo + @echo " * Make sure the spec-file is updated for the new release and" + @echo " correctly supports all new features. This should already be" + @echo " done by previous commits that introduced the changes, but" + @echo " a sanity check does not hurt." + @echo + @echo " * Commit the version bump, specfile changes and NEWS.md in any" + @echo " order you want." + @echo + @echo " * Tag the release via:" + @echo + @echo " git tag -s -m 'osbuild-composer $(NEXT_VERSION)' v$(NEXT_VERSION) HEAD" + @echo + @echo " * Push master as well as the tag:" + @echo + @echo " git push origin master" + @echo " git push origin v$(NEXT_VERSION)" + @echo + @echo " * Create a release on github. Use 'NEWS.md' verbatim from the" + @echo " top until the end of the section for this release as release" + @echo " notes. Use 'v$(NEXT_VERSION)' as release name and as tag for" + @echo " the release." + @echo diff --git a/NEWS.md b/NEWS.md new file mode 100644 index 000000000..d280e037f --- /dev/null +++ b/NEWS.md @@ -0,0 +1,47 @@ +# OSBuild Composer - Operating System Image Composition Services + +## CHANGES WITH 8: + + * All generated pipelines now use the `org.osbuild.rpm` stage of + *osbuild*, rather than `org.osbuild.dnf`. This improves on splitting + resource acquisition from image building and should make image + composition more reliable and faster. + + * The `STATE_DIRECTORY` environment variable now allows changing the + state directory path of `osbuild-composer`. This is to support older + systemd versions that do not pass in `StateDirectory=` to the service + executable. + + * Minor fixes and improvements all over the place. + + Contributions from: Alexander Todorov, Brian C. Lane, Jacob Kozol, Jakub + Rusz, Lars Karlitski, Major Hayden, Martin + Sehnoutka, Ondřej Budai, Tom Gundersen + + - Berlin, 2020-03-18 + +## CHANGES WITH 7: + + * Support for `RHEL 8.1` as image type is now available. + + * Semantic versioning of blueprints in the lorax API is now enforced. + This was always the case for the original lorax API, and *Composer* + now follows this as well. + + * Lots of internal improvements, including many automatic tests, + improved error handling, better cache directory management, as well + as preparations to move over from `org.osbuild.dnf` to + `org.osbuild.rpm` in all build pipelines. + + Contributions from: Alexander Todorov, Brian C. Lane, Jacob Kozol, Lars + Karlitski, Major Hayden, Ondřej Budai, Tom Gundersen + + - Berlin, 2020-03-05 + +## CHANGES BEFORE 7: + + * Initial implementation of 'osbuild-composer'. + + Contributions from: Alexander Todorov, Brian C. Lane, Christian Kellner, + Jacob Kozol, Jakub Rusz, Lars Karlitski, Martin + Sehnoutka, Ondřej Budai, Tom Gundersen