获取Rails项目中包含的所有gem的更改日志

时间:2012-02-27 18:37:14

标签: ruby ruby-on-rails-3 rubygems gem bundler

我有一个使用bundler的Rails项目。我所包含的许多宝石都是最新版本背后的很多版本。我知道我可以伸出手指并运行bundle update以获取最新版本,考虑到依赖关系,但这可能会破坏我的应用程序中依赖于已弃用的gem方法的部分,并且可能不会值得努力。

有没有办法在Gemfile.lock中的版本集和rubygems上的最新版本之间获取所有捆绑宝石的更改日志?这似乎是一个相当普遍的需求,但我没有&找不到任何解决方案......

4 个答案:

答案 0 :(得分: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 <t_leitner@gmx.at>
> 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 <t_leitner@gmx.at>
> 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 <t_leitner@gmx.at>
> Date:   Sun Feb 19 09:53:03 2012 +0100
> 
>     Small typo fix in quickref
> 
> doc/quickref.page
> 
> commit 4df3c5aaad763cc9d8fd4b129a5cdd245ed5a7f7
> Author: Thomas Leitner <t_leitner@gmx.at>
> 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 <t_leitner@gmx.at>
> 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 <t_leitner@gmx.at>
> Date:   Sun Feb 19 09:35:51 2012 +0100
> 
>     Disabling line numbers in code listings on homepage
> 
> Rakefile
> 
> commit a47a5c49e35f9ccb220dca7b5b8ac7d585026ef6
> Author: Thomas Leitner <t_leitner@gmx.at>
> Date:   Sun Feb 19 09:25:01 2012 +0100
> 
>     Updated copyright notice updating code
> 
> Rakefile
> 
> commit 21ce307a6766d131bf3a61de1142d88b0bd0a8be
> Author: Thomas Leitner <t_leitner@gmx.at>
> 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 <t_leitner@gmx.at>
> 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 <t_leitner@gmx.at>
> 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 <t_leitner@gmx.at>
> 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 <t_leitner@gmx.at>
> 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 <tomykaira@gmail.com>
> 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 <t_leitner@gmx.at>
> 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 <t_leitner@gmx.at>
> 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 <t_leitner@gmx.at>
> Date:   Fri Dec 16 18:40:15 2011 +0100
> 
>     Fix to work with newer RDoc versions
> 
> Rakefile
> 
> commit 2a93cbc0e1bbe705159c645ae617538bad125394
> Author: Thomas Leitner <t_leitner@gmx.at>
> 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 <t_leitner@gmx.at>
> 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 <t_leitner@gmx.at>
> 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 <t_leitner@gmx.at>
> 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 <t_leitner@gmx.at>
> 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 <t_leitner@gmx.at>
> 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 <t_leitner@gmx.at>
> 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 <t_leitner@gmx.at>
> 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 <t_leitner@gmx.at>
> 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 <t_leitner@gmx.at>
> Date:   Sat Sep 24 14:41:34 2011 +0200
> 
>     Merge branch 'master' of github.com:gettalong/kramdown
> 
> commit 3a72b72564d4f788fa1423dd8eb1089e355b0a4c
> Merge: e6c1b12 df5e705
> Author: gettalong <t_leitner@gmx.at>
> 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 <t_leitner@gmx.at>
> 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 <postmodern.mod3@gmail.com>
> Date:   Thu Aug 4 18:57:59 2011 -0700
> 
>     Fixed a typo. --output not --ouput
> 
> bin/kramdown
> 
> commit df5e705ef41ca2c47b5b0d54509cdfb80c2d5f4d
> Author: John Croisant <jacius@gmail.com>
> 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 <joe@faithfulgeek.org>
> 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 <t_leitner@gmx.at>
> 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 <t_leitner@gmx.at>
> 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 :(得分:0)

这并不能完全回答您的问题,但了解Gem版本号的工作原理可能会有所帮助。根据规范,gem版本中的三个数字中的第一个应告诉您宝石是否保证向后兼容。

例如,如果您使用某个gem版本3.1.0启动项目,它应该与任何3.x.x版本的gem兼容。根据规范,“类别3更改(不兼容)将增加主要版本号并重置次要和构建数字”

详情请见此处:http://docs.rubygems.org/read/chapter/7

您可能还会发现有关冻结宝石版本的帖子,以测试有用的新版本:https://stackoverflow.com/a/2147227/834512

答案 2 :(得分:0)

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

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

  

Bundler 1.1中引入的最有用和最重要的新命令是bundle outdated,它将识别你的bundle中过时的gem - 这些是有更新版本的gems

答案 3 :(得分:0)

还有一个很好的Web服务,可以免费用于公共开源项目(可用github服务挂钩):http://Gemnasium.com

它会检查哪些宝石是最新的,并提供概述以及有关版本之间发生变化的电子邮件通知(github标记比较差异)。