博客
返回博客帖子
2011 年 5 月 1 日
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
现在可以恢复已移除缓存宝石的非最新宝石。