X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDistar.pm;h=8bf1f61712cbc178deb07a7fa824ce21c6d7161b;hb=263b723ef2794e7639278c0f5aeaac26002e1e9f;hp=dc0a9b8e30e305aa9f33aa8f4a185a292ecf1c75;hpb=edb4539ab17337bdc7b1f64aded94b1c48b75a59;p=p5sagit%2FDistar.git diff --git a/lib/Distar.pm b/lib/Distar.pm index dc0a9b8..8bf1f61 100644 --- a/lib/Distar.pm +++ b/lib/Distar.pm @@ -101,6 +101,9 @@ sub write_manifest_skip { my $targets = $self->SUPER::special_targets(@_); my $phony_targets = join ' ', qw( preflight + check-version + check-manifest + check-cpan-upload releasetest release readmefile @@ -131,6 +134,8 @@ sub write_manifest_skip { REMAKE => join(' ', '$(PERLRUN)', 'Makefile.PL', map { $self->quote_literal($_) } @ARGV), BRANCH => $self->{BRANCH} ||= 'master', CHANGELOG => $self->{CHANGELOG} ||= 'Changes', + DEV_NULL_STDOUT => ($self->{DEV_NULL} ? '>'.File::Spec->devnull : ''), + FAKE_RELEASE => '', ); join('', @@ -139,8 +144,14 @@ sub write_manifest_skip { (map "$_ = $vars{$_}\n", sort keys %vars), <<'END', -preflight: +preflight: check-version check-manifest check-cpan-upload $(ABSPERLRUN) Distar/helpers/preflight $(VERSION) --changelog=$(CHANGELOG) --branch=$(BRANCH) +check-version: + $(ABSPERLRUN) Distar/helpers/check-version $(VERSION) $(TO_INST_PM) $(EXE_FILES) +check-manifest: + $(ABSPERLRUN) Distar/helpers/check-manifest +check-cpan-upload: + $(NOECHO) cpan-upload -h $(DEV_NULL_STDOUT) releasetest: $(MAKE) disttest RELEASE_TESTING=1 PASTHRU="$(PASTHRU) TEST_FILES=\"$(TEST_FILES)\"" release: preflight releasetest @@ -148,6 +159,10 @@ release: preflight releasetest $(MAKE) $(DISTVNAME).tar$(SUFFIX) git commit -a -m "Release commit for $(VERSION)" git tag v$(VERSION) -m "release v$(VERSION)" + $(NOECHO) $(MAKE) pushrelease FAKE_RELEASE=$(FAKE_RELEASE) +pushrelease :: + $(NOECHO) $(NOOP) +pushrelease$(FAKE_RELEASE) :: cpan-upload $(DISTVNAME).tar$(SUFFIX) git push origin v$(VERSION) HEAD distdir: readmefile @@ -283,6 +298,11 @@ C and C commands. Releasing will generate a dist tarball and upload it to CPAN using cpan-upload. It will also create a git tag for the release, and push the tag and branch. +=head2 FAKE_RELEASE + +If release is run with FAKE_RELEASE=1 set, it will skip uploading to CPAN and +pushing to git. A release commit will still be created and tagged locally. + =head2 preflight Performs a number of checks on the files and repository, ensuring it is in a