13.0.6

13.0.5

13.0.4

13.0.3

13.0.2

增强功能

13.0.1

缺陷修复

13.0.0

增强功能

兼容性更改

12.3.3

缺陷修复

增强功能:

12.3.2

缺陷修复

增强功能:

12.3.1

缺陷修复

增强功能:

12.3.0

兼容性更改

增强功能:

12.2.1

缺陷修复

12.2.0

增强功能:

缺陷修复

12.1.0

增强功能:

缺陷修复

12.0.0

兼容性更改

增强功能:

11.3.0 / 2016-09-20

增强功能:

11.2.2 / 2016-06-12

缺陷修复

11.2.1 / 2016-06-12

缺陷修复

11.2.0 / 2016-06-11

缺陷修复

增强功能

11.1.2 / 2016-03-28

缺陷修复

11.1.1 / 2016-03-14

缺陷修复

11.1.0 / 2016-03-11

兼容性更改

11.0.1 / 2016-03-09

缺陷修复

11.0.0 / 2016-03-09

缺陷修复

增强功能

兼容性更改

10.5.0 / 2016-01-13

增强功能

10.4.2 / 2014-12-02

缺陷修复

10.4.1 / 2014-12-01

缺陷修复

10.4.0 / 2014-11-22

增强功能

缺陷修复

10.3.2 / 2014-05-15

缺陷修复

10.3.1 / 2014-04-17

缺陷修复

10.3 / 2014-04-15

增强功能

缺陷修复

10.2.2 / 2014-03-27

缺陷修复

10.2.1 / 2014-03-25

缺陷修复

10.2.0 / 2014-03-24

增强功能

缺陷修复

10.1.1

10.1.0

更改

新功能
Bug 修复

Bug 修复包括

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁,提出了建议或提供了其他有益的评论。感谢 …

– Jim Weirich

10.0.3

"Jim, when will Rake reach version 1.0?"

在过去的几年中,我曾在会议、小组讨论和推特上被问到这个问题。由于历史原因(或者可能只是纯粹的懒惰),Rake (不正确地) 将版本的第二个数字视为主要发行版本号。所以在我的头脑中,Rake 已经到了 9 版本。

好吧,是时候解决问题了。下一个版本的 Rake 放弃了旧的、粗糙的、向后兼容的黑客行为,例如顶级常量、在 Object 中定义的 DSL 方法以及其他许多不再需要的功能。现在也是时候从版本号中删除前导零,并将这个新版本的 rake 称为它真正的版本:10 版本。

所以,欢迎使用 Rake 10.0!

Rake 10 实际上与最新版本的 Rake 9(即版本号为 0.9.3 的版本)在功能上是相同的,除了 Rake 10 放弃了多年来积累的所有各种已弃用的功能。

如果您的 Rakefile 是最新的并且与 Rake 10 的所有新功能保持一致,那么您就可以开始了。如果您的 Rakefile 仍然使用一些已弃用的功能,请随意使用具有相同功能集的 Rake 9 (0.9.3)。请注意,未来的功能将位于 Rake 10 系列中。

更改

如上所述,Rake 10 中没有新功能。但是,缺少许多功能

有一个小的行为更改

更改(从 0.9.3、0.9.4、0.9.5)

由于 Rake 10 包括了最新版本 Rake 9 中的更改,我们将在此处重复 0.9.3 到 0.9.5 版本的更改。

新功能(在 0.9.3 中)
Bug 修复(在 0.9.3 中)
Bug 修复(在 0.9.4 中)
Bug 修复(在 0.9.5 中)

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁,提出了建议或提供了其他有益的评论。感谢 …

此外,非常感谢 Eric Hodel 协助完成此版本的发布。

– Jim Weirich

10.0.2

更改

Bug 修复

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁,提出了建议或提供了其他有益的评论。感谢 …

此外,非常感谢 Eric Hodel 协助完成此版本的发布。

– Jim Weirich

10.0.1

更改

Bug 修复

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁,提出了建议或提供了其他有益的评论。感谢 …

此外,非常感谢 Eric Hodel 协助完成此版本的发布。

– Jim Weirich

10.0.0

"Jim, when will Rake reach version 1.0?"

在过去的几年中,我曾在会议、小组讨论和推特上被问到这个问题。由于历史原因(或者可能只是纯粹的懒惰),Rake (不正确地) 将版本的第二个数字视为主要发行版本号。所以在我的头脑中,Rake 已经到了 9 版本。

好吧,是时候解决问题了。下一个版本的 Rake 放弃了旧的、粗糙的、向后兼容的黑客行为,例如顶级常量、在 Object 中定义的 DSL 方法以及其他许多不再需要的功能。现在也是时候从版本号中删除前导零,并将这个新版本的 rake 称为它真正的版本:10 版本。

所以,欢迎使用 Rake 10.0!

Rake 10 实际上与最新版本的 Rake 9(即版本号为 0.9.3 的版本)在功能上是相同的,除了 Rake 10 放弃了多年来积累的所有各种已弃用的功能。

如果您的 Rakefile 是最新的并且与 Rake 10 的所有新功能保持一致,那么您就可以开始了。如果您的 Rakefile 仍然使用一些已弃用的功能,请随意使用具有相同功能集的 Rake 9 (0.9.3)。请注意,未来的功能将位于 Rake 10 系列中。

10.0 中的更改

如上所述,Rake 10 中没有新功能。但是,缺少许多功能

有一个小的行为更改

更改(从 0.9.3 开始)

由于 Rake 10 包括了最新版本 Rake 9 中的更改,我们将在此处重复 0.9.3 版本的更改。

新功能
Bug 修复

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁,提出了建议或提供了其他有益的评论。感谢 …

此外,非常感谢 Eric Hodel 协助完成此版本的发布。

– Jim Weirich

0.9.6

Rake 0.9.6 版本包含许多修复程序,主要用于将 Rake 合并到 Ruby 源代码树中并修复测试。

更改

Bug 修复 (0.9.6)

为更好地与 Ruby 源代码树集成而进行的更改

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁、提出了建议或提供了其他有益的评论。感谢 …

此外,非常感谢 Eric Hodel 协助完成此版本的发布。

– Jim Weirich

0.9.5

Rake 0.9.5 版本包含许多错误修复。

更改

Bug 修复 (0.9.5)

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁、提出了建议或提供了其他有益的评论。感谢 …

此外,非常感谢 Eric Hodel 协助完成此版本的发布。

– Jim Weirich

0.9.4

Rake 0.9.4 版本包含许多错误修复。

更改

Bug 修复 (0.9.4)

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁、提出了建议或提供了其他有益的评论。感谢 …

此外,非常感谢 Eric Hodel 协助完成此版本的发布。

– Jim Weirich

0.9.3

Rake 版本 0.9.3 包含一些新的、向后兼容的功能以及一些 bug 修复。

更改

新功能
Bug 修复

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁、提出了建议或提供了其他有益的评论。感谢 …

此外,非常感谢 Eric Hodel 协助完成此版本的发布。

– Jim Weirich

Rake 0.9.2.2

Rake 版本 0.9.2.2 主要进行的是 bug 修复。

更改

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁、提出了建议或提供了其他有益的评论。感谢 …

此外,还要感谢 Eric Hodel 协助发布此版本(“协助”包括但不限于“推动”我完成它)。

– Jim Weirich

0.9.2

Rake 版本 0.9.2 有一些小修复。详见下文。

更改

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁、提出了建议或提供了其他有益的评论。感谢 …

此外,还要感谢 Eric Hodel 协助发布此版本(“协助”包括但不限于“推动”我完成它)。

– Jim Weirich

0.9.1

Rake 版本 0.9.1 有许多 bug 修复和增强功能(详见下文)。此外,内部结构已略作调整和改进。

更改

Rake 0.9.1 添加回全局 DSL 方法,但带有弃用消息。这允许 Rake 0.9.1 与带有警告消息的较旧的 rakefile 一起使用。

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁、提出了建议或提供了其他有益的评论。感谢 …

此外,还要感谢 Eric Hodel 协助发布此版本(“协助”包括但不限于“推动”我完成它)。

– Jim Weirich

0.9.0

Rake 版本 0.9.0 有许多 bug 修复和增强功能(详见下文)。此外,内部结构已略作调整和改进。

更改

0.9.0 版本中的新功能/增强功能/Bug 修复

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁、提出了建议或提供了其他有益的评论。感谢 …

此外,还要感谢 Eric Hodel 协助发布此版本(“协助”包括但不限于“推动”我完成它)。

– Jim Weirich

0.8.7

Rake 版本 0.8.5 引入了对在 Windows 上执行命令的极大改进的支持。“sh”命令现在在 Windows 上具有与在基于 Unix 的平台上相同的语义。

Rake 版本 0.8.6 包括对 RDoc 生成的细微修复。Rake 版本 0.8.7 包括对在 Windows 上运行的 JRuby 的细微修复。

更改

0.8.5 版本中的新功能/增强功能
0.8.5 版本中的 Bug 修复

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁、提出了建议或提供了其他有益的评论。感谢 …

– Jim Weirich

0.8.6

Rake 版本 0.8.5 引入了对在 Windows 上执行命令的极大改进的支持。“sh”命令现在在 Windows 上具有与在基于 Unix 的平台上相同的语义。

Rake 版本 0.8.5 包括对 RDoc 生成的细微修复。

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁、提出了建议或提供了其他有益的评论。感谢 …

– Jim Weirich

0.8.5

Rake 版本 0.8.5 是 Rake 的新版本,它极大地改进了对在 Windows 上执行命令的支持。“sh”命令现在在 Windows 上具有与在基于 Unix 的平台上相同的语义。

更改

0.8.5 版本中的新功能/增强功能
0.8.5 版本中的 Bug 修复

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁、提出了建议或提供了其他有益的评论。感谢 …

– Jim Weirich

0.8.4

Rake 版本 0.8.4 是 rake 的 bug 修复版本。

注意:Ruby 1.9 附带的 Rake 版本已发生差异

slightly from the core Rake code base.  Rake 0.8.4 will work
with Ruby 1.9, but is not a strict upgrade for the Rake that
comes with Ruby 1.9.  A (near) future release of Rake will unify
those two codebases.

写信活动

感谢 Aaron Patterson (@tenderlove) 和 Eric Hodel (@drbrain) 在组织写信活动中给予的鼓励性支持,该活动旨在游说发布 Rake 0.8.4 的“无警告”版本。特别要感谢 Jonathan D. Lord, Sr (Dr. Wingnut),他的明信片是第一个真正到达我手中的。(有关详细信息,请参阅 tenderlovemaking.com/2009/02/26/we-need-a-new-version-of-rake/)

更改

0.8.4 版本中的新功能/增强功能
0.8.4 版本中的 Bug 修复
0.8.4 版本中的基础设施改进

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁、提出了建议或提供了其他有益的评论。感谢 …

– Jim Weirich

0.8.3

Rake 版本 0.8.3 是 rake 的 bug 修复版本。

更改

0.8.3 版本中的 Bug 修复

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁、提出了建议或提供了其他有益的评论。感谢 …

– Jim Weirich

0.8.2

Rake 版本 0.8.2 是 rake 的新版本,其中包含许多新功能和大量 bug 修复。

更改

0.8.2 版本中的新功能
0.8.2 版本中的 Bug 修复

0.8.2 版本中的其他更改

任务参数示例

在 0.8.0 版本之前,rake 只能处理通过 ENV 哈希传递给 Rake 的 NAME=VALUE 形式的命令行参数。许多人要求使用某种简单的命令行参数,可能使用 “–” 来分隔命令行中的常规任务名称和参数值。问题在于,没有简单的方法可以将命令行中的位置参数与不同的任务关联起来。假设任务 :a 和 :b 都需要一个命令行参数:第一个值应该与 :a 关联吗?如果 :b 先运行呢?它应该获取第一个命令行参数吗?

Rake 0.8.0 通过将值直接传递给需要它们的任务来解决这个问题。例如,如果我有一个需要版本号的发布任务,我可以这样说

rake release[0.8.2]

字符串 “0.8.2” 将被传递给 :release 任务。可以通过逗号分隔传递多个参数,例如

rake name[john,doe]

请注意一些事项。rake 任务名称及其参数需要是 rake 的单个命令行参数。这通常意味着没有空格。如果需要空格,则整个 rake + 参数字符串应该用引号引起来。类似这样

rake "name[billy bob, smith]"

(不同操作系统和 shell 之间的引号规则有所不同,因此请务必查阅您的操作系统/shell 的相应文档)。

需要参数的任务

参数仅传递给设置为需要参数的任务。为了处理命名参数,任务的任务声明语法已略作扩展。

例如,需要名字和姓氏的任务可以声明为

task :name, :first_name, :last_name

第一个参数仍然是任务的名称(在本例中为 :name)。接下来的两个参数是 :name 期望的参数名称(例如中的 :first_name 和 :last_name)。

为了访问参数的值,定义任务行为的代码块现在可以接受第二个参数

task :name, :first_name, :last_name do |t, args|
  puts "First name is #{args.first_name}"
  puts "Last  name is #{args.last_name}"
end

代码块的第一个参数 “t” 始终绑定到当前任务对象。第二个参数 “args” 是一个类似于 open-struct 的对象,允许访问任务参数。传递给任务的额外命令行参数将被忽略。缺少的命令行参数将被赋予 nil 值。

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁、提出了建议或提供了其他有益的评论。感谢 …

– Jim Weirich

0.8.0/0.8.1

Rake 0.8.0 版本是 rake 的一个新版本,其中包含几个新功能。

更改

0.8.0 版本中的新功能

0.8.1 版本是一个次要更新,其中包含其他 Ruby 1.9 兼容性修复。

任务参数示例

在 0.8.0 版本之前,rake 只能处理通过 ENV 哈希传递给 Rake 的 NAME=VALUE 形式的命令行参数。许多人要求使用某种简单的命令行参数,可能使用 “–” 来分隔命令行中的常规任务名称和参数值。问题在于,没有简单的方法可以将命令行中的位置参数与不同的任务关联起来。假设任务 :a 和 :b 都需要一个命令行参数:第一个值应该与 :a 关联吗?如果 :b 先运行呢?它应该获取第一个命令行参数吗?

Rake 0.8.0 通过将值直接传递给需要它们的任务来解决这个问题。例如,如果我有一个需要版本号的发布任务,我可以这样说

rake release[0.8.0]

字符串 “0.8.0” 将被传递给 :release 任务。可以通过逗号分隔传递多个参数,例如

rake name[john,doe]

请注意一些事项。rake 任务名称及其参数需要是 rake 的单个命令行参数。这通常意味着没有空格。如果需要空格,则整个 rake + 参数字符串应该用引号引起来。类似这样

rake "name[billy bob, smith]"

(不同操作系统和 shell 之间的引号规则有所不同,因此请务必查阅您的操作系统/shell 的相应文档)。

需要参数的任务

参数仅传递给设置为需要参数的任务。为了处理命名参数,任务的任务声明语法已略作扩展。

例如,需要名字和姓氏的任务可以声明为

task :name, :first_name, :last_name

第一个参数仍然是任务的名称(在本例中为 :name)。接下来的两个参数是 :name 期望的参数名称(例如中的 :first_name 和 :last_name)。

为了访问参数的值,定义任务行为的代码块现在可以接受第二个参数

task :name, :first_name, :last_name do |t, args|
  puts "First name is #{args.first_name}"
  puts "Last  name is #{args.last_name}"
end

代码块的第一个参数 “t” 始终绑定到当前任务对象。第二个参数 “args” 是一个类似于 open-struct 的对象,允许访问任务参数。传递给任务的额外命令行参数将被忽略。缺少的命令行参数将被赋予 nil 值。

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁、提出了建议或提供了其他有益的评论。感谢 …

– Jim Weirich

0.7.3

Rake 0.7.3 版本是一个次要版本,其中包含一些重构,以更好地支持自定义 Rake 应用程序。

更改

0.7.3 版本中的新功能

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁、提出了建议或提供了其他有益的评论。感谢 …

– Jim Weirich

0.7.2

0.7.2 版本提供了一个错误修复和一些小的改进。特别是,新版本修复了与即将发布的 Ruby 1.8.6 的不兼容性。我们强烈建议升级到 Rake 0.7.2,以便与新版本的 Ruby 兼容。

更改

0.7.2 中的错误修复

在新的 0.7.2 版本 Rake 中有相当多的错误修复

0.7.2 中的新功能

以下新功能在 Rake 0.7.2 版本中可用

内部 Rake 改进

以下更改主要是内部改进和重构,对最终用户几乎没有影响。但它们可能引起公众的兴趣。

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁、提出了建议或提供了其他有益的评论。感谢 …

– Jim Weirich

0.7.1

0.7.1 版本提供了一个错误修复和一些小的改进。

更改

0.7.1 中的错误修复
0.7.1 中的新功能

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁、提出了建议或提供了其他有益的评论。感谢 …

– Jim Weirich

0.7.0

Rake 的这些更改已经酝酿了很长时间。它们在这里,我希望你喜欢它们。

更改

新功能
Bug 修复
命名空间

任务现在可以嵌套在自己的命名空间中。一个命名空间内的任务不会意外地干扰另一个命名空间中命名的任务。

例如

namespace "main" do
  task :build do
    # Build the main program
  end
end

namespace "samples" do
  task :build do
    # Build the sample programs
  end
end

task :build_all => ["main:build", "samples:build"]

尽管这两个任务都名为 :build,但它们是各自命名空间中的单独任务。:build_all 任务(在顶层命名空间中定义)在其先决条件中引用了这两个 build 任务。

您可以使用以下命令调用每个单独的 build 任务

rake main:build
rake samples:build

或通过 :build_all 命令调用两者

rake build_all

命名空间可以任意嵌套。由于文件任务的名称对应于外部文件系统中的文件名,因此 FileTask 不受命名空间的影响。

有关更多信息,请参见 Rakefile 格式文档(在 Rake API 文档中)。

并行任务

有时,您有几个可以并行执行的任务。通过将这些任务指定为 multitask 任务的先决条件。

在以下示例中,任务 copy_src、copy_doc 和 copy_bin 将在其自己的线程中并行执行。

multitask :copy_files => [:copy_src, :copy_doc, :copy_bin] do
  puts "All Copies Complete"
end

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁、提出了建议或提供了其他有益的评论。感谢 …

– Jim Weirich

0.6.1

0.6.0

是时候进行一些期待已久的增强功能和大量的错误修复了……以及一个全新的网页。

新网页

rake 的主要文档已从基于 RubyForge 的 wiki 迁移到其自己的基于 Hieraki 的网站。wiki 上不断的垃圾邮件使其难以保持清洁。新网站将更容易更新和组织。

请查看新文档:docs.rubyrake.org

我们将随着时间的推移向该网站添加新文档。

除了新的文档页面外,请务必查看 Martin Fowler 关于 rake 的文章:martinfowler.com/articles/rake.html

更改

新功能
一些不兼容性
Bug 修复

感谢

像往常一样,是用户的意见推动了这些更改。以下人员贡献了补丁、提出了建议或提供了其他有益的评论。感谢 …

– Jim Weirich

0.5.4

是时候进行一些小的错误修复和小的增强了

更改

以下是 0.5.4 版本的更改 …

感谢

像往常一样,用户的输入推动了许多这些更改。感谢 …

– Jim Weirich

0.5.3

尽管自上次发布以来仅过了两周,但我们对 Rake 程序进行了足够的更新,因此是时候进行另一次发布了。

更改

以下是 0.5.3 版本的更改 …

感谢

像往常一样,用户的输入推动了许多这些更改。感谢 …

– Jim Weirich

0.5.0

经过漫长的等待,我们终于有了一个新的 Rake 版本可用。

更改

感谢

很多人为这个版本提供了意见。感谢 Tilman Sauerbeck 提供了许多补丁、文档修复和建议。并感谢他推动我发布此版本。此外,感谢 Brian Candler 发现并修复了 –trace/dry-run 修复。那是一个晦涩的错误。还要感谢 Eric Hodel 提出了一些好的建议。

– Jim Weirich

0.4.15

更改

0.4.15 版本是对 Ruby 1.8.2 兼容性更改的错误修复更新。此版本包括

迷你路线图

我将继续在 0.4.xx 系列中发布 Rake 更新,因为新的 Ruby-1.8.2 问题会显现出来。一旦代码库稳定下来,我将发布一个包含所有更改的 0.5.0 版本。如果您没有使用 Ruby-1.8.2 并希望避免版本动荡,我建议保留 Rake-0.4.14 之前的版本。

0.4.14

0.4.14 版本是一个兼容性修复,允许 Rake 的测试任务在 Ruby 1.8.2 下工作。Test::Unit 的自动运行功能中的更改阻止 Rake 运行任何测试。此版本修复了该问题。

对于任何使用 Ruby 1.8.2 的人,推荐使用 Rake 0.4.14 版本。

0.4.13

0.4.12

0.4.11

0.4.10

0.4.9

0.4.8

0.4.7

0.4.6

0.4.5

0.4.4

0.4.3

0.4.2

0.4.1

0.4.0

0.3.2.x

0.3.2

0.3.1

0.3.0

提升为 0.2.10。

0.2.10

常规

RDoc 问题

包任务库问题

FileList 问题

0.2.9

此版本包含许多更改,因为正在准备 RubyConf.new(2003) 演示文稿。这些更改包括

0.2.7

0.2.6

0.2.5

0.2.4

0.2.3