mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-25 10:54:52 +01:00
make release: Enforce a clean source tree before release.
Where by clean, we check that no files are known to git to be modified.
This commit is contained in:
parent
8700de6fb7
commit
00263dd1a9
2 changed files with 21 additions and 6 deletions
|
@ -69,7 +69,7 @@ dist: $(TAR_FILE)
|
|||
# We invoke make recursively only to force ordering of our phony
|
||||
# targets in the case of parallel invocation of make (-j).
|
||||
.PHONY: release
|
||||
release: verify-version
|
||||
release: verify-no-dirty-code
|
||||
$(MAKE) test
|
||||
$(MAKE) $(GPG_FILE)
|
||||
$(MAKE) verify-newer
|
||||
|
@ -116,6 +116,21 @@ release-message:
|
|||
@echo ""
|
||||
@echo "For more about notmuch, see http://notmuchmail.org"
|
||||
|
||||
.PHONY: verify-no-dirty-code
|
||||
verify-no-dirty-code: verify-version
|
||||
@printf "Checking that source tree is clean..."
|
||||
ifneq ($(shell git ls-files -m),)
|
||||
@echo "No"
|
||||
@echo "The following files have been modified since the most recent git commit:"
|
||||
@echo ""
|
||||
@git ls-files -m
|
||||
@echo ""
|
||||
@echo "The release will be made from the committed state, but perhaps you meant"
|
||||
@echo "to commit this code first? Please clean this up to make it more clear."
|
||||
@false
|
||||
else
|
||||
@echo "Good"
|
||||
endif
|
||||
|
||||
.PHONY: verify-version
|
||||
verify-version:
|
||||
|
|
10
RELEASING
10
RELEASING
|
@ -37,17 +37,17 @@ repository. From here, there are just a few steps to release:
|
|||
For the X.Y version, we'll generally just increment Y. But for
|
||||
major milestones of usability we're increment X as well.
|
||||
|
||||
* Ensure that the caller passed VERSION=X.Y
|
||||
* Verify that the source tree is clean
|
||||
* Compile the current notmuch code (aborting release if it fails)
|
||||
* Run the notmuch test suite (aborting release if it fails)
|
||||
* Check that the notmuch version consists of only two components
|
||||
* Check that no release exists with the current version
|
||||
* Verify that "make dist" completes successfully
|
||||
* Generate the final tar file
|
||||
* Generate an sha1sum file
|
||||
* Generate a .sha1 sum file for the tar file
|
||||
* Sign the sha1sum using your GPG setup (asks for your GPG password)
|
||||
* Check that no release exists with the current version
|
||||
* scp the three files to appear on http://notmuchmail.org/releases
|
||||
* Place local copies of the three files in the releases directory
|
||||
* Create a LATEST-notmuch-version file (after deleting any old one)
|
||||
* Place local copies of the three files in the releases directory
|
||||
* Tag the entire source tree with a tag of the form X.Y.Z, and sign
|
||||
the tag with your GPG key (asks for your GPG password, and you
|
||||
may need to set GIT_COMMITTER_NAME and GIT_COMMITTER_EMAIL to match
|
||||
|
|
Loading…
Reference in a new issue