2012-02-27 45 views
9

我有一個使用bundler的Rails項目。我收錄的許多寶石都是最新版本之後的不少版本。我知道我可以跨越我的手指並運行bundle update,以便將所有內容都更新到最新版本,同時考慮到依賴關係,但這可能會破壞依賴於不推薦使用的gem方法的應用程序部分,並且可能不值得您付出努力。獲取包含在Rails項目中的所有寶石的更新日誌

有沒有辦法在Gemfile.lock和rubygems的最新版本之間獲取所有捆綁寶石的更新日誌?這似乎是一個將是一個相當普遍的需求,但我還沒有找到任何解決方案...

+0

創建自@ nanothief與一些改進答案要旨除了閱讀新聞的文件更改日誌或歷史文件,並使用'束outdated'效益最大化:https://gist.github.com/2166005 – swrobel 2012-03-23 01:24:44

回答

6

這是一個非常好的主意。我還沒有聽說過目前有任何工具,所以我創建了一個腳本來完成它。

這是非常hacky/alpha,但它仍然非常有效(比我認爲它會是我開始寫它時)。所以請自擔風險。希望雖然這樣的功能(但有很大的改進)最終可能會成爲捆綁軟件。

要使用,請首先提交所有更改。然後在根目錄(在您Gemfile.lock文件是運行腳本。

它會首先查詢所有的寶石在使用中找到自己的更新日誌,那麼它將運行bundle update,然後將查詢所有寶石,尋找新的和比較變更日誌,最後運行git checkout Gemfile.lockbundle install來恢復由bundle update命令引起的任何更改,結果將保存在文件bundler_gem_diff.txt中。

#!/usr/bin/env ruby 


def changelog_for_gem(gem) 
    changelogs = `bundle exec gem contents #{gem}`.lines.grep(/history|changelog/i) 
    if changelogs.empty? 
     puts "No changelog found for gem #{gem}" 

     return nil 
    end 
    changelogs.first.chomp 
end 



class GemDetails 
    attr_accessor :name, :version, :changelog_file 


    def initialize(name, version) 
     @name, @version = name, version 
    end 
    def self.from_str(str) 
     match = str.match(/(\S+) \((.*)\)/) 
     result = self.new(match[1], Gem::Version.new(match[2])) 
     result.changelog_file = changelog_for_gem(result.name) 
     puts "process gem #{result.name}" 
     result 
    end 
end 



def bundler_gems 
    gem_list = `bundle list`.lines.drop(1).map do |line| 
     line.gsub(/\s*\* /, '') 
    end 

    gem_list.map { |gem_str| GemDetails.from_str(gem_str) } 
end 

def bundler_update 
    system("bundle update") 
end 

def bundler_install 
    system("bundle install") 
end 


def updated_gems(initial_gems, new_gems) 
    result = [] 
    initial_gems.each do |gem| 
     updated_gem = new_gems.find { |new_gem| gem.name == new_gem.name && gem.version < new_gem.version } 
     result << [gem, updated_gem] if updated_gem 
    end 
    result 
end 


def changelog_diff 
    initial_gems = bundler_gems 
    puts "Updating bundle" 
    system('bundle update') 
    new_gems = bundler_gems 
    File.open('bundler_gem_diff.txt', 'w') do |f| 
     updated_gems(initial_gems, new_gems).each do |gem_pair| 
      f.puts "###### #{gem_pair[0].name} #{gem_pair[0].version} -> #{gem_pair[1].version} ######" 
      if gem_pair[0].changelog_file && gem_pair[1].changelog_file 
       puts "diff #{gem_pair[0].changelog_file} #{gem_pair[1].changelog_file}" 
       f.puts `diff #{gem_pair[0].changelog_file} #{gem_pair[1].changelog_file}` 
      else 
       f.puts "Missing changelogs" 
      end 
     end 
    end 
    system('git checkout Gemfile.lock') 
    system('bundle install') 
    nil 
end 


changelog_diff 

這裏是我的輸出運行它在我的octopress博客安裝(比較長,主要是因爲kramdown使用git log他們的更新日誌):

###### RedCloth 4.2.8 -> 4.2.9 ###### 
0a1,5 
> == 4.2.9/November 25, 2011 
> 
> * Fix RbConfig/Config warning in Ruby 1.9.3. [Steve Purcell, Robert Gleeson, and unclaimedbaggage] 
> * Use RSTRING_NOT_MODIFIED header for Rubinius [Dirkjan Bussink] 
> 
###### activesupport 3.2.0 -> 3.2.2 ###### 
0a1,12 
> ## Rails 3.2.1 (January 26, 2012) ## 
> 
> * Documentation fixes and improvements. 
> 
> * Update time zone offset information. *Ravil Bayramgalin* 
> 
> * The deprecated `ActiveSupport::Base64.decode64` calls `::Base64.decode64` 
>  now. *Jonathan Viney* 
> 
> * Fixes uninitialized constant `ActiveSupport::TaggedLogging::ERROR`. *kennyj* 
> 
> 
###### chunky_png 1.2.1 -> 1.2.5 ###### 
Missing changelogs 
###### compass 0.11.5 -> 0.11.7 ###### 
Missing changelogs 
###### directory_watcher 1.4.0 -> 1.4.1 ###### 
0a1,5 
> == 1.4.1/2011-08-29 
> 
> Minor Enhancements 
> - support for latest 'cool.io' 
> 
###### fssm 0.2.7 -> 0.2.8.1 ###### 
Missing changelogs 
###### haml 3.1.2 -> 3.1.4 ###### 
6c6,119 
< ## 3.1.0 (Unreleased) 
--- 
> ## 3.1.11 
> 
> * Allow control directives (such as `@if`) to be nested beneath properties. 
> * Allow property names to begin with a hyphen followed by interpolation (e.g. `-#{...}`). 
> * Fix a parsing error with interpolation in comma-separated lists. 
> * Make `--cache-store` with with `--update`. 
> * Properly report `ArgumentError`s that occur within user-defined functions. 
> * Don't crash on JRuby if the underlying Java doesn't support every Unicode encoding. 
> * Add new `updated_stylesheet` callback, which is run after each stylesheet has 
> been successfully compiled. Thanks to [Christian Peters](https://github.com/ChristianPeters). 
> * Allow absolute paths to be used in an importer with a different root. 
> * Don't destructively modify the options when running `Sass::Plugin.force_update`. 
> 
> ### Deprecations -- Must Read! 
> 
> * The `updating_stylesheet` is deprecated and will be removed in a 
> future release. Use the new `updated_stylesheet` callback instead. 
> 
> ## 3.1.10 
> 
> * Fix another aspect of the 3.1.8 regression relating to `+`. 
> 
> ## 3.1.9 
> 
> * Fix a regression in 3.1.8 that broke the `+` combinator in selectors. 
> 
> * Deprecate the loud-comment flag when used with silent comments (e.g. `//!`). 
> Using it with multi-line comments (e.g. `/*!`) still works. 
> 
> ## 3.1.8 
> 
> * Deprecate parent selectors followed immediately by identifiers (e.g. `&foo`). 
> This should never have worked, since it violates the rule 
> of `&` only being usable where an element selector would. 
> 
> * Add a `--force` option to the `sass` executable which makes `--update` 
> always compile all stylesheets, even if the CSS is newer. 
> 
> * Disallow semicolons at the end of `@import` directives in the indented syntax. 
> 
> * Don't error out when being used as a library without requiring `fileutil`. 
> 
> * Don't crash when Compass-style sprite imports are used with `StalenessChecker` 
> (thanks to [Matthias Bauer](https://github.com/moeffju)). 
> 
> * The numeric precision of numbers in Sass can now be set using the 
> `--precision` option to the command line. Additionally, the default 
> number of digits of precision in Sass output can now be 
> changed by setting `Sass::Script::Number.precision` to an integer 
> (defaults to 3). Since this value can now be changed, the `PRECISION` 
> constant in `Sass::Script::Number` has been deprecated. In the unlikely 
> event that you were using it in your code, you should now use 
> `Sass::Script::Number.precision_factor` instead. 
> 
> * Don't crash when running `sass-convert` with selectors with two commas in a row. 
> 
> * Explicitly require Ruby >= 1.8.7 (thanks [Eric Mason](https://github.com/ericmason)). 
> 
> * Properly validate the nesting of elements in imported stylesheets. 
> 
> * Properly compile files in parent directories with `--watch` and `--update`. 
> 
> * Properly null out options in mixin definitions before caching them. This fixes 
> a caching bug that has been plaguing some Rails 3.1 users. 
> 
> ## 3.1.7 
> 
> * Don't crash when doing certain operations with `@function`s. 
> 
> ## 3.1.6 
> 
> * The option `:trace_selectors` can now be used to emit a full trace 
> before each selector. This can be helpful for in-browser debugging of 
> stylesheet imports and mixin includes. This option supersedes the 
> `:line_comments` option and is superseded by the `:debug_info` 
> option. 
> 
> * Fix a bug where long `@if`/`@else` chains would cause exponential slowdown 
> under some circumstances. 
> 
> ## 3.1.5 
> 
> * Updated the vendored FSSM version, which will avoid segfaults on OS 
> X Lion when using `--watch`. 
> 
> ## 3.1.4 
> 
> * Sass no longer unnecessarily caches the sass options hash. 
> This allows objects that cannot be marshaled to be placed into the 
> options hash. 
> 
> ## 3.1.3 
> 
> * Sass now logs message thru a logger object which can be changed to 
> provide integration with other frameworks' logging infrastructure. 
> 
> 
> ## 3.1.2 
> 
> * Fix some issues that were breaking Sass when running within Rubinius. 
> * Fix some issues that were affecting Rails 3.1 integration. 
> * New function `zip` allows several lists to be combined into one 
> list of lists. For example: 
> `zip(1px 1px 3px, solid dashed solid, red green blue)` becomes 
> `1px solid red, 1px dashed green, 3px solid blue` 
> * New function `index` returns the list index of a value 
> within a list. For example: `index(1px solid red, solid)` 
> returns `2`. When the value is not found `false` is returned. 
> 
> ## 3.1.1 
> 
> * Make sure `Sass::Plugin` is loaded at the correct time in Rails 3. 
> 
> ## 3.1.0 
138c251 
< However, you can now do more with them using the new {file:Sass/Script/Functions.html#list-functions list functions}: 
--- 
> However, you can now do more with them using the new [list functions](Sass/Script/Functions.html#list-functions): 
###### jekyll 0.11.0 -> 0.11.2 ###### 
0a1,9 
> == 0.11.2/2011-12-27 
> * Bug Fixes 
>  * Fix gemspec 
> 
> == 0.11.1/2011-12-27 
> * Bug Fixes 
>  * Fix extra blank line in highlight blocks (#409) 
>  * Update dependencies 
> 
###### kramdown 0.13.3 -> 0.13.5 ###### 
0a1,429 
> commit ce785c7cc29372cb7c5c47647535b1943348aff6 
> Author: Thomas Leitner <[email protected]> 
> Date: Sun Feb 19 15:34:37 2012 +0100 
> 
>  Updated release notes, version number and benchmark graphs 
> 
> doc/img/graph-ruby-1.8.5-231.png 
> doc/img/graph-ruby-1.8.6-399.png 
> doc/img/graph-ruby-1.8.7-249.png 
> doc/img/graph-ruby-1.8.7-302.png 
> doc/img/graph-ruby-1.9.2p136-136.png 
> doc/img/graph-ruby-1.9.3p0-0.png 
> doc/img/graph-ruby-1.9.3p125-125.png 
> doc/news/release_0_13_5.page 
> doc/sidebar.template 
> doc/tests.page 
> lib/kramdown/version.rb 
> 
> commit 90f0583232e814334b2bb8c7fa3228b2f4e30f81 
> Author: Thomas Leitner <[email protected]> 
> Date: Sun Feb 19 10:14:58 2012 +0100 
> 
>  Bug fix: Empty id attributes are handled better now 
>  
>  * The HTML converter does not output empty id attributes anymore. 
>  * The kramdown converter now always converts empty id attributes 
>  to IAL form. 
> 
> lib/kramdown/converter/kramdown.rb 
> lib/kramdown/utils/html.rb 
> test/testcases/block/04_header/with_auto_ids.html 
> test/testcases/block/04_header/with_auto_ids.text 
> 
> commit d956b98fdf449af145bc8b52539abdb99a062cda 
> Author: Thomas Leitner <[email protected]> 
> Date: Sun Feb 19 09:53:03 2012 +0100 
> 
>  Small typo fix in quickref 
> 
> doc/quickref.page 
> 
> commit 4df3c5aaad763cc9d8fd4b129a5cdd245ed5a7f7 
> Author: Thomas Leitner <[email protected]> 
> Date: Sun Feb 19 09:38:29 2012 +0100 
> 
>  Updated homepage contents 
> 
> doc/documentation.page 
> doc/index.page 
> doc/installation.page 
> doc/news.page 
> doc/syntax.page 
> doc/tests.page 
> 
> commit c0bcd765e131b671661af70274ce632111ad89bb 
> Author: Thomas Leitner <[email protected]> 
> Date: Sun Feb 19 09:37:15 2012 +0100 
> 
>  Updated website design 
> 
> doc/bg.png 
> doc/default.scss.css 
> doc/default.template 
> doc/design.scss.css 
> doc/sidebar.template 
> 
> commit d530421d0a3794010cd0c022decb097158e90732 
> Author: Thomas Leitner <[email protected]> 
> Date: Sun Feb 19 09:35:51 2012 +0100 
> 
>  Disabling line numbers in code listings on homepage 
> 
> Rakefile 
> 
> commit a47a5c49e35f9ccb220dca7b5b8ac7d585026ef6 
> Author: Thomas Leitner <[email protected]> 
> Date: Sun Feb 19 09:25:01 2012 +0100 
> 
>  Updated copyright notice updating code 
> 
> Rakefile 
> 
> commit 21ce307a6766d131bf3a61de1142d88b0bd0a8be 
> Author: Thomas Leitner <[email protected]> 
> Date: Sun Feb 19 09:24:22 2012 +0100 
> 
>  Updated copyright notices 
> 
> bin/kramdown 
> lib/kramdown.rb 
> lib/kramdown/compatibility.rb 
> lib/kramdown/converter.rb 
> lib/kramdown/converter/base.rb 
> lib/kramdown/converter/html.rb 
> lib/kramdown/converter/kramdown.rb 
> lib/kramdown/converter/latex.rb 
> lib/kramdown/converter/toc.rb 
> lib/kramdown/document.rb 
> lib/kramdown/element.rb 
> lib/kramdown/error.rb 
> lib/kramdown/options.rb 
> lib/kramdown/parser.rb 
> lib/kramdown/parser/base.rb 
> lib/kramdown/parser/html.rb 
> lib/kramdown/parser/kramdown.rb 
> lib/kramdown/parser/kramdown/abbreviation.rb 
> lib/kramdown/parser/kramdown/autolink.rb 
> lib/kramdown/parser/kramdown/blank_line.rb 
> lib/kramdown/parser/kramdown/block_boundary.rb 
> lib/kramdown/parser/kramdown/blockquote.rb 
> lib/kramdown/parser/kramdown/codeblock.rb 
> lib/kramdown/parser/kramdown/codespan.rb 
> lib/kramdown/parser/kramdown/emphasis.rb 
> lib/kramdown/parser/kramdown/eob.rb 
> lib/kramdown/parser/kramdown/escaped_chars.rb 
> lib/kramdown/parser/kramdown/extensions.rb 
> lib/kramdown/parser/kramdown/footnote.rb 
> lib/kramdown/parser/kramdown/header.rb 
> lib/kramdown/parser/kramdown/horizontal_rule.rb 
> lib/kramdown/parser/kramdown/html.rb 
> lib/kramdown/parser/kramdown/html_entity.rb 
> lib/kramdown/parser/kramdown/line_break.rb 
> lib/kramdown/parser/kramdown/link.rb 
> lib/kramdown/parser/kramdown/list.rb 
> lib/kramdown/parser/kramdown/math.rb 
> lib/kramdown/parser/kramdown/paragraph.rb 
> lib/kramdown/parser/kramdown/smart_quotes.rb 
> lib/kramdown/parser/kramdown/table.rb 
> lib/kramdown/parser/kramdown/typographic_symbol.rb 
> lib/kramdown/parser/markdown.rb 
> lib/kramdown/utils.rb 
> lib/kramdown/utils/entities.rb 
> lib/kramdown/utils/html.rb 
> lib/kramdown/utils/ordered_hash.rb 
> lib/kramdown/version.rb 
> test/run_tests.rb 
> test/test_files.rb 
> 
> commit 512b00a6d050f506c43b824861f7bbf459862a19 
> Author: Thomas Leitner <[email protected]> 
> Date: Sun Feb 19 09:12:38 2012 +0100 
> 
>  Fixed bug RF#29521: HTML math output not always XHTML compatible 
>  
>  The characters < and & are not allowed in a script tag in XHTML. 
>  So since the HTML converter uses script tags for math elements, 
>  whenever these characters appear in a value the value is wrapped 
>  in a CDATA section to make the output XHTML compatible. 
> 
> lib/kramdown/converter/html.rb 
> lib/kramdown/parser/html.rb 
> test/testcases/block/15_math/normal.html 
> 
> commit 8f111947dbcea064a997662d65cd53e6e39c8c40 
> Author: Thomas Leitner <[email protected]> 
> Date: Sat Feb 18 20:06:42 2012 +0100 
> 
>  Fixed bug RF#29520: inline math statements interpreted as math blocks 
>  
>  If a paragraph started and ended with an inline math statement, it was 
>  parsed as math block. This is fixed now. 
>  
>  Also, it is now better explained in the kramdown syntax documentation 
>  how special cases are handled. 
> 
> doc/syntax.page 
> lib/kramdown/converter/kramdown.rb 
> lib/kramdown/parser/kramdown/math.rb 
> test/testcases/span/math/normal.html 
> test/testcases/span/math/normal.text 
> 
> commit f5b585513508704563cc0bb343869f91520ff853 
> Author: Thomas Leitner <[email protected]> 
> Date: Sat Feb 18 11:11:45 2012 +0100 
> 
>  Fixed problem with missing methods/constants on older Ruby 1.8.6 versions 
> 
> lib/kramdown/compatibility.rb 
> 
> commit 394d5de7cad34ed5e0bdcfc0fcc7a1a28b3f0229 
> Author: Thomas Leitner <[email protected]> 
> Date: Tue Jan 31 17:32:09 2012 +0100 
> 
>  Moved camelize method from Document#method_to_class_name to Utils.camelize 
> 
> lib/kramdown/document.rb 
> lib/kramdown/utils.rb 
> 
> commit 7adc3bda20a8290f0af588da7816eec591d4ecaa 
> Author: tomykaira <[email protected]> 
> Date: Fri Dec 30 18:08:43 2011 +0900 
> 
>  Fix Document#method_missing to accept snake_cased class name 
>  
>  When doc.to_my_converter is called, it should use MyConverter, but used My_converter 
> 
> lib/kramdown/document.rb 
> 
> commit a6b181a9baf2eeeabeb55a1a9d5b26791fecad08 
> Author: Thomas Leitner <[email protected]> 
> Date: Sat Jan 21 12:18:22 2012 +0100 
> 
>  HTML attributes names are now converted to lower case 
> 
> doc/syntax.page 
> lib/kramdown/parser/html.rb 
> lib/kramdown/parser/kramdown/html.rb 
> test/testcases/block/09_html/html5_attributes.html 
> test/testcases/block/09_html/simple.text 
> test/testcases/span/05_html/normal.text 
> 
> commit 170ca36a60d823803f575bf5632d9e9d1e74f7db 
> Author: Thomas Leitner <[email protected]> 
> Date: Sat Jan 21 12:05:31 2012 +0100 
> 
>  HTML attributes without values are now supported 
>  
>  This means that one can write boolean HTML attributes now without 
>  assigning an empty value. 
> 
> doc/syntax.page 
> lib/kramdown/converter/kramdown.rb 
> lib/kramdown/parser/html.rb 
> lib/kramdown/parser/kramdown/html.rb 
> test/testcases/block/09_html/html5_attributes.html 
> test/testcases/block/09_html/html5_attributes.text 
> test/testcases/span/05_html/normal.html 
> test/testcases/span/05_html/normal.text 
> 
> commit 2c1d7c5e66bfe42052dc43374e123a48e7cb2ad6 
> Author: Thomas Leitner <[email protected]> 
> Date: Fri Dec 16 18:40:15 2011 +0100 
> 
>  Fix to work with newer RDoc versions 
> 
> Rakefile 
> 
> commit 2a93cbc0e1bbe705159c645ae617538bad125394 
> Author: Thomas Leitner <[email protected]> 
> Date: Fri Dec 16 18:26:32 2011 +0100 
> 
>  Updated release notes, version number and benchmark graphs 
> 
> doc/img/graph-jruby-1.6.0-330.png 
> doc/img/graph-ruby-1.8.5-231.png 
> doc/img/graph-ruby-1.8.6-399.png 
> doc/img/graph-ruby-1.8.7-249.png 
> doc/img/graph-ruby-1.8.7-302.png 
> doc/img/graph-ruby-1.9.2p136-136.png 
> doc/img/graph-ruby-1.9.3p0-0.png 
> doc/index.page 
> doc/news/release_0_13_4.page 
> doc/news/release_0_X_X.page 
> doc/tests.page 
> lib/kramdown/version.rb 
> 
> commit dbbabbc5b61b67ed0d22c1aa4a6b17608ed771e6 
> Author: Thomas Leitner <[email protected]> 
> Date: Tue Dec 13 17:25:53 2011 +0100 
> 
>  Fixed test case to work with coderay 1.0 
> 
> test/testcases/block/12_extension/options3.html 
> 
> commit 6828b83435c30676185d675dc7b6054846606df0 
> Author: Thomas Leitner <[email protected]> 
> Date: Tue Dec 13 17:25:31 2011 +0100 
> 
>  Updated Rakefile and setup.rb 
>  
>  * Use gem package task supplied by rubygems 
>  * Add coderay as development dependency 
>  * Fix warning in setup.rb because of Config::CONFIG use 
> 
> Rakefile 
> setup.rb 
> 
> commit bb7e82ce3f5213830fa6387e6c790a75b919dd38 
> Author: Thomas Leitner <[email protected]> 
> Date: Tue Dec 13 17:23:51 2011 +0100 
> 
>  Fixed problem with different Array#delete_if internals on Ruby 1.9.3 
>  
>  See http://redmine.ruby-lang.org/issues/5752 
> 
> lib/kramdown/parser/html.rb 
> 
> commit cd253a5e9d4dcfe55c12caf9257e4f1fb6113943 
> Author: Thomas Leitner <[email protected]> 
> Date: Sun Dec 11 15:40:35 2011 +0100 
> 
>  Fixed warnings on Ruby 1.9.3 
> 
> lib/kramdown/converter/html.rb 
> lib/kramdown/parser/html.rb 
> lib/kramdown/parser/kramdown.rb 
> lib/kramdown/parser/kramdown/header.rb 
> lib/kramdown/parser/kramdown/html.rb 
> lib/kramdown/parser/kramdown/smart_quotes.rb 
> test/test_files.rb 
> 
> commit e71cc414755e51c3336551e3f011f2f39ea601ee 
> Author: Thomas Leitner <[email protected]> 
> Date: Sun Dec 11 15:32:52 2011 +0100 
> 
>  Fixed test cases to correctly behave with new footnote rel output 
> 
> test/testcases/block/12_extension/options.html 
> test/testcases/block/12_extension/options2.html 
> test/testcases/block/14_table/table_with_footnote.html 
> 
> commit b3b2ebc233160f4f649f0d0aed070d7540781c4f 
> Merge: a58ba5b ef70112 
> Author: gettalong <[email protected]> 
> Date: Sun Dec 11 06:26:18 2011 -0800 
> 
>  Merge pull request #4 from joefiorini/master 
>  
>  HTML5 Compatibility for Footnotes 
>  
>  Replacing the rev='footnote' with rel='reference'. 
> 
> commit a58ba5b364081e896e2a49cc06db5aec643f8bb4 
> Author: Thomas Leitner <[email protected]> 
> Date: Sun Dec 11 12:38:37 2011 +0100 
> 
>  Fixed bug RF#29426: Content of <style> tags is treated as raw text now 
> 
> lib/kramdown/parser/html.rb 
> test/testcases/block/09_html/parse_as_raw.html 
> test/testcases/block/09_html/parse_as_raw.htmlinput 
> test/testcases/block/09_html/parse_as_raw.text 
> 
> commit 14800a606565ff7d1759fea9815be1f9eff9b633 
> Author: Thomas Leitner <[email protected]> 
> Date: Sun Dec 11 12:27:52 2011 +0100 
> 
>  Fixed bug RF#29350: Parsing of HTML tags with mismatched case now works 
> 
> lib/kramdown/parser/html.rb 
> lib/kramdown/parser/kramdown/html.rb 
> test/test_files.rb 
> test/testcases/block/09_html/parse_as_raw.htmlinput 
> test/testcases/block/09_html/parse_as_raw.text 
> test/testcases/block/09_html/parse_as_span.htmlinput 
> test/testcases/block/09_html/parse_as_span.text 
> test/testcases/block/09_html/parse_block_html.text 
> test/testcases/span/05_html/normal.html 
> test/testcases/span/05_html/normal.text 
> 
> commit b585efb3086c3462a573b57d060dfd203070bcc1 
> Merge: 64a4e7e 3a72b72 
> Author: Thomas Leitner <[email protected]> 
> Date: Sat Sep 24 14:41:34 2011 +0200 
> 
>  Merge branch 'master' of github.com:gettalong/kramdown 
> 
> commit 3a72b72564d4f788fa1423dd8eb1089e355b0a4c 
> Merge: e6c1b12 df5e705 
> Author: gettalong <[email protected]> 
> Date: Sat Sep 24 05:28:10 2011 -0700 
> 
>  Merge pull request #5 from jacius/span 
>  
>  span tags must have a separate closing tag to be valid HTML. 
> 
> commit e6c1b12fa45c7b3284c4b41247ade9ff4b4379a4 
> Merge: 9188906 1270445 
> Author: gettalong <[email protected]> 
> Date: Sat Sep 24 05:24:32 2011 -0700 
> 
>  Merge pull request #6 from postmodern/patch-1 
>  
>  Fixed a typo. --output not --ouput 
> 
> commit 12704459192bdcbf9b02d1d90483c8d835f3e9f1 
> Author: Postmodern <[email protected]> 
> Date: Thu Aug 4 18:57:59 2011 -0700 
> 
>  Fixed a typo. --output not --ouput 
> 
> bin/kramdown 
> 
> commit df5e705ef41ca2c47b5b0d54509cdfb80c2d5f4d 
> Author: John Croisant <[email protected]> 
> Date: Sun Jul 10 23:52:35 2011 -0500 
> 
>  span tags must have a separate closing tag to be valid HTML. 
>  
>  "<span />" is invalid markup in HTML 4 and 5, but valid in XHTML. 
>  "<span></span>" is valid in all three, so it should be used instead. 
> 
> lib/kramdown/converter/html.rb 
> test/testcases/span/05_html/normal.html 
> test/testcases/span/05_html/normal.text 
> 
> commit ef7011229e7d93c31c22468e5cfd797051ac280c 
> Author: Joe Fiorini <[email protected]> 
> Date: Wed May 11 02:08:38 2011 -0400 
> 
>  Replace rev attribute for HTML5 compatibility 
> 
> lib/kramdown/converter/html.rb 
> test/testcases/span/04_footnote/footnote_nr.html 
> test/testcases/span/04_footnote/markers.html 
> 
> commit 64a4e7e61da0d720ffd702fd6c45cefafc568d24 
> Author: Thomas Leitner <[email protected]> 
> Date: Tue May 10 20:47:16 2011 +0200 
> 
>  Added a TOC converter 
>  
>  The TOC converter can be used to get an element tree containing the 
>  table of contents. Since it uses a custom element type the resulting 
>  tree cannot be fed directly to any converter. 
> 
> doc/news/release_0_X_X.page 
> lib/kramdown/converter.rb 
> lib/kramdown/converter/toc.rb 
> 
> commit 5ed13d24d9375771e3a0bd0d4fbe779d0043563b 
> Author: Thomas Leitner <[email protected]> 
> Date: Tue May 10 07:42:23 2011 +0200 
> 
>  Extracted Element class into own file and made some small doc fixes 
> 
> lib/kramdown/document.rb 
> lib/kramdown/element.rb 
> 
###### liquid 2.2.2 -> 2.3.0 ###### 
1c1,16 
< 2.2.1/2010-08-23 
--- 
> # Liquid Version History 
> 
> ## 2.3.0 
> 
> * Several speed/memory improvements 
> * Numerous bug fixes 
> * Added support for MRI 1.9, Rubinius, and JRuby 
> * Added support for integer drop parameters 
> * Added epoch support to `date` filter 
> * New `raw` tag that suppresses parsing 
> * Added `else` option to `for` tag 
> * New `increment` tag 
> * New `split` filter 
> 
> 
> ## 2.2.1/2010-08-23 
5c20,21 
< 2.2.0/2010-08-22 
--- 
> 
> ## 2.2.0/2010-08-22 
10c26,27 
< 1.9.0/2008-03-04 
--- 
> 
> ## 1.9.0/2008-03-04 
15,17d31 
< Before 1.9.0 
< 
< * Added If with or/and expressions 
19c33 
< * Implemented .to_liquid for all objects which can be passed to liquid like Strings Arrays Hashes Numerics and Booleans. To export new objects to liquid just implement .to_liquid on them and return objects which themselves have .to_liquid methods. 
--- 
> ## Before 1.9.0 
20a35,36 
> * Added If with or/and expressions 
> * Implemented .to_liquid for all objects which can be passed to liquid like Strings Arrays Hashes Numerics and Booleans. To export new objects to liquid just implement .to_liquid on them and return objects which themselves have .to_liquid methods. 
22d37 
< 
24d38 
< 
26d39 
< 
28d40 
< 
30d41 
< 
32d42 
< 
34d43 
< 
36d44 
< 
38,42c46,47 
< 
< {{ 'Typo' | link_to: 'http://typo.leetsoft.com', 'Typo - a modern weblog engine' }} 
< 
< 
< * Added Liquid::Drop. A base class which you can use for exporting proxy objects to liquid which can acquire more data when used in liquid. [Tobias Luetke] 
--- 
>  {{ 'Typo' | link_to: 'http://typo.leetsoft.com', 'Typo - a modern weblog engine' }} 
> * Added Liquid::Drop. A base class which you can use for exporting proxy objects to liquid which can acquire more data when used in liquid. [Tobias Luetke] 
48c53 
< end 
--- 
> end 
51,52d55 
< 
< 
###### multi_json 1.0.4 -> 1.1.0 ###### 
Missing changelogs 
###### rack 1.3.2 -> 1.4.1 ###### 
Missing changelogs 
###### rake 0.9.2 -> 0.9.2.2 ###### 
Missing changelogs 
###### rb-fsevent 0.4.3.1 -> 0.9.0 ###### 
Missing changelogs 
###### sass 3.1.5 -> 3.1.15 ###### 
Missing changelogs 
###### stringex 1.3.0 -> 1.3.2 ###### 
Missing changelogs 
###### tilt 1.3.2 -> 1.3.3 ###### 
Missing changelogs 
+1

令人驚歎的工作!我想知道他們是否會考慮將此功能添加爲一種功能,以使「捆綁過時」變得更加有用! – swrobel 2012-03-07 17:54:35

+0

非常好。我不得不更新GemDetails正則表達式來工作一個時髦的版本號:'match = str.match(/(\ S +)\((\ d +(\。\ d +)+)/)' – MattyB 2015-04-20 13:28:34

0

這並不完全回答你的問題,但它可能有助於瞭解寶石版本號如何工作。根據規範,寶石版本中的三個數字中的第一個應該告訴你該寶石是否保證向後兼容。

例如,如果您從一些gem版本3.1.0開始您的項目,它應該與任何3.x.x版本的gem兼容。根據規範,「第3類變更(不兼容)將增加主版本號和復位輕微和內部版本號」

看到這裏的細節:http://docs.rubygems.org/read/chapter/7

您也可能會發現這個職位有關凍結寶石版本來測試新的有用:https://stackoverflow.com/a/2147227/834512

+0

如果只大家都遵守這個慣例...... – swrobel 2012-03-03 07:50:31

0

新的bundle outdated命令是否適合您的需求?

http://patshaughnessy.net/2011/11/5/besides-being-faster-what-else-is-new-in-bundler-1-1

最有用和最重要的捆紮機1.1引入了新的命令是捆綁過時,這將確定組合中的過時的寶石 - 這是針對其存在可

較新版本的寶石
+0

感謝您的提示。這是一個開始,但我希望有一些東西能夠真正查看gem中的CHANGELOG文件,併爲我進行總結。 – swrobel 2012-03-03 07:48:42

0

還有一個很好的Web服務是免費的對於公開的開源項目(可用github服務鉤子):http://Gemnasium.com

它檢查哪些gem是最新的並提供有關哪些版本之間發生變化的電子郵件通知(github標記比較差異)。

+0

我見過Gemnasium,但最後我檢查了它沒有真正解析changelogs/news/history文件,並向你展示了改變的內容摘要。沒有人有時間看看所有寶石版本之間的實際差異。 – swrobel 2012-07-12 18:14:57

+0

這是正確的我一直在考慮建議Gearsium對CHANGELOG.md進行差異化處理 所以我給他們發了一封郵件,引用了這個線程在stackoverflow上 – Murdoch 2012-07-13 14:23:44

+0

他們回覆得很快,並說:「我們目前正在使用一個約定文檔我們將盡快與ruby社區分享 這個想法是提出一個通用模式來編寫更新日誌,並允許開發人員在其中引發可分析的警告(特別是對於安全問題)。 一旦我們發佈第一個測試版本,我就會ping你。它會保持測試版以獲取來自社區的想法和反饋。 回購將在這裏舉行:https://github.com/tech-angels/vandamme「 – Murdoch 2012-07-13 14:58:06