2006 年 8 月 30 日星期三

Capistrano 1.1.9 (beta)

jamis 发布

Capistrano 的新版本即将问世!不过,在我向全世界发布之前,我想让一些勇敢的灵魂对其进行测试,所以我准备在正式发布前进行一次简要的试运行。您可以从 Rails beta gem server 获取它

gem install -s http://gems.rubyonrails.com capistrano

此版本中有很多更改,其中大多数是次要的或外观上的。然而,也有一些更改可能会影响到您。

最可能影响您的重大更改与用于setupupdate_coderollback_codesymlink 任务的角色相关。这些任务已经更改,现在它们部署到所有已定义的服务器。没错,如果您有任何服务器与任何角色关联,则这些任务都会部署到该服务器。但是,服务器可以通过在其角色定义中设置 :no_release => true 来明确退出发布部署

   role :file, "file-server.somewhere.example",
        :no_release => true

请注意!如果您有任何服务器使用非标准角色(web、app 或 db 之外的任何角色),则需要在其角色定义中明确添加 :no_release => true,否则下次部署也会针对这些服务器。

可能会或可能不会困扰您的其他重大更改

  • -r/--recipe 命令行选项已弃用。您应该使用 -f/--file。
  • Matthew Elder 为 Mercurial SCM 贡献(并同意维护)了一个模块。
  • 如果您在非标准位置有 sudo,则可以通过 :sudo 变量指定 sudo 的路径
  • 已添加 :svn_passphrase,以便您可以使用带密码的密钥
  • 修复了 CVS 模块中 :local 默认值缺失的问题
  • Subversion SCM 现在接受 HTTPS 证书
  • 使用基于 pid 的设置工作(新的生成器/收割器)
  • 添加了更新任务
  • 任务声明中添加了 :except(作为 :only 的反义词)
  • 通过 HOSTS 环境变量重写要为任务使用的主机
  • 通过 ROLES 环境变量重写将用于任务的角色
  • 任务声明中添加了 :hosts 选项,用于定义仅在特定计算机上(而不是按角色)工作的任务
  • 不要求 capfile(这允许您使用 capistrano 在任意主机上操作,全部来自命令行)

还进行了其他各种更改——您可以在 CHANGELOG 中查看完整列表。