Merge pull request #1310 from MikeMcQuaid/changelog
Add `brew release-notes` developer command.
This commit is contained in:
commit
22182403c5
43
Library/Homebrew/dev-cmd/release-notes.rb
Normal file
43
Library/Homebrew/dev-cmd/release-notes.rb
Normal file
@ -0,0 +1,43 @@
|
||||
#: * `release-notes` [<previous_tag>] [<end_ref>]:
|
||||
#: Output the merged pull requests on Homebrew/brew between two Git refs.
|
||||
#: If no `previous_tag` is provided it defaults to the newest tag.
|
||||
#: If no `end_ref` is provided it defaults to `origin/master`.
|
||||
#:
|
||||
#: If `--markdown` is passed, output as a Markdown list.
|
||||
|
||||
module Homebrew
|
||||
module_function
|
||||
|
||||
def release_notes
|
||||
previous_tag = ARGV.named.first
|
||||
unless previous_tag
|
||||
previous_tag = Utils.popen_read("git tag --list --sort=-version:refname")
|
||||
.lines.first.chomp
|
||||
end
|
||||
odie "Could not find any previous tags!" unless previous_tag
|
||||
|
||||
end_ref = ARGV.named[1] || "origin/master"
|
||||
|
||||
[previous_tag, end_ref].each do |ref|
|
||||
next if quiet_system "git", "rev-parse", "--verify", "--quiet", ref
|
||||
odie "Ref #{ref} does not exist!"
|
||||
end
|
||||
|
||||
output = Utils.popen_read("git log --pretty=format:'%s >> - %b%n' '#{previous_tag}'..'#{end_ref}'")
|
||||
.lines.grep(/Merge pull request/)
|
||||
|
||||
output.map! do |s|
|
||||
s.gsub(/.*Merge pull request #(\d+)[^>]*(>>)*/,
|
||||
"https://github.com/Homebrew/brew/pull/\\1")
|
||||
end
|
||||
if ARGV.include?("--markdown")
|
||||
output.map! do |s|
|
||||
/(.*\d)+ - (.*)/ =~ s
|
||||
"- [#{$2}](#{$1})"
|
||||
end
|
||||
end
|
||||
|
||||
puts "Release notes between #{previous_tag} and #{end_ref}:"
|
||||
puts output
|
||||
end
|
||||
end
|
||||
@ -567,6 +567,11 @@ Each <patch-source> may be one of:
|
||||
If <code>--no-publish</code> was passed, do not publish bottles to Bintray.</p>
|
||||
|
||||
<dl>
|
||||
<dt><code>release-notes</code> [<var>previous_tag</var>] [<var>end_ref</var>]</dt><dd><p>Output the merged pull requests on Homebrew/brew between two Git refs.
|
||||
If no <code>previous_tag</code> is provided it defaults to the newest tag.
|
||||
If no <code>end_ref</code> is provided it defaults to <code>origin/master</code>.</p>
|
||||
|
||||
<p>If <code>--markdown</code> is passed, output as a Markdown list.</p></dd>
|
||||
<dt><code>tap-new</code> <var>user</var><code>/</code><var>repo</var></dt><dd><p>Generate the template files for a new tap.</p></dd>
|
||||
<dt><code>test</code> [<code>--devel</code>|<code>--HEAD</code>] [<code>--debug</code>] [<code>--keep-tmp</code>] <var>formula</var></dt><dd><p>Most formulae provide a test method. <code>brew test</code> <var>formula</var> runs this
|
||||
test method. There is no standard output or return code, but it should
|
||||
|
||||
@ -759,6 +759,13 @@ Each <patch\-source> may be one of:
|
||||
If \fB\-\-bottle\fR was passed, handle bottles, pulling the bottle\-update commit and publishing files on Bintray\. If \fB\-\-bump\fR was passed, for one\-formula PRs, automatically reword commit message to our preferred format\. If \fB\-\-clean\fR was passed, do not rewrite or otherwise modify the commits found in the pulled PR\. If \fB\-\-ignore\-whitespace\fR was passed, silently ignore whitespace discrepancies when applying diffs\. If \fB\-\-resolve\fR was passed, when a patch fails to apply, leave in progress and allow user to resolve, instead of aborting\. If \fB\-\-branch\-okay\fR was passed, do not warn if pulling to a branch besides master (useful for testing)\. If \fB\-\-no\-pbcopy\fR was passed, do not copy anything to the system If \fB\-\-no\-publish\fR was passed, do not publish bottles to Bintray\.
|
||||
.
|
||||
.TP
|
||||
\fBrelease\-notes\fR [\fIprevious_tag\fR] [\fIend_ref\fR]
|
||||
Output the merged pull requests on Homebrew/brew between two Git refs\. If no \fBprevious_tag\fR is provided it defaults to the newest tag\. If no \fBend_ref\fR is provided it defaults to \fBorigin/master\fR\.
|
||||
.
|
||||
.IP
|
||||
If \fB\-\-markdown\fR is passed, output as a Markdown list\.
|
||||
.
|
||||
.TP
|
||||
\fBtap\-new\fR \fIuser\fR\fB/\fR\fIrepo\fR
|
||||
Generate the template files for a new tap\.
|
||||
.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user