mirror of
https://github.com/brl/mutter.git
synced 2024-11-30 03:50:47 -05:00
8c7298b0c1
The check-news option in configure.ac conflicts with the idea of using a buildbot to do a distcheck. Since we're doing some validation on the state of the build during the release-check phase we should add the NEWS file check there. http://bugzilla.clutter-project.org/show_bug.cgi?id=2468
113 lines
3.9 KiB
Makefile
113 lines
3.9 KiB
Makefile
# To make real stable releases or devel snapshots, use either:
|
|
# make release-check
|
|
# or make release-publish
|
|
|
|
TAR_OPTIONS = --owner=0 --group=0
|
|
|
|
RELEASE_UPLOAD_HOST = clutter-project.org
|
|
RELEASE_UPLOAD_USER = clutter
|
|
RELEASE_UPLOAD_DIR = $(RELEASE_UPLOAD_USER)@$(RELEASE_UPLOAD_HOST):~$(RELEASE_UPLOAD_USER)/upload-source
|
|
|
|
RELEASE_URL_BASE = http://source.clutter-project.org/sources/clutter
|
|
RELEASE_URL = $(RELEASE_URL_BASE)/$(CLUTTER_MAJOR_VERSION).$(CLUTTER_MINOR_VERSION)
|
|
|
|
RELEASE_ANNOUNCE_LIST = clutter-announce@clutter-project.org (Cc: gnome-announce-list@gnome.org)
|
|
|
|
tar_file = $(distdir).tar.bz2
|
|
sha256_file = $(distdir).sha256sum
|
|
|
|
$(sha256_file): $(tar_file)
|
|
$(AM_V_GEN)sha256sum $^ > $@
|
|
|
|
release-tag:
|
|
@if test "x$(CLUTTER_RELEASE_STATUS)" = "xgit"; then \
|
|
echo "Cannot tag a Git version; please, update the Clutter version" >&2; \
|
|
else \
|
|
if test -d "$(top_srcdir)/.git"; then \
|
|
echo "Tagging release $(CLUTTER_VERSION)..." ; \
|
|
$(top_srcdir)/build/missing --run git tag \
|
|
-s \
|
|
-m "Clutter $(CLUTTER_VERSION) ($(CLUTTER_RELEASE_STATUS))" \
|
|
$(CLUTTER_VERSION) ; \
|
|
else \
|
|
echo A git checkout is required to tag a release >&2; \
|
|
fi \
|
|
fi
|
|
|
|
release-check: release-verify-even-micro release-verify-sane-changelogs release-verify-news
|
|
TAR_OPTIONS="$(TAR_OPTIONS)" $(MAKE) $(AM_MAKEFLAGS) distcheck
|
|
|
|
release-verify-news:
|
|
@echo -n "Checking that the NEWS file has been updated..."
|
|
@if ! grep -q "$(CLUTTER_VERSION)" $(top_srcdir)/NEWS; then \
|
|
(echo "Ouch." && \
|
|
echo "The version in the NEWS file does not match $(CLUTTER_VERSION)." && \
|
|
echo "This probably means you haven't updated the NEWS file." && \
|
|
false); else :; fi
|
|
@echo "Good."
|
|
|
|
release-verify-sane-changelogs: changelogs
|
|
@echo -n "Checking that the ChangeLog files are sane..."
|
|
@if grep -q "is required to generate" $(CHANGELOGS); then \
|
|
(echo "Ouch." && \
|
|
echo "Some of the ChangeLogs are not generated correctly." && \
|
|
echo "Remove ChangeLog* and make changelogs" && false); else :; fi
|
|
@echo "Good."
|
|
|
|
release-verify-even-micro:
|
|
@echo -n "Checking that $(VERSION) has an even micro component..."
|
|
@test "$(CLUTTER_MICRO_VERSION)" = "`echo $(CLUTTER_MICRO_VERSION)/2*2 | bc`" \
|
|
|| (echo "Ouch." && \
|
|
echo "The version micro component '$(CLUTTER_MICRO_VERSION)' is not an even number." && \
|
|
echo "The version in configure.ac must be incremented before a new release." && \
|
|
false)
|
|
@echo "Good."
|
|
|
|
release-upload: $(sha256_file)
|
|
@scp $(tar_file) $(RELEASE_UPLOAD_DIR)
|
|
@mv -f $(sha256_file) $(top_builddir)/build/$(sha256_file)
|
|
|
|
release-message:
|
|
@echo "Release URL: $(RELEASE_URL)/$(tar_file)"
|
|
@echo "Release checksum: $(RELEASE_URL)/$(sha256_file)"
|
|
@echo "Send an email to: $(RELEASE_ANNOUNCE_LIST)"
|
|
@echo " Subject: Clutter $(CLUTTER_VERSION) ($(CLUTTER_RELEASE_STATUS))"
|
|
@echo "Contents:"
|
|
@echo "--- CUT HERE ---"
|
|
@echo "A new Clutter $(CLUTTER_RELEASE_STATUS) is now available at:"
|
|
@echo ""
|
|
@echo " $(RELEASE_URL)/$(tar_file)"
|
|
@echo ""
|
|
@echo "SHA256 Checksum:"
|
|
@echo ""
|
|
@cat $(top_builddir)/build/$(sha256_file)
|
|
@echo ""
|
|
@echo "Additionally, a git clone of the source tree:"
|
|
@echo ""
|
|
@echo " git clone git://git.clutter-project.org/clutter"
|
|
@echo ""
|
|
@echo "will include a signed $(CLUTTER_VERSION) tag which points to a commit named:"
|
|
@echo " `git cat-file tag $(CLUTTER_VERSION) | grep ^object | sed -e 's,object ,,'`"
|
|
@echo ""
|
|
@echo "which can be verified with:"
|
|
@echo " git verify-tag $(CLUTTER_VERSION)"
|
|
@echo ""
|
|
@echo "and can be checked out with a command such as:"
|
|
@echo " git checkout -b build $(CLUTTER_VERSION)"
|
|
@echo ""
|
|
@echo "--- CUT HERE ---"
|
|
|
|
release-publish: release-check
|
|
$(MAKE) $(AM_MAKEFLAGS) release-tag
|
|
$(MAKE) $(AM_MAKEFLAGS) release-upload
|
|
$(MAKE) $(AM_MAKEFLAGS) release-message
|
|
|
|
.PHONY: \
|
|
release-check \
|
|
release-message \
|
|
release-publish \
|
|
release-tag \
|
|
release-upload \
|
|
release-verify-even-micro \
|
|
release-verify-sane-changelogs
|