rubycut-vclog 1.9.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. data/.yardopts +7 -0
  2. data/History.md +249 -0
  3. data/License.txt +23 -0
  4. data/README.md +133 -0
  5. data/bin/vclog +6 -0
  6. data/bin/vclog-autotag +6 -0
  7. data/bin/vclog-bump +6 -0
  8. data/bin/vclog-formats +6 -0
  9. data/bin/vclog-news +6 -0
  10. data/bin/vclog-version +6 -0
  11. data/lib/vclog.rb +6 -0
  12. data/lib/vclog.yml +68 -0
  13. data/lib/vclog/adapters.rb +12 -0
  14. data/lib/vclog/adapters/abstract.rb +131 -0
  15. data/lib/vclog/adapters/darcs.rb +93 -0
  16. data/lib/vclog/adapters/git.rb +190 -0
  17. data/lib/vclog/adapters/hg.rb +129 -0
  18. data/lib/vclog/adapters/svn.rb +155 -0
  19. data/lib/vclog/change.rb +207 -0
  20. data/lib/vclog/change_point.rb +77 -0
  21. data/lib/vclog/changelog.rb +233 -0
  22. data/lib/vclog/cli.rb +8 -0
  23. data/lib/vclog/cli/abstract.rb +92 -0
  24. data/lib/vclog/cli/autotag.rb +36 -0
  25. data/lib/vclog/cli/bump.rb +29 -0
  26. data/lib/vclog/cli/formats.rb +28 -0
  27. data/lib/vclog/cli/log.rb +86 -0
  28. data/lib/vclog/cli/news.rb +29 -0
  29. data/lib/vclog/cli/version.rb +30 -0
  30. data/lib/vclog/config.rb +143 -0
  31. data/lib/vclog/core_ext.rb +11 -0
  32. data/lib/vclog/heuristics.rb +192 -0
  33. data/lib/vclog/heuristics/rule.rb +73 -0
  34. data/lib/vclog/heuristics/type.rb +29 -0
  35. data/lib/vclog/history_file.rb +69 -0
  36. data/lib/vclog/metadata.rb +16 -0
  37. data/lib/vclog/rc.rb +9 -0
  38. data/lib/vclog/release.rb +67 -0
  39. data/lib/vclog/repo.rb +298 -0
  40. data/lib/vclog/report.rb +200 -0
  41. data/lib/vclog/tag.rb +151 -0
  42. data/lib/vclog/templates/changelog.ansi.rb +35 -0
  43. data/lib/vclog/templates/changelog.atom.erb +52 -0
  44. data/lib/vclog/templates/changelog.gnu.rb +24 -0
  45. data/lib/vclog/templates/changelog.html.erb +49 -0
  46. data/lib/vclog/templates/changelog.json.rb +1 -0
  47. data/lib/vclog/templates/changelog.markdown.rb +30 -0
  48. data/lib/vclog/templates/changelog.rdoc.rb +30 -0
  49. data/lib/vclog/templates/changelog.rss.erb +54 -0
  50. data/lib/vclog/templates/changelog.xml.erb +28 -0
  51. data/lib/vclog/templates/changelog.xsl +34 -0
  52. data/lib/vclog/templates/changelog.yaml.rb +1 -0
  53. data/lib/vclog/templates/history.ansi.rb +57 -0
  54. data/lib/vclog/templates/history.atom.erb +84 -0
  55. data/lib/vclog/templates/history.gnu.rb +39 -0
  56. data/lib/vclog/templates/history.html.erb +60 -0
  57. data/lib/vclog/templates/history.json.rb +1 -0
  58. data/lib/vclog/templates/history.markdown.rb +38 -0
  59. data/lib/vclog/templates/history.rdoc.rb +36 -0
  60. data/lib/vclog/templates/history.rss.erb +84 -0
  61. data/lib/vclog/templates/history.xml.erb +43 -0
  62. data/lib/vclog/templates/history.yaml.rb +1 -0
  63. data/man/man1/index.txt +9 -0
  64. data/man/man1/vclog-autotag.1.ronn +29 -0
  65. data/man/man1/vclog-bump.1.ronn +21 -0
  66. data/man/man1/vclog-news.1.ronn +25 -0
  67. data/man/man1/vclog-version.1.ronn +14 -0
  68. data/man/man1/vclog.1.ronn +49 -0
  69. data/spec/feature_git_changes.rb +58 -0
  70. data/spec/feature_git_history.rb +58 -0
  71. data/spec/feature_hg_changes.rb +58 -0
  72. data/spec/feature_hg_history.rb +58 -0
  73. data/spec/featurettes/repo_creation.rb +64 -0
  74. data/spec/featurettes/shellout.rb +16 -0
  75. data/test/case_metadata.rb +10 -0
  76. metadata +265 -0
@@ -0,0 +1 @@
1
+ releases.map{ |r| r.to_h }.to_json
@@ -0,0 +1,38 @@
1
+ out = []
2
+
3
+ out << "# #{title || 'RELEASE HISTORY'}"
4
+
5
+ releases.sort.each do |release|
6
+
7
+ tag = release.tag
8
+
9
+ out << "\n## #{tag.name} / #{tag.date.strftime('%Y-%m-%d')}"
10
+
11
+ out << "\n#{tag.message.strip} (#{tag.author})"
12
+
13
+ if !(options.summary or release.changes.empty?)
14
+
15
+ out << "\nChanges:"
16
+
17
+ release.groups.each do |number, changes|
18
+
19
+ out << "\n* #{changes.size} #{changes[0].label }\n"
20
+
21
+ changes.sort{|a,b| b.date <=> a.date}.each do |entry|
22
+ msg = entry.to_s(:summary=>!options.detail)
23
+
24
+ msg << "\n(##{entry.id})" if options.reference
25
+
26
+ out << msg.tabto(6).sub(' ',' * ')
27
+ end
28
+
29
+ end
30
+
31
+ end
32
+
33
+ out << ""
34
+
35
+ end
36
+
37
+ out.join("\n") + "\n"
38
+
@@ -0,0 +1,36 @@
1
+ out = []
2
+
3
+ out << "= #{title || 'Release History'}"
4
+
5
+ releases.sort.each do |release|
6
+ tag = release.tag
7
+
8
+ out << "\n== #{tag.name} / #{tag.date.strftime('%Y-%m-%d')}"
9
+
10
+ out << "\n#{tag.message.strip} (#{tag.author})"
11
+
12
+ if !(options.summary or release.changes.empty?)
13
+
14
+ out << "\nChanges:"
15
+
16
+ release.groups.each do |type, changes|
17
+
18
+ out << "\n* #{changes.size} #{changes[0].label }\n"
19
+
20
+ changes.sort{|a,b| b.date <=> a.date}.each do |entry|
21
+ msg = entry.to_s(:summary=>!options.detail)
22
+
23
+ msg << "\n(##{entry.id})" if options.reference
24
+
25
+ out << msg.tabto(6).sub(' ',' * ')
26
+ end
27
+
28
+ end
29
+
30
+ end
31
+
32
+ out << ""
33
+ end
34
+
35
+ out.join("\n") + "\n"
36
+
@@ -0,0 +1,84 @@
1
+ <?xml version="1.0"?>
2
+
3
+ <rss version="2.0">
4
+
5
+ <channel>
6
+
7
+ <title><%= title %></title>
8
+
9
+ <% if url %><link><%= url %></link><% end %>
10
+
11
+ <% if homepage %><link><%= homepage %></link><% end %>
12
+
13
+ <description>Release History</description>
14
+
15
+ <language>en-us</language>
16
+
17
+ <pubDate><%= Time.now.rfc822 %></pubDate>
18
+
19
+ <lastBuildDate><%= Time.now.rfc822 %></lastBuildDate>
20
+
21
+ <docs>http://blogs.law.harvard.edu/tech/rss</docs>
22
+
23
+ <generator>VCLog</generator>
24
+
25
+ <managingEditor><%= email %> (<%= user %>)</managingEditor>
26
+
27
+ <webMaster><%= email %> (<%= user %>)</webMaster>
28
+
29
+ <% releases.sort.each do |release| %>
30
+
31
+ <% tag = release.tag %>
32
+
33
+ <item>
34
+
35
+ <title><%= tag.name %></title>
36
+
37
+ <author><%= tag.author %></author>
38
+
39
+ <link><%= url %>#<%= tag.id %></link>
40
+
41
+ <pubDate><%= tag.date.rfc822 %></pubDate>
42
+
43
+ <guid isPermaLink="false"><%= url %>#<%= tag.id %></guid>
44
+
45
+ <description><![CDATA[
46
+
47
+ <p><%= tag.message %></p>
48
+
49
+ <% if !options.summary %>
50
+
51
+ <% release.groups.each do |number, changes| %>
52
+
53
+ <h2><%= changes.size %> <%= changes[0].label %></h2>
54
+
55
+ <ul class="log">
56
+
57
+ <% changes.sort{|a,b| b.date <=> a.date}.each do |entry| %>
58
+
59
+ <li class="entry">
60
+ <%= entry.message.rstrip %><br/>
61
+
62
+ <%= entry.author %> <%= entry.date.strftime('%Y-%m-%d %H:%M:%S') %>
63
+
64
+ <% if options.reference %>(#<%= h entry.id %>)<% end %>
65
+ </li>
66
+
67
+ <% end %>
68
+
69
+ </ul>
70
+
71
+ <% end %>
72
+
73
+ <% end %>
74
+
75
+ ]]></description>
76
+
77
+ </item>
78
+
79
+ <% end %>
80
+
81
+ </channel>
82
+
83
+ </rss>
84
+
@@ -0,0 +1,43 @@
1
+ <?xml version="1.0"?>
2
+ <% if options.stylesheet %>
3
+ <?xml-stylesheet href="#{options.stylesheet}" type="text/xsl" ?>
4
+ <% end %>
5
+ <history>
6
+ <title><%= title %></title>
7
+ <% releases.sort.each do |release| %>
8
+ <tag>
9
+ <% tag = release.tag %>
10
+ <name><%= h tag.name %></name>
11
+ <date><%= tag.date.strftime('%Y-%m-%d') %></date>
12
+ <author><%= h tag.author %></author>
13
+ <message><%= h tag.message %></message>
14
+
15
+ <% release.groups.each do |number, changes| %>
16
+ <commit-group type="<%= changes[0].type %>" label="<%= changes[0].label %>">
17
+ <% changes.sort{|a,b| b.date <=> a.date}.each do |entry| %>
18
+ <commit>
19
+ <id><%= h entry.id %></id>
20
+ <date><%= entry.date %></date>
21
+ <author><%= h entry.author %></author>
22
+ <type><%= h entry.type %></type>
23
+ <message>
24
+ <summary><%= h entry.summary %></summary>
25
+ <% if entry.details.empty? %>
26
+ <details></details>
27
+ <% else %>
28
+ <details>
29
+ <![CDATA[
30
+ <%= h entry.details %>
31
+
32
+ ]]>
33
+ </details>
34
+ <% end %>
35
+ </message>
36
+ </commit>
37
+ <% end %>
38
+ </commit-group>
39
+ <% end %>
40
+ </tag>
41
+ <% end %>
42
+ </history>
43
+
@@ -0,0 +1 @@
1
+ releases.map{ |r| r.to_h }.to_yaml
@@ -0,0 +1,9 @@
1
+ # manuals
2
+ vclog(1) vclog.1.ronn
3
+ vclog-changelog(1) vclog-changelog.1.ronn
4
+ vclog-history(1) vclog-history.1.ronn
5
+ vclog-version(1) vclog-version.1.ronn
6
+ vclog-news(1) vclog-news.1.ronn
7
+ vclog-bump(1) vclog-bump.1.ronn
8
+ vclog-autotag(1) vclog-autotag.1.ronn
9
+
@@ -0,0 +1,29 @@
1
+ vclog-autotag(1) - tag history entries
2
+ ======================================
3
+
4
+ ## SYNOPSIS
5
+
6
+ `vclog-autotag`
7
+
8
+ ## DESCRIPTION
9
+
10
+ Ensure all HISTORY file entries have corresponding commit tags in
11
+ the version control system.
12
+
13
+ ## OPTIONS
14
+
15
+ * `--force`, `-y`
16
+ Create tags without asking for confirmation.
17
+
18
+ * `--prefix`, `-p PREFIX`
19
+ Specify a prefix to add to version tags. Typically
20
+ this will be the letter 'v'.
21
+
22
+ * `--file`, `-f FILE`
23
+ Specify a specific history file to use. This is useful
24
+ is the history file does not conform to the usual naming
25
+ convention of `HISTORY.*`.
26
+
27
+ ## SEE ALSO
28
+
29
+ vclog(1)
@@ -0,0 +1,21 @@
1
+ vclog-bump(1) - suggest next version
2
+ ====================================
3
+
4
+ ## SYNOPSIS
5
+
6
+ `vclog-bump`
7
+
8
+ ## DESCRIPTION
9
+
10
+ Display the next most suitable version number, based on the current
11
+ version number. The bump command considers the commit levels in
12
+ determining if the next version should be a major or minor bump.
13
+
14
+ ## OPTIONS
15
+
16
+ * `--version`, `-v NUM`
17
+ Assume this version number is current.
18
+
19
+ ## SEE ALSO
20
+
21
+ vclog(1)
@@ -0,0 +1,25 @@
1
+ vclog-news(1) - output latest release notice
2
+ ============================================
3
+
4
+ ## SYNOPSIS
5
+
6
+ `vclog-news`
7
+
8
+ ## DESCRIPTION
9
+
10
+ Display the most recent entry in a project's history file. This command
11
+ does NOT show the latest tag message, rather it is useful for making
12
+ a new tag. For instnace:
13
+
14
+ `vclog-news | git tag -a -F - v1.0.0`
15
+
16
+ This command will create a new git tag using the most recent message in
17
+ the history file.
18
+
19
+ ## OPTIONS
20
+
21
+ No options yet.
22
+
23
+ ## SEE ALSO
24
+
25
+ vclog(1)
@@ -0,0 +1,14 @@
1
+ vclog-version(1) - display current version
2
+ ==========================================
3
+
4
+ ## SYNOPSIS
5
+
6
+ `vclog-version`
7
+
8
+ ## DESCRIPTION
9
+
10
+ Display current version number according to source control system.
11
+
12
+ ## SEE ALSO
13
+
14
+ vclog(1)
@@ -0,0 +1,49 @@
1
+ vclog(1) - version control logs
2
+ ===============================
3
+
4
+ ## SYNOPSIS
5
+
6
+ `vclog [options]`
7
+
8
+ ## DESCRIPTION
9
+
10
+ VCLog is a versitle cross-VCS/SCM changelog and release history generator.
11
+ It currently supports Git, Hg and (limited) Subversion.
12
+
13
+ ## OPTIONS
14
+
15
+ Note that not all formats support all options, and some formats use them
16
+ in variant manners.
17
+
18
+ * `-f`, `--format <FORMAT>`
19
+ Output format (ansi, rdoc, html, etc.)
20
+
21
+ * `--style <URI>`
22
+ Provide a stylesheet URI, either css or xsl, for HTML or XML formats.
23
+
24
+ * `-d`, `--detail`
25
+ Include commit message details.
26
+
27
+ * `-p`, `--point`
28
+ Divide commit messages into commit points.
29
+
30
+ * `-v`, `--version <VERSION>`
31
+ Use as current version number.
32
+
33
+ * `-t`, `--title TITLE`
34
+ Document title (for format that supports it).
35
+
36
+ * `-s`, `--summary
37
+ Omit change points. (Applies only to release history report.)
38
+
39
+ * `i`, `--id`
40
+ Include revision/reference ids. (Does not apply to xml/html formats.)
41
+
42
+ * `-l`, `--level <NUMBER>`
43
+ Lowest level of commit to display, default is `0`.
44
+
45
+ Both changelog and release history can be produced in a variety of formats.
46
+
47
+ ## SEE ALSO
48
+
49
+ vclog-version(1), vclog-bump(1), vclog-autotag(1)
@@ -0,0 +1,58 @@
1
+ #require_relative 'featurettes/repo_creation'
2
+ #require_relative 'featurettes/shellout'
3
+
4
+ Feature "Git Change Log Support" do
5
+ As "Git users"
6
+ We "want to generate nicely formatted change logs"
7
+
8
+ Scenario "Git Changelog" do
9
+ Given "a suitable Git repository"
10
+ When "I run `vclog`"
11
+ Then "the exit status should be 0"
12
+ end
13
+
14
+ Scenario "Git Changelog in RDoc" do
15
+ Given "a suitable Git repository"
16
+ When "I run `vclog -f rdoc`"
17
+ Then "the exit status should be 0"
18
+ end
19
+
20
+ Scenario "Git Changelog in Markdown" do
21
+ Given "a suitable Git repository"
22
+ When "I run `vclog -f markdown`"
23
+ Then "the exit status should be 0"
24
+ end
25
+
26
+ Scenario "Git Changelog in HTML" do
27
+ Given "a suitable Git repository"
28
+ When "I run `vclog -f html`"
29
+ Then "the exit status should be 0"
30
+ end
31
+
32
+ Scenario "Git Changelog in XML" do
33
+ Given "a suitable Git repository"
34
+ When "I run `vclog -f xml`"
35
+ Then "the exit status should be 0"
36
+ end
37
+
38
+ Scenario "Git Changelog in Atom" do
39
+ Given "a suitable Git repository"
40
+ When "I run `vclog -f atom`"
41
+ Then "the exit status should be 0"
42
+ end
43
+
44
+ Scenario "Git Changelog in YAML" do
45
+ Given "a suitable Git repository"
46
+ When "I run `vclog -f yaml`"
47
+ Then "the exit status should be 0"
48
+ end
49
+
50
+ Scenario "Git Changelog in JSON" do
51
+ Given "a suitable Git repository"
52
+ When "I run `vclog -f json`"
53
+ Then "the exit status should be 0"
54
+ end
55
+
56
+ include RepoCreation
57
+ include Shellout
58
+ end
@@ -0,0 +1,58 @@
1
+ #require_relative 'featurettes/repo_creation'
2
+ #require_relative 'featurettes/shellout'
3
+
4
+ Feature "Git Release History Support" do
5
+ As "Git users"
6
+ We "want to generate nicely formatted release histories"
7
+
8
+ Scenario "Git Release History" do
9
+ Given "a suitable Git repository"
10
+ When "I run `vclog r`"
11
+ Then "the exit status should be 0"
12
+ end
13
+
14
+ Scenario "Git Release History in RDoc" do
15
+ Given "a suitable Git repository"
16
+ When "I run `vclog r -f rdoc`"
17
+ Then "the exit status should be 0"
18
+ end
19
+
20
+ Scenario "Git Release History in Markdown" do
21
+ Given "a suitable Git repository"
22
+ When "I run `vclog rel -f markdown`"
23
+ Then "the exit status should be 0"
24
+ end
25
+
26
+ Scenario "Git Release History in HTML" do
27
+ Given "a suitable Git repository"
28
+ When "I run `vclog rel -f html`"
29
+ Then "the exit status should be 0"
30
+ end
31
+
32
+ Scenario "Git Release History in XML" do
33
+ Given "a suitable Git repository"
34
+ When "I run `vclog rel -f xml`"
35
+ Then "the exit status should be 0"
36
+ end
37
+
38
+ Scenario "Git Release History in Atom" do
39
+ Given "a suitable Git repository"
40
+ When "I run `vclog rel -f atom`"
41
+ Then "the exit status should be 0"
42
+ end
43
+
44
+ Scenario "Git Release History in YAML" do
45
+ Given "a suitable Git repository"
46
+ When "I run `vclog rel -f yaml`"
47
+ Then "the exit status should be 0"
48
+ end
49
+
50
+ Scenario "Git Release History in JSON" do
51
+ Given "a suitable Git repository"
52
+ When "I run `vclog rel -f json`"
53
+ Then "the exit status should be 0"
54
+ end
55
+
56
+ include RepoCreation
57
+ include Shellout
58
+ end