2012-02-27 19 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