RubyGems 导航菜单

博客

返回博客帖子

1.8.0 发布

此版本专注于正确封装功能。大部分工作集中在将 Gem::SourceIndex 和 Gem::GemPathSearcher 中的功能移到其所属的 Gem::Specification。

安装 RubyGems 1.8.0 后,您将在加载现有宝石时看到弃用通知。运行 gem pristine --all --no-extensions 安全地重新生成宝石规范。

目前,RubyGems 不会保存构建具有扩展名的宝石时使用的构建参数。您需要运行 gem pristine gem_with_extension -- --build-arg 为需要特殊构建参数的扩展名重新生成宝石。

  • 24(+) 个弃用部件(太棒了!)

    • DependencyList.from_source_index 弃用了 source_index 参数。
    • 弃用 Dependency.new(/regex/)。
    • 弃用 Gem.searcher。
    • 弃用 Gem.source_index 和 Gem.available?
    • 弃用 Gem: activate_dep、activate_spec、activate、report_activate_error 和 required_location。
    • 弃用 Gem::all_partials
    • 弃用 Gem::cache_dir
    • 弃用 Gem::cache_gem
    • 弃用 Gem::default_system_source_cache_dir
    • 弃用 Gem::default_user_source_cache_dir
    • 弃用 Platform#empty?
    • 弃用 Specification.cache_gem
    • 弃用 Specification.installation_path
    • 弃用 Specification.loaded、loaded? 和 loaded=
    • 弃用 Gem::SourceIndex 的全部。
    • 弃用 Gem::GemPathSearcher 的全部。
    • 弃用 Gem::Specification#default_executable。
  • 2 项重大增强

    • Gem::SourceIndex 功能已移至 Gem::Specification。Gem::SourceIndex 完全与 Gem::Specification 分离
    • 对 GemPathSearcher 进行了彻底的重构。RIPMF
  • 41 项次要增强

    • 添加 CommandManager#unregister_command
    • 添加 Dependency#matching_specs + to_specs。
    • 添加 Dependency#to_spec
    • 添加 Gem.pre_reset_hook/s 和 post_reset_hook/s。
    • 添加 GemCommand.reset 以重新初始化单例
    • 添加 Specification#activate。
    • 添加 Specification#activated、activated= 和 activated?
    • 添加 Specification#base_dir。
    • 添加 Specification#bin_dir 和 bin_file。
    • 添加 Specification#cache_dir 和 cache_file。別名 cache_gem。
    • 添加 Specification#doc_dir 和 ri_dir。
    • 添加 Specification#find(name_or_dep, *requirements)。
    • 添加 Specification#gem_dir 和 gems_dir。
    • 添加 Specification#spec_dir 和 spec_file。
    • 添加 Specification.add_spec、add_specs 和 remove_spec。
    • 添加 Specification.all=。如果您使用它,我们会让它付之一炬。
    • 已添加 Specification.all_names。
    • 已添加 Specification.dirs 和 dirs=。dirs= 重置。
    • 已添加 Specification.find_all_by_name(name, *reqs)
    • 已添加 Specification.latest_specs。非常小巧!
    • 已添加 TestCase#all_spec_names 以帮助清理测试
    • 已添加 TestCase#assert_path_exists 和 refute_path_exists。将移动到 minitest。
    • Gem.sources 不再尝试加载源宝石。仅使用 default_sources。
    • 安装程序不再接受 source_index 选项。
    • 更多低级集成。
    • 已删除 Gem::FileOperations,因为它是一个虚拟类
    • 已删除注释,因为我愚蠢
    • 已删除 pkgs/sources/lib/sources.rb
    • 已将索引器大修,主要不使用 SourceIndex(旧索引需要它)。
    • 重写了我们最后的函数化测试套件,使其令人满意并且快速
    • RubyGems 现在受 Ruby 许可证或 MIT 许可证保护
    • Specification#== 现在仅检查名称、版本和平台。
    • Specification#authors= 现在强制合并内容(rspec 太糟糕了!没有 cookie!)
    • Specification#eql? 检查所有字段。
    • Specification#installation_path 如果尚未激活,不再引发异常。
    • Specification#validate 现在确保 authors 不为空。
    • TestCase.util_setup_spec_fetcher 不再返回 SourceIndex。
    • 卸载程序不再传递 SourceIndex 实例
    • 在加载错误的规格数组值时发出警告(ntlm-http 宝石在其证书链中带有 nil)
    • gem pristine 现在接受 –no-executables 以跳过恢复带有扩展的宝石。
    • gem pristine 现在可以恢复多个宝石。
  • 6 个错误修复

    • DependencyInstaller 传递 Source_index 实例,但使用了 Gem.source_index。
    • 修复 Platform#== 和 #hash,因此可以将实例用作哈希键。
    • 修复损坏的 Specification#original_platform。它不应该为空。
    • Gem::Text#format_text 现在消除结尾空格
    • 使用 File.expand_path 规范化 LOAD_PATH
    • gem build 错误应退出 1。
    • gem pristine 现在可以恢复已移除缓存宝石的非最新宝石。
fred, the rubygems robot