Changelog (1.x)

注解

这是旧版1.x结构的更改日志。有关当前(2.0+)更改日志,请参阅 the main changelog .

1.13.1 2016-12-09

  • [Bug] #1462: 使特定于pycrypto的导入和方法调用成为可选的以避免 ImportError 帕拉米科2.x下的问题。多亏了亚历克斯·加诺的接球和补丁!

1.13.0 2016-12-09

  • [Feature] #1495: 更新的内部 fabric.contrib.files 因此,它的成员使用运行在Windows上的ssh服务器。感谢Hamdi Sahloul的帮助。

  • [Support] #1379: (也) #1464 )清理大量未使用的进口产品和类似的积垢(许多通过 flake8 --select E4 )感谢Mathias Ertl提供的原始补丁。

  • [Support] #1483: (也有: #1386#1374#1300 )添加有关远程报价问题的常见问题解答 csh 导致面料外壳包装和引用溢出问题。感谢Michael Radziej的更新。

  • [Support] #1461: 更新安装要求,以允许Paramiko2.x,现在它已经稳定并在野外一段时间了。Paramiko1.x仍然像以前一样工作;对Paramiko2的唯一更改是后端从加密到加密。

    警告

    如果要升级现有环境,则安装依赖项已更改;有关详细信息,请参阅Paramiko的安装文档:http://www.paramiko.org/installing.html

1.12.1 2016-12-05

  • [Bug] #1458: 检测 known_hosts -的相关实例 paramiko.SSHException 并防止它们像身份验证错误一样被处理(这是默认行为)。这修复了使用时出现错误密码提示或提示相关异常的问题。 reject_unknown_hosts 遇到失踪或不好的情况 known_hosts 条目。感谢Luk_Doktor的接球和接球。

  • [Bug] #1470: 使用时 fabric.operations.get 对于glob表达式,缺少glob匹配将导致以glob表达式命名的空文件(除了引发错误)。已修复此问题,因此不再生成空文件。感谢Georgy Kibardin的接住和初始补丁。

  • [Support] #1379: (也) #1464 )清理大量未使用的进口产品和类似的积垢(许多通过 flake8 --select E4 )感谢Mathias Ertl提供的原始补丁。

  • [Support] #1483: (也有: #1386#1374#1300 )添加有关远程报价问题的常见问题解答 csh 导致面料外壳包装和引用溢出问题。感谢Michael Radziej的更新。

1.11.3 2016-12-05

  • [Bug] #1458: 检测 known_hosts -的相关实例 paramiko.SSHException 并防止它们像身份验证错误一样被处理(这是默认行为)。这修复了使用时出现错误密码提示或提示相关异常的问题。 reject_unknown_hosts 遇到失踪或不好的情况 known_hosts 条目。感谢Luk_Doktor的接球和接球。

  • [Bug] #1470: 使用时 fabric.operations.get 对于glob表达式,缺少glob匹配将导致以glob表达式命名的空文件(除了引发错误)。已修复此问题,因此不再生成空文件。感谢Georgy Kibardin的接住和初始补丁。

  • [Support] #1379: (也) #1464 )清理大量未使用的进口产品和类似的积垢(许多通过 flake8 --select E4 )感谢Mathias Ertl提供的原始补丁。

  • [Support] #1483: (也有: #1386#1374#1300 )添加有关远程报价问题的常见问题解答 csh 导致面料外壳包装和引用溢出问题。感谢Michael Radziej的更新。

1.10.5 2016-12-05

  • [Bug] #1458: 检测 known_hosts -的相关实例 paramiko.SSHException 并防止它们像身份验证错误一样被处理(这是默认行为)。这修复了使用时出现错误密码提示或提示相关异常的问题。 reject_unknown_hosts 遇到失踪或不好的情况 known_hosts 条目。感谢Luk_Doktor的接球和接球。

  • [Bug] #1470: 使用时 fabric.operations.get 对于glob表达式,缺少glob匹配将导致以glob表达式命名的空文件(除了引发错误)。已修复此问题,因此不再生成空文件。感谢Georgy Kibardin的接住和初始补丁。

  • [Support] #1379: (也) #1464 )清理大量未使用的进口产品和类似的积垢(许多通过 flake8 --select E4 )感谢Mathias Ertl提供的原始补丁。

  • [Support] #1483: (也有: #1386#1374#1300 )添加有关远程报价问题的常见问题解答 csh 导致面料外壳包装和引用溢出问题。感谢Michael Radziej的更新。

1.12.0 2016-07-25

  • [Feature] #1491: 实施 sudo -特定密码缓存。这可用于解决过于急切地提交 env.password 在登录时会导致身份验证问题(例如,在双因素身份验证期间)。

1.11.2 2016-07-25

  • [Bug] #1447: 在中修复相对导入 fabric.network 而是正确/一贯绝对。多亏了 @bildzeitung 用于捕获和修补。

1.10.4 2016-07-25

  • [Bug] #1447: 在中修复相对导入 fabric.network 而是正确/一贯绝对。多亏了 @bildzeitung 用于捕获和修补。

1.11.1 2016-04-09

  • [Bug]: 缓冲版本到 1.11.1 因为明显是无意上传了一个错误 1.11.0 到过去的某个时候的pypi(pypi是安全的,并防止重复使用已删除的文件名。)我们对此没有内存,但数据库不会说谎!

1.11.0 2016-04-09

  • [Feature] #1200: 介绍 exceptions 输出级别,因此用户不必仅仅为了查看回溯而处理调试输出。

  • [Feature] #1388: 揭开Jinja的面纱 keep_trailing_newline 参数在 fabric.contrib.files.upload_template 因此,用户可以强制模板呈现以保留尾随的换行符。感谢陈雷的帮助。

  • [Feature] #1326: 制作 fabric.contrib.project.rsync_project 意识到 env.gateway ,使用 ProxyCommand 在引擎盖下面。学分:大卫·拉希。

  • [Feature] #1271: 允许FabFile使用的用户 fabric.colors 通过指定 FABRIC_DISABLE_COLORS=1 (或任何其他非空值)。学分:埃里克·伯格。

  • [Feature] #1261: 将Paramiko的Kerberos功能作为结构配置变量和命令行选项公开。感谢Ramanan Sivaranjan提供的catch&patch,以及Johannes L_thberg和Michael Bennett提供的附加测试。

  • [Feature] #932: 添加 temp_dir 克瓦格 fabric.contrib.files.upload_template 它被传递到它的内部 fabric.operations.put 打电话。多亏了 @nburlett 对于补丁。

  • [Feature] #1161: 添加 use_sudo 克瓦格 fabric.operations.reboot . 学分:布莱斯·威尔第。

  • [Feature] #800: 添加 capture_buffer_size kwarg to fabric.operations.run/fabric.operations.sudo 因此,在子进程生成大量stdout/err的情况下,用户可以限制内存使用。感谢约旦斯塔彻的报告和暗利巴胡米的早期版本补丁。

  • [Feature] #1203: (通过 #1240 添加一个 case_sensitive 克瓦格 fabric.contrib.files.contains (切换使用 egrep -i )报告 @xoul ,由Curtis Mattoon修补。

  • [Bug] #1389: 轻轻地修改ssh端口派生,这样就不那么令人惊讶了;以前,存储在 env.port 正在重写所有ssh-config派生的值。参见API文档 fabric.network.normalize 有关它现在的行为的详细信息。感谢Harry Weppner的接球和接球。

  • [Support] #1229: 添加一些缺少的API文档超链接引用。多亏了托尼·纳洛克。

  • [Support] #958: 删除我们生成的版本字符串中的git-sha部分;它很少有用,偶尔会给使用非基于git的源代码签出的用户带来问题。

  • [Support] #1213: 将有用的异常消息添加到隐式 SystemExit 因织物使用 sys.exit 里面 fabric.api.abort 功能。这允许客户端代码捕获 SystemExit 更好地反省错误。多亏了约阿尼斯·帕努西。

  • [Support] #1239: 更新自述文件以更好地在raw docutils下工作,因此示例代码块在pypi上突出显示为python(而不仅仅在我们的sphinx驱动的网站上)。感谢马克·阿布拉莫维茨。

  • [Support] #1325: 澄清 fabric.operations.put DOCs RE: mode 争论。多亏了 @mjmare 为了抓住。

  • [Support] #1454: 删除使用 :option: 在《变化日志》中的指示,它目前在现代斯芬克斯被打破,似乎也没有在文艺复兴时期的斯芬克斯上发挥作用。

  • [Support] #1359: 添加一个更可见的顶层 CHANGELOG.rst 将用户指向存储在sphinx目录树中的实际变更日志。感谢乔纳森瓦纳斯科的接球和接球。

  • [Support] #1257: 在的使用文档中添加注释 fab 关于程序的退出状态。信用: @koalaman .

  • [Support] #943:env.warn_only docs to note that it applies to all operations, not just run/sudo . 谢谢 @akitada .

1.10.3 2016-04-09

  • [Bug] #1348: (通过 #1361 )修复错误 fabric.operations.get 其中包含python字符串格式转义代码的远程文件路径导致异常。多亏了 @natecode 为报告和布拉德利斯宾克修复。

  • [Bug] #1365: (通过 #1372 )经典样式的FabFiles(不使用的 @task )收集任务时错误地包含自定义异常子类。这个现在修好了,多亏了 @mattvonrocketstein .

  • [Bug] #1135: (通过 #1241 )修改的操作顺序 fabric.operations.run/fabric.operations.sudo 在前缀命令之前(而不是之后)应用环境变量。报告 @warsamebashir ,由Curtis Mattoon修补。

  • [Support] #1454: 删除使用 :option: 在《变化日志》中的指示,它目前在现代斯芬克斯被打破,似乎也没有在文艺复兴时期的斯芬克斯上发挥作用。

  • [Support] #1257: 在的使用文档中添加注释 fab 关于程序的退出状态。信用: @koalaman .

  • [Support] #943:env.warn_only docs to note that it applies to all operations, not just run/sudo . 谢谢 @akitada .

1.10.2 2015-06-19

  • [Bug] #1273: 修复ssh/config没有跨平台默认路径的问题。多亏了 @SamuelMarks 用于捕获和修补。

  • [Bug] #1286: (也) #971#1032 )在获取任务docstrings时,递归地展开decorator,而不是只展开单个decorator级别。感谢Avishai Ish Shalom的原始报告和Max Kovgan的补丁。

  • [Bug] #1289: 修正“名称错误:在封闭范围内赋值之前引用的自由变量”。多亏了 @SamuelMarks 用于捕获和修补。

  • [Bug] #980: (也) #1312 )重定向的输出 cd/dev/null 所以用户启用bash CDPATH (或其他外壳中的类似特征)没有污染的输出捕获。感谢Alex North Keys的原始报告和Steve Ivy的修复。

  • [Bug] #1305: (也) #1313 )修复与演示代码的操作有关的几个小问题 JobQueue 班级。多亏了 @dioh 霍斯特·古特曼负责报告,卡梅伦·莱恩负责补丁。

  • [Bug] #1318: 添加了更新功能 #1213 因此,中止错误消息不会被打印两次(一次由我们打印,一次由我们打印) sys.exit )但保留了注释的异常错误消息。感谢费利克斯·阿尔梅达的报告。

1.10.1 2014-12-19

  • [Bug] #1226: 更新 fabric.operations.get 以确保 env.user 在更改权限之前可以访问tempfiles。还将权限从404更正为0400以匹配注释。柯蒂斯·马顿的补丁;丹尼尔·沃特金斯的原始报告。

  • [Bug] #1180: 如果流编码类型为“无”,则修复Unicode蒸汽输出崩溃的问题。多亏了 @joekiller 用于捕获和修补。

  • [Bug] #1228: 更新 CommandTimeout 所以它有一个有用的 str 而不是在被Fabric的顶级异常处理捕获时显示为空白。从Tomaz Muraus处获取并修补。

  • [Bug] #1019: (也) #1022#1186 )在流(例如 sys.stdout )已替换为缺少 .isatty() 方法。感谢Miki Tebeka提供的原始报告,Lele long提供后续补丁,Julien Phalip提供最终/合并补丁。

  • [Bug] #1201: 别天真地把所有的都弄得一团糟 fabric.operations.get 目标-仅全局实际目录。这样可以避免在边缘情况下错误地产生权限错误,即请求的文件位于缺少读取权限位的目录中。感谢SASSA的原始报告。

  • [Support] #1229: 添加一些缺少的API文档超链接引用。多亏了托尼·纳洛克。

  • [Support] #958: 删除我们生成的版本字符串中的git-sha部分;它很少有用,偶尔会给使用非基于git的源代码签出的用户带来问题。

  • [Support] #1213: 将有用的异常消息添加到隐式 SystemExit 因织物使用 sys.exit 里面 fabric.api.abort 功能。这允许客户端代码捕获 SystemExit 更好地反省错误。多亏了约阿尼斯·帕努西。

1.9.2 2014-12-19

  • [Bug] #1226: 更新 fabric.operations.get 以确保 env.user 在更改权限之前可以访问tempfiles。还将权限从404更正为0400以匹配注释。柯蒂斯·马顿的补丁;丹尼尔·沃特金斯的原始报告。

  • [Bug] #1180: 如果流编码类型为“无”,则修复Unicode蒸汽输出崩溃的问题。多亏了 @joekiller 用于捕获和修补。

  • [Bug] #1228: 更新 CommandTimeout 所以它有一个有用的 str 而不是在被Fabric的顶级异常处理捕获时显示为空白。从Tomaz Muraus处获取并修补。

  • [Bug] #1019: (也) #1022#1186 )在流(例如 sys.stdout )已替换为缺少 .isatty() 方法。感谢Miki Tebeka提供的原始报告,Lele long提供后续补丁,Julien Phalip提供最终/合并补丁。

  • [Bug] #1201: 别天真地把所有的都弄得一团糟 fabric.operations.get 目标-仅全局实际目录。这样可以避免在边缘情况下错误地产生权限错误,即请求的文件位于缺少读取权限位的目录中。感谢SASSA的原始报告。

  • [Support] #1229: 添加一些缺少的API文档超链接引用。多亏了托尼·纳洛克。

  • [Support] #958: 删除我们生成的版本字符串中的git-sha部分;它很少有用,偶尔会给使用非基于git的源代码签出的用户带来问题。

  • [Support] #1213: 将有用的异常消息添加到隐式 SystemExit 因织物使用 sys.exit 里面 fabric.api.abort 功能。这允许客户端代码捕获 SystemExit 更好地反省错误。多亏了约阿尼斯·帕努西。

1.10.0 2014-09-04

  • [Feature] #975: 现在可以通过调用结构 python -m fabric 除了典型的使用 fab 入口点。补丁由Jason Coombs提供。

    注解

    此功能仅在python 2.7下可用。

  • [Feature] #1090: 添加选项以跳过未知任务。荣誉属于乔纳斯·伦德伯格。

  • [Feature] #1098: 添加对dict样式roledefs的支持。感谢乔纳斯·伦德伯格。

  • [Feature] #700: 补充 use_sudotemp_dir 帕拉姆斯 fabric.operations.get . 这允许用户使用 sudo . 感谢Jason Coombs的初步报告和Alex Plugaru的补丁 (#1121

  • [Bug] #1188: 更新 fabric.operations.local 关闭子进程中的非管道文件描述符,以便随后调用 fabric.operations.local 未在已连接的网络套接字上阻止。感谢Tolbkni Kao的接球和接球。

1.9.1 2014-08-06

  • [Bug] #1167: 添加Jinja test_requires 在里面 setup.py 对于现在需要它的几个新的测试。感谢库比莱·科恰克的接球。

  • [Bug] #600: 准备并行执行子进程时,清除连接缓存。这避免了由于客户端/套接字重用而导致挂起/冻结的角情况。感谢Ruslan Lutsenko的初步报告和Romain Chossart的建议修复。

  • [Bug] #1026: 修正打字错误,防止 fabric.contrib.files.is_link . 被抓住 @dongweiming .

  • [Bug] #1059: 更新ipv6支持以使用链接本地地址格式。固定礼貌 @obormot .

  • [Bug] #1096: 为其目标流对象适当编码Unicode文本,以避免非ASCII系统出现问题。感谢Toru Uetani提供的原始补丁。

  • [Bug] #852: 修正尊重 template_dir 对于中的非jinja2模板 fabric.contrib.files.upload_template . 感谢AdamKowalski的补丁和AlexPlugaru的初始测试用例。

  • [Bug] #1134: 并行执行任务时跳过坏主机。多亏了伊戈尔·马拉维 @i-maravic .

  • [Bug] #1146: 修复错误 fabric.contrib.files.upload_template 未能兑现 lcd 什么时候? mirror_local_modeTrue . 多亏了拉兹洛·马拉伊的接球和接球。

  • [Bug] #1147: 使用 stat 而不是 lstat 测试sftp模块中的目录ness时。这允许递归下载避免意外递归到符号链接。感谢伊戈尔·卡尼茨基的帮助。

  • [Bug] #1165: 当启用网关主机且常规目标主机列表中存在相同主机时,防止出现无限循环情况。多亏了 @CzBiX 用于捕获和修补。

1.8.5 2014-08-06

  • [Bug] #1167: 添加Jinja test_requires 在里面 setup.py 对于现在需要它的几个新的测试。感谢库比莱·科恰克的接球。

  • [Bug] #600: 准备并行执行子进程时,清除连接缓存。这避免了由于客户端/套接字重用而导致挂起/冻结的角情况。感谢Ruslan Lutsenko的初步报告和Romain Chossart的建议修复。

  • [Bug] #1026: 修正打字错误,防止 fabric.contrib.files.is_link . 被抓住 @dongweiming .

  • [Bug] #1059: 更新ipv6支持以使用链接本地地址格式。固定礼貌 @obormot .

  • [Bug] #1096: 为其目标流对象适当编码Unicode文本,以避免非ASCII系统出现问题。感谢Toru Uetani提供的原始补丁。

  • [Bug] #852: 修正尊重 template_dir 对于中的非jinja2模板 fabric.contrib.files.upload_template . 感谢AdamKowalski的补丁和AlexPlugaru的初始测试用例。

  • [Bug] #1134: 并行执行任务时跳过坏主机。多亏了伊戈尔·马拉维 @i-maravic .

  • [Bug] #1146: 修复错误 fabric.contrib.files.upload_template 未能兑现 lcd 什么时候? mirror_local_modeTrue . 多亏了拉兹洛·马拉伊的接球和接球。

  • [Bug] #1147: 使用 stat 而不是 lstat 测试sftp模块中的目录ness时。这允许递归下载避免意外递归到符号链接。感谢伊戈尔·卡尼茨基的帮助。

  • [Bug] #1165: 当启用网关主机且常规目标主机列表中存在相同主机时,防止出现无限循环情况。多亏了 @CzBiX 用于捕获和修补。

1.7.5 2014-08-06

  • [Bug] #1167: 添加Jinja test_requires 在里面 setup.py 对于现在需要它的几个新的测试。感谢库比莱·科恰克的接球。

  • [Bug] #600: 准备并行执行子进程时,清除连接缓存。这避免了由于客户端/套接字重用而导致挂起/冻结的角情况。感谢Ruslan Lutsenko的初步报告和Romain Chossart的建议修复。

  • [Bug] #1026: 修正打字错误,防止 fabric.contrib.files.is_link . 被抓住 @dongweiming .

  • [Bug] #1059: 更新ipv6支持以使用链接本地地址格式。固定礼貌 @obormot .

  • [Bug] #1096: 为其目标流对象适当编码Unicode文本,以避免非ASCII系统出现问题。感谢Toru Uetani提供的原始补丁。

  • [Bug] #852: 修正尊重 template_dir 对于中的非jinja2模板 fabric.contrib.files.upload_template . 感谢AdamKowalski的补丁和AlexPlugaru的初始测试用例。

  • [Bug] #1134: 并行执行任务时跳过坏主机。多亏了伊戈尔·马拉维 @i-maravic .

  • [Bug] #1146: 修复错误 fabric.contrib.files.upload_template 未能兑现 lcd 什么时候? mirror_local_modeTrue . 多亏了拉兹洛·马拉伊的接球和接球。

  • [Bug] #1147: 使用 stat 而不是 lstat 测试sftp模块中的目录ness时。这允许递归下载避免意外递归到符号链接。感谢伊戈尔·卡尼茨基的帮助。

  • [Bug] #1165: 当启用网关主机且常规目标主机列表中存在相同主机时,防止出现无限循环情况。多亏了 @CzBiX 用于捕获和修补。

1.9.0 2014-06-08

  • [Feature] #741: 添加 env.prompts 字典,允许用户设置自定义的提示响应(类似于内置的sudo提示自动响应),感谢nigel owens和david halter的补丁。

  • [Feature] #1082: 添加 pty 穿过Kwarg至 fabric.contrib.files.upload_template .

  • [Feature] #1101: 重新启动操作现在支持自定义命令。感谢乔纳斯·莱乔恩。

  • [Feature] #938: 添加一个EV VAR env.effective_roles 指定当前执行命令中使用的角色。感谢Piotr Betkier的帮助。

  • [Feature] #1078: 添加 .command.real_command 属性到 local 返回值。感谢亚历山大·特维斯 (@alexanderteves )还有康拉德·哈依亚斯 (@konradhalas

  • [Bug] #965: 在“线条”(&so parallel)模式下调整IO刷新行为,以减少交织输出的频率。多亏了 @akidata 用于捕获和修补。

  • [Support]: 修改了包装数据以反映结构要求paramiko<1.13(这放弃了对python 2.5的支持)。

  • [Support] #1105: 增强 setup.py 允许在python 2.6+下使用paramiko 1.13+。多亏了 @Arfrever 用于捕获和修补。

  • [Support] #1106:fab 使用文档更清晰。多亏了 @zed .

1.8.4 2014-06-08

  • [Bug] #898: 将以波浪线“~”开头的路径视为绝对路径,而不是相对路径。感谢Alex Plugaru的补丁和Dan Craig的建议。

  • [Support] #1105: 增强 setup.py 允许在python 2.6+下使用paramiko 1.13+。多亏了 @Arfrever 用于捕获和修补。

1.7.4 2014-06-08

  • [Bug] #898: 将以波浪线“~”开头的路径视为绝对路径,而不是相对路径。感谢Alex Plugaru的补丁和Dan Craig的建议。

  • [Support] #1105: 增强 setup.py 允许在python 2.6+下使用paramiko 1.13+。多亏了 @Arfrever 用于捕获和修补。

1.8.3 2014-03-21

  • [Support]: 修改了包装数据以反映结构要求paramiko<1.13(这放弃了对python 2.5的支持)。

1.7.3 2014-03-21

  • [Support]: 修改了包装数据以反映结构要求paramiko<1.13(这放弃了对python 2.5的支持)。

1.8.2 2014-02-14

  • [Bug] #1046: 修复在某些情况下阻止使用proxycommand的拼写错误。感谢杨基思。

  • [Bug] #917: 更正问题 put(use_sudo=True, mode=xxx) 何处 chmod 试图应用到错误的位置。感谢雷姆科 (@nl5887 )用于捕获和修补。

  • [Bug] #955: 报价目录创建为 put 的递归目录上载时间 use_sudo=True 所以具有shell元字符(如空格)的目录工作正常。感谢约翰·哈里斯的接球。

1.7.2 2014-02-14

  • [Bug] #1046: 修复在某些情况下阻止使用proxycommand的拼写错误。感谢杨基思。

  • [Bug] #917: 更正问题 put(use_sudo=True, mode=xxx) 何处 chmod 试图应用到错误的位置。感谢雷姆科 (@nl5887 )用于捕获和修补。

  • [Bug] #955: 报价目录创建为 put 的递归目录上载时间 use_sudo=True 所以具有shell元字符(如空格)的目录工作正常。感谢约翰·哈里斯的接球。

1.8.1 2013-12-24

  • [Bug] #948: 处理由于服务器负载而导致的连接失败,并尝试连接到主机的次数在中指定 env.connection_attempts .

  • [Bug] #957: 修复阻止使用的错误 env.gateway 目标需要密码验证。感谢Daniel Gonz_lez, @Bengrunt@adrianbn 他们的错误报告。

  • [Bug] #956: 修复在Emacs中运行时的pty大小检测。多亏了 @akitada 用于捕获和修补。

1.7.1 2013-12-24

  • [Bug] #948: 处理由于服务器负载而导致的连接失败,并尝试连接到主机的次数在中指定 env.connection_attempts .

  • [Bug] #957: 修复阻止使用的错误 env.gateway 目标需要密码验证。感谢Daniel Gonz_lez, @Bengrunt@adrianbn 他们的错误报告。

  • [Bug] #956: 修复在Emacs中运行时的pty大小检测。多亏了 @akitada 用于捕获和修补。

  • [Support] #984: 使此变更日志更易于阅读!现在,对于每个发布部分,都是从旧的时间线源格式自动生成的。

1.6.4 2013-12-24

  • [Bug] #956: 修复在Emacs中运行时的pty大小检测。多亏了 @akitada 用于捕获和修补。

  • [Bug] #957: 修复阻止使用的错误 env.gateway 目标需要密码验证。感谢Daniel Gonz_lez, @Bengrunt@adrianbn 他们的错误报告。

1.5.5 2013-12-24

  • [Bug] #956: 修复在Emacs中运行时的pty大小检测。多亏了 @akitada 用于捕获和修补。

  • [Bug] #957: 修复阻止使用的错误 env.gateway 目标需要密码验证。感谢Daniel Gonz_lez, @Bengrunt@adrianbn 他们的错误报告。

1.8.0 2013-09-20

  • [Feature] #910: 在rsync_项目中添加关键字参数以配置默认选项。多亏了 @moorepants 对于补丁。

  • [Feature] #931: 允许覆盖 abort 通过返回可调用集为的自定义异常的行为 env.abort_exception . 感谢克里斯·罗斯的贴片。

  • [Support] #984: 使此变更日志更易于阅读!现在,对于每个发布部分,都是从旧的时间线源格式自动生成的。

1.7.0 2013-07-26

  • [Feature] #845: 为实现下游同步选项 fabric.contrib.project.rsync_project . 多亏了安东尼奥·巴雷罗。

  • [Feature] #812: 添加 use_glob 选择权 put 所以用户试图上传包含全局模式的真实文件名 (*[ etc)可以禁用默认的全局设置行为。感谢Michael McHugh的帮助。

  • [Feature] #826: 通过以下方式启用压缩存档的sudo提取 use_sudo 克瓦格 upload_project . 多亏了 @abec 对于补丁。

  • [Feature] #908: 支持从内存加载ssh密钥。感谢卡莱布新郎的贴片。

  • [Feature] #924: 添加新的env var选项 colorize-errors 启用着色错误和警告。多亏了阿伦·梅勒。

  • [Feature] #922: 任务参数字符串现在在使用时显示 fab -d . 感谢邱凯文的帮助。

  • [Feature] #925: 补充 contrib.files.is_link . 多亏了 @jtangas 对于补丁。

  • [Bug] #84: 修复了Mac OS X SED版本中缺少-r标志的问题。感谢Konrad Ha_关于补丁。

  • [Bug] #864: 允许用户禁用结构的自动转义 run/sudo . 多亏了克里斯汀·朗和迈克尔·麦克休。

  • [Bug] #694: 允许用户解决默认远程登录目录中的所有权问题:添加 temp_dir Kwarg明确说明调用时要使用哪个“bounce”文件夹 put 具有 use_sudo=True . 感谢Devin Bayer的报告和Dieter Plaetinck/Jesse Myers的建议。

1.6.2 2013-07-26

  • [Bug] #882: 修复一 get 有关远程工作目录名中空间的错误。感谢克里斯·罗斯的接球和接球。

  • [Bug] #884: 密码缓存功能无法正确使用需要ssh网关连接的密码。现在修好了。感谢Marco Nenciarini的接球。

  • [Bug] #171: 添加了缺少的交叉引用 env 相应命令行选项的变量文档。感谢丹尼尔·D·贝克的贡献。

  • [Bug] #593: Jinja模板中呈现的非ASCII字符集 upload_template 会导致 UnicodeDecodeError 上传时。这已通过编码解决为 utf-8 上传前。多亏了巴斯蒂安·菲维的接球。

  • [Bug] #912: 离开 template_dir 使用时未指定 upload_template 在金贾模式下曾经导致 'NoneType' has no attribute 'startswith' 错误。这个问题已经解决了。感谢埃里克·耶洛特接球,感谢埃里克·耶洛特和凯文·威廉姆斯接球。

1.6.1 2013-05-23

  • [Feature] #845: 为实现下游同步选项 fabric.contrib.project.rsync_project . 多亏了安东尼奥·巴雷罗。

  • [Bug] #367: 在内部使用颚化符展开路径 (contrib.files )感谢Konrad Ha_的接球和接球。

  • [Bug] #861: 优雅地处理用户将单个字符串文本 env.hosts . 感谢比尔·塔克的接球和接球。

  • [Bug] #871: 字符串模式值的使用 put(local, remote, mode="NNNN") 有时会导致 Unsupported operand 错误。这个问题已经解决了。

  • [Bug] #870: 对shell env var转义的更改突出显示了一些无关的内容,现在在 with path(): . 这已被删除,并添加了回归测试。

  • [Bug] #328: lcd 不再正确应用于 upload_template ;已修复。感谢约瑟夫·劳森的接球。

  • [Bug] #868: 通过删除 JobQueue 循环。多亏了西莫·金努恩的帮助。

1.6.0 2013-03-01

  • [Feature] #249: 允许通过设置指定远程命令超时值 env.command_timeout . 感谢Paul McMillan的建议和初始补丁。

  • [Feature] #787: 使用新的paramiko功能,允许我们在中使用类似文件的对象时跳过临时本地文件的使用。 fabric.operations.get/fabric.operations.put .

  • [Feature] #735: 添加 ok_ret_codes 选择权 env 允许将备用返回代码视为OS“OK”。感谢安迪·克劳特的请求。

  • [Feature] #706: 补充 env.tasks ,返回当前要执行的任务列表 fab 命令。

  • [Feature] #818: 补充 env.eagerly_disconnect 有助于防止许多开放连接堆积的选项。

  • [Feature] #730: 添加 env.system_known_hosts/--system-known-hosts 允许加载用户指定的系统级ssh known_hosts 文件。感谢罗伊·史密斯的帮助。

  • [Feature] #402: 尝试检测过时的ssh会话,并在它们出现时重新连接。多亏了 @webengineer 对于补丁。

  • [Feature] #823: 添加 env.remote_interrupt 控制是将ctrl-c转发到远程端还是在本地捕获(以前,只实现了后者的行为)。感谢吉特·詹森的贴片。

  • [Feature] #821: 添加 fabric.context_managers.remote_tunnel 允许反向ssh隧道(向远程端公开本地可见的网络端口)。多亏了乔瓦尼·巴乔。

  • [Bug] #703: 添加 shell 克瓦格对很多方法 fabric.contrib.files 帮助避免与 fabric.context_managers.cd 类似的。多亏了 @mikek 对于补丁。

1.5.4 2013-03-01

  • [Bug] #587: 警告而不是中止 env.use_ssh_config 为true,但配置的ssh conf文件不存在。这允许多用户fabfile启用ssh配置,而不会对缺乏ssh配置的用户造成硬停止。感谢Rodrigo Pimentel的报告。

  • [Bug] #839: 修复错误 fabric.contrib.project.rsync_project 其中未始终正确检测到IPv6地址。多亏了安东尼奥·巴雷罗的接球和接球。

  • [Bug] #843: 确保字符串 pool_size 价值观贯穿其中 int() 在派生最终结果之前(stdlib min() 这里有奇怪的行为…)。感谢克里斯·卡斯托夫的接球。

  • [Bug] #844: 在Paramiko 1.10中说明ssh配置大修,例如更新处理 IdentityFile 处理多个值。 此更改和相关的ssh配置解析更改向后不兼容 ;我们将它们包含在这个版本中,因为它们确实修复了不正确、不规范的行为。

1.5.3 2013-01-28

  • [Bug] #791: 铸件 fabric.operations.rebootwait 参数,以防调用方错误提交字符串。多亏了托马斯·施赖伯。

  • [Bug] #654: 如果并行运行的返回数据总和较大(例如任务返回值较大,或者主机列表中的主机数量较大),则会导致挂起失败。这个问题已经解决了。

  • [Bug] #805: 更新 fabric.context_managers.shell_env 使用Windows(至少7个)系统和 fabric.operations.local . 多亏了费尔南多·麦克多。

  • [Bug] #806: 将字符串赋给 getpass 在密码提示为ASCII时,防止遇到Unicode时在某些平台上出现问题。多亏了亚历克斯·劳登。

1.5.2 2013-01-15

  • [Bug]: 添加了当前主机字符串以提示中止错误消息。

  • [Bug] #775: Shell转义被错误地应用于 $PATH shell环境处理中的更新,导致(至少) fabric.operations.local 在某些情况下变为不可操作的二进制路径。这个问题已经解决了。

  • [Bug] #792: 新奇的 fabric.context_managers.shell_env 上下文管理器被错误地从 fabric.api 导入终结点。这已得到补救。感谢维沙尔·拉纳的接球。

  • [Bug] #604: 修复了在Windows上上载目录树时Put操作中反斜杠的错误处理。感谢杰森·库姆斯的接球 @diresys &奥利弗·贾尼克的补丁。对于补丁。

  • [Bug] #766: 使用新样式的变量名 fabric.tasks.Task 当对象名属性未定义时,将对象子类化。多亏了 @todddeluca 对于补丁。

1.5.1 2012-11-15

  • [Bug] #771: 狮身人面像自动摄影助手 fabric.docs.unwrap_tasks 玩得不好 @task(name=xxx) 在某些情况下。这个问题已经解决了。

  • [Bug] #776: 修复了直接TCPIP驱动的网关中严重但不明显的错误(例如由 -genv.gateway 应能正常工作。

1.5.0 2012-11-06

  • [Feature] #615: 更新的 fabric.operations.sudo 向新环境致敬 env.sudo_user 作为其违约 user 克瓦格

  • [Feature] #633: 允许用户通过设置关闭主机列表重复数据消除 env.dedupe_hostsFalse . 这样就可以在一台主机上多次运行同一任务,而这以前是不可能的。

  • [Feature] #627: 增加了便利性 quiet and warn_only keyword arguments to fabric.operations.run/fabric.operations.sudo 哪些是别名 settings(hide('everything'), warn_only=True)settings(warn_only=True) ,分别。(还添加了相应的上下文管理器。)对于预期会失败和/或其输出不需要显示给用户的远程程序调用很有用。

  • [Feature] #646: 允许指定在以下情况下使用的本地流: fabric.operations.run/fabric.operations.sudo 打印远程stdout/stderr,例如 run("command", stderr=sys.stdout) .

  • [Feature] #241: 将执行的命令添加为 .command attribute to the return value of fabric.operations.run/fabric.operations.sudo . (还包括包含已执行“real”命令的第二个属性,包括shell包装器和任何转义。)

  • [Feature] #669: 更新我们的Windows兼容性,以更加依赖跨平台的python stdlib实现。多亏了亚历克赛·迪扬。

  • [Feature] #263: shell环境变量支持 fabric.operations.run/fabric.operations.sudofabric.context_managers.shell_env 上下文管理器。感谢Oliver Tonnhofer的最初请求,感谢Kamil Kisiel的最终实施。

  • [Feature] #699: 允许 name 文件上的属性,例如get/put的对象。感谢彼得·里昂的请求。

  • [Feature] #491: (也) [Feature] #385: )支持IPv6主机字符串。多亏了马克斯·阿诺德。

  • [Feature] #725: 更新的 fabric.operations.local 允许覆盖使用的本地shell。感谢穆斯塔法·卡塔布。

  • [Feature] #723: 添加 group= 参数 fabric.operations.sudo . 感谢Antti Kaihola的请求。

  • [Feature] #761: 允许高级用户参数化 fabric.main.main() 强制加载特定的FabFile。

  • [Feature] #578: 添加 name 参数 fabric.decorators.task 允许覆盖默认的“函数名是任务名”行为。感谢丹尼尔·西蒙斯的接球和接球。

  • [Feature] #665: (和629)更新 fabric.contrib.files.upload_template 有一个更有用的返回值,即其内部的返回值 fabric.operations.put 打电话。多亏了米奎尔·托雷斯接球,罗德里格·阿尔卡扎尔接球。

  • [Feature] #763: 添加 --initial-password-prompt 允许在运行开始时预先填充密码缓存。非常适合以sudo为动力的并行运行。

  • [Feature] #684: (也) #569 )如何更新 fabric.decorators.task 包装任务函数以保留其他元数据;这允许修饰函数与sphinx autodoc一起使用。感谢Jaka Hudoklin的接球和接球。

  • [Feature] #38: (也) #698 )实现ssh级别和 ProxyCommand -基于ssh流量的网关。(这与通过ssh连接挖掘非ssh流量不同,后者是 #78 尚未实施。)

    • 特别感谢Erwin Bolwidt、Oskari Saarenma、Steven Noonan、Vladimir Lazarenko、Lincoln de Sousa、Valentino Volonghi、Olle Lundberg和Github用户 @acrish 为织物和Paramiko提供原始补丁。

  • [Bug] #702: fabric.operations.require 未能在其检查的env键中测试“空”值(例如 require('a-key-whose-value-is-an-empty-list') 将注册成功的结果,而不是警告该值实际上为空。多亏了富有的舒马赫,这个问题已经解决了。

  • [Bug] #711: fabric.sftp.get 当文件名的路径中有%时将失败。感谢约翰·贝格曼

  • [Bug] #704: 安装一组python 2.x样式 print 语句要向前兼容。多亏了弗兰切斯科·德尔德根。

  • [Bug] #736: 确保构建env vars的上下文管理器能够很好地处理 contextlib.nested 通过将env var引用延迟到输入时间,而不是调用时间。感谢Matthew Tretter的接球和接球。

  • [Bug] #767: 修正(并添加测试)回归:当并行性生效时,自动激活线条输出。感谢Alexander Fortin和Dustin McQuay提供的bug报告。

  • [Support] #626: 教程的清晰更新。感谢Github用户 m4z 修补程序。

  • [Support] #634: 澄清了 fabric.context_managers.lcd 是否没有特殊处理re:用户的当前工作目录,因此提供给它的相对路径将相对于 os.getcwd() . 多亏了 @techtonik 为了抓住。

  • [Support] #640: (也) #644 )更新包装清单,以便SDIST tarballs包含所有必要的测试和文档文件。感谢Mike Gilbert和 @Arfrever 用于捕获和修补。

  • [Support] #645: 更新sphinx文档,以便在源tarball用完而不是git签出时工作良好。再次感谢 @Arfrever 为了抓住。

  • [Support] #651: 添加了有关嵌套的注释 with python 2.6+上的语句。感谢Jens Rantil的贴片。

  • [Support] #681: 修正了过期的docstring fabric.decorators.runs_once 它声称将在并行模式下运行多次。该行为在早期版本中得到了修复,但文档没有更新。感谢简·布劳尔的接球。

  • [Support] #103: (通过 #748 )长期存在的斯芬克斯AutoDoc问题需要在我们的API文档中进行容易出错的功能签名复制,现已得到解决。多亏了亚历克斯·莫雷加。

1.4.4 2012-11-06

  • [Feature] #684: (也) #569 )如何更新 fabric.decorators.task 包装任务函数以保留其他元数据;这允许修饰函数与sphinx autodoc一起使用。感谢Jaka Hudoklin的接球和接球。

  • [Bug] #693: 固定边箱,其中 abort 并行任务中的驱动失败可能导致顶级异常(A KeyError )关于错误处理。感谢Marcin Ku_mi_ski的报道。

  • [Bug] #718: isinstance(foo, Bar) 用于 fabric.main 而不是 type(foo) == Bar 为了修复一些边缘盒。感谢米哈伊尔·科罗波夫。

  • [Bug] #749: 优雅地处理呼叫 fabric.version 关于缺乏的系统 /bin/sh (导致 OSError 在里面 subprocess.Popen 电话)

  • [Support] #681: 修正了过期的docstring fabric.decorators.runs_once 它声称将在并行模式下运行多次。该行为在早期版本中得到了修复,但文档没有更新。感谢简·布劳尔的接球。

1.4.3 2012-07-06

  • [Bug] #649: 不要在并行模式下接受非``abort``驱动的异常。织物正确印刷了这些例外情况,并从 fabric.tasks.execute ,但实际上并未导致子进程或父进程以非零状态停止。这个问题已经解决了。 fabric.tasks.execute 现在也是荣誉 env.warn_only 因此,用户仍然可以选择手动调用并检查返回的异常,而不是遇到硬停止。感谢马特·罗比诺特的接球。

  • [Bug] #652: 中止无效命令名时显示可用命令。

  • [Bug] #659: 更新文档以反映 fabric.operations.local 目前的荣誉 env.path . 多亏了 @floledermann 为了抓住。

  • [Bug] #671: reject-unknown-hosts 有时会导致密码提示而不是中止。这个问题已经解决了。感谢罗伊·史密斯的报告。

  • [Support] #634: 澄清了 fabric.context_managers.lcd 是否没有特殊处理re:用户的当前工作目录,因此提供给它的相对路径将相对于 os.getcwd() . 多亏了 @techtonik 为了抓住。

  • [Support] #640: (也) #644 )更新包装清单,以便SDIST tarballs包含所有必要的测试和文档文件。感谢Mike Gilbert和 @Arfrever 用于捕获和修补。

  • [Support] #645: 更新sphinx文档,以便在源tarball用完而不是git签出时工作良好。再次感谢 @Arfrever 为了抓住。

  • [Support] #651: 添加了有关嵌套的注释 with python 2.6+上的语句。感谢Jens Rantil的贴片。

1.3.8 2012-07-06

  • [Bug] #649: 不要在并行模式下接受非``abort``驱动的异常。织物正确印刷了这些例外情况,并从 fabric.tasks.execute ,但实际上并未导致子进程或父进程以非零状态停止。这个问题已经解决了。 fabric.tasks.execute 现在也是荣誉 env.warn_only 因此,用户仍然可以选择手动调用并检查返回的异常,而不是遇到硬停止。感谢马特·罗比诺特的接球。

  • [Bug] #652: 中止无效命令名时显示可用命令。

  • [Bug] #659: 更新文档以反映 fabric.operations.local 目前的荣誉 env.path . 多亏了 @floledermann 为了抓住。

  • [Bug] #671: reject-unknown-hosts 有时会导致密码提示而不是中止。这个问题已经解决了。感谢罗伊·史密斯的报告。

  • [Support] #634: 澄清了 fabric.context_managers.lcd 是否没有特殊处理re:用户的当前工作目录,因此提供给它的相对路径将相对于 os.getcwd() . 多亏了 @techtonik 为了抓住。

  • [Support] #640: (也) #644 )更新包装清单,以便SDIST tarballs包含所有必要的测试和文档文件。感谢Mike Gilbert和 @Arfrever 用于捕获和修补。

  • [Support] #645: 更新sphinx文档,以便在源tarball用完而不是git签出时工作良好。再次感谢 @Arfrever 为了抓住。

  • [Support] #651: 添加了有关嵌套的注释 with python 2.6+上的语句。感谢Jens Rantil的贴片。

1.4.2 2012-05-07

  • [Bug] #610: 变更检测 env.key_filename 的类型(在1.4中作为ssh配置支持的一部分添加),因此它支持任意iterables。感谢布兰登·罗兹的接球。

  • [Bug] #609: (和 #564 )记录和清理 env.sudo_prefix 因此,面对不常见的用例的用户可以更容易地修改它。感谢Github用户 3point2 用于清理和 SirScott 对于文档捕获。

  • [Bug] #616: 在连接失败时显示的错误消息中添加端口号。

  • [Bug] #617: 修复 clean_revert 行为 fabric.context_managers.settings 所以它没有 KeyError 对于新创建的设置键。感谢克里斯·斯特里特的接球。

  • [Bug] #624: 登录密码提示并不总是显示要验证的用户名。这个问题已经解决了。感谢Nick Zalutskiy的接球和接球。

  • [Bug] #625: fabric.context_managers.hide/fabric.context_managers.show 如果在块内引发异常,则未正确还原以前的显示设置。这个问题已经解决了。

  • [Bug] #562: 每次远程调用(例如单个调用)多次使用转发代理时,代理转发将出错或冻结 fabric.operations.run 命令导致多个git或svn签出。)这是由Steven McDonald和github用户修复的。 @lynxis .

  • [Support] #626: 教程的清晰更新。感谢Github用户 m4z 修补程序。

1.3.7 2012-05-07

  • [Bug] #610: 变更检测 env.key_filename 的类型(在1.4中作为ssh配置支持的一部分添加),因此它支持任意iterables。感谢布兰登·罗兹的接球。

  • [Bug] #609: (和 #564 )记录和清理 env.sudo_prefix 因此,面对不常见的用例的用户可以更容易地修改它。感谢Github用户 3point2 用于清理和 SirScott 对于文档捕获。

  • [Bug] #616: 在连接失败时显示的错误消息中添加端口号。

  • [Bug] #617: 修复 clean_revert 行为 fabric.context_managers.settings 所以它没有 KeyError 对于新创建的设置键。感谢克里斯·斯特里特的接球。

  • [Bug] #624: 登录密码提示并不总是显示要验证的用户名。这个问题已经解决了。感谢Nick Zalutskiy的接球和接球。

  • [Bug] #625: fabric.context_managers.hide/fabric.context_managers.show 如果在块内引发异常,则未正确还原以前的显示设置。这个问题已经解决了。

  • [Bug] #562: 每次远程调用(例如单个调用)多次使用转发代理时,代理转发将出错或冻结 fabric.operations.run 命令导致多个git或svn签出。)这是由Steven McDonald和github用户修复的。 @lynxis .

  • [Support] #626: 教程的清晰更新。感谢Github用户 m4z 修补程序。

1.4.1 2012-04-04

  • [Bug] #306: 远程路径现在使用posixpath作为分隔符。感谢Jason Coombs的帮助。

  • [Bug] #572: 并行任务中止(由于存在未处理的异常)现在正确地打印它们的中止消息而不是跟踪,并导致父进程使用正确的(非零)返回代码退出。感谢伊恩·兰格沃思的接球。

  • [Bug] #551: --list 输出现在检测终端窗口大小并相应地截断(或不截断)。感谢Horacio G.de Oro的首次请求。

  • [Bug] #499: contrib.files.first 在包装中使用了过时的函数签名 fabric.contrib.files.exists 打电话。这个问题已经解决了。多亏了马西米利亚诺·托罗莫的接球和补位。

  • [Bug] #458: fabric.decorators.with_settings 不完全匹配 fabric.context_managers.settings ,re:嵌入其他上下文管理器的能力。这已经纠正了。多亏了罗里·吉根。

  • [Bug] #584: fabric.contrib.project.upload_project 在清除时没有考虑到显式的远程目录位置,现在使用 fabric.context_managers.cd 解决这个问题。多亏了本·伯里的贴片。

  • [Bug] #568: fabric.tasks.execute 允许过多的内部状态更改(对变量,如 env.host_stringenv.parallel )在执行完成后保持;这导致了许多不同的错误行为。 fabric.tasks.execute 已被彻底检查以清除其自身的状态更改,同时保留正在执行的任务所做的任何状态更改。

  • [Bug] #395: 添加了一个FAQ条目,详细说明了如何处理分配了伪tty时行为不正常的init脚本。

  • [Bug] #607: 允许 fabric.operations.local 当它警告/中止时显示stdout/stderr,如果它正在捕获它们。

  • [Bug] #608: 添加 capture 克瓦格 fabric.contrib.project.rsync_project 帮助调试rsync问题。

1.3.6 2012-04-04

  • [Bug] #306: 远程路径现在使用posixpath作为分隔符。感谢Jason Coombs的帮助。

  • [Bug] #572: 并行任务中止(由于存在未处理的异常)现在正确地打印它们的中止消息而不是跟踪,并导致父进程使用正确的(非零)返回代码退出。感谢伊恩·兰格沃思的接球。

  • [Bug] #551: --list 输出现在检测终端窗口大小并相应地截断(或不截断)。感谢Horacio G.de Oro的首次请求。

  • [Bug] #499: contrib.files.first 在包装中使用了过时的函数签名 fabric.contrib.files.exists 打电话。这个问题已经解决了。多亏了马西米利亚诺·托罗莫的接球和补位。

  • [Bug] #458: fabric.decorators.with_settings 不完全匹配 fabric.context_managers.settings ,re:嵌入其他上下文管理器的能力。这已经纠正了。多亏了罗里·吉根。

  • [Bug] #584: fabric.contrib.project.upload_project 在清除时没有考虑到显式的远程目录位置,现在使用 fabric.context_managers.cd 解决这个问题。多亏了本·伯里的贴片。

  • [Bug] #568: fabric.tasks.execute 允许过多的内部状态更改(对变量,如 env.host_stringenv.parallel )在执行完成后保持;这导致了许多不同的错误行为。 fabric.tasks.execute 已被彻底检查以清除其自身的状态更改,同时保留正在执行的任务所做的任何状态更改。

  • [Bug] #395: 添加了一个FAQ条目,详细说明了如何处理分配了伪tty时行为不正常的init脚本。

  • [Bug] #607: 允许 fabric.operations.local 当它警告/中止时显示stdout/stderr,如果它正在捕获它们。

  • [Bug] #608: 添加 capture 克瓦格 fabric.contrib.project.rsync_project 帮助调试rsync问题。

1.4.0 2012-02-13

  • [Feature] #72: ssh代理转发支持已将其添加到fabric的ssh库中,并添加了用于使用它的挂钩(默认情况下禁用;使用 -Aenv.forward_agent 感谢Ben Davis将现有的Paramiko补丁移植到 ssh 并对织物进行必要的调整。

  • [Feature] #506: 一个新的输出别名, commands ,允许隐藏远程stdout和本地“running command x”输出行。

  • [Feature] #13: 现在可以通过新的 --set 命令行标志。

  • [Feature] #8: 补充 --skip-bad-hosts/env.skip_bad_hosts 允许跳过暂时关闭/无法访问的主机的选项。

  • [Feature] #474: fabric.tasks.execute 现在允许您访问已执行任务的返回值,方法是返回一个字典,该字典的键是对其执行的主机字符串。

  • [Feature] #12: 增加了尝试多次连接远程系统的能力,而不是立即失败。(默认行为仍为仅重试一次。)请参见 env.timeoutenv.connection_attempts 用于控制连接超时和总尝试次数。 fabric.operations.reboot 也进行了大修(但实际上已弃用——请参阅其更新的文档)。

  • [Feature] #3: Fabric现在可以直接从本地加载ssh配置功能的子集。 ~/.ssh/config 如果 env.use_ssh_config 设置为 True . 见 ssh-config 详情。感谢基里尔·平楚克的第一个补丁。

  • [Feature] #138: env.port 现在可以在fabfile模块级别写入以设置默认的非标准端口号。以前此值是只读的。

  • [Feature] #559: fabric.contrib.project.rsync_project 现在允许用户将额外的特定于ssh的参数附加到 rsync--rsh 旗帜。

  • [Bug] #487: 已大修在中执行的正则表达式转义 fabric.contrib.files.appendfabric.contrib.files.contains 尝试处理更多的角落案件。感谢尼尔·马拉斯的帮助。

  • [Support] #467: (也) #468#469 )少量文件澄清调整。感谢保罗·霍夫曼提供补丁。

  • [Support] #459: 更新我们 setup.py 文件注意到pycrypto发布了2.4.1,它修复了安装工具的问题。

  • [Support] #532: 重新组织并清除 fab --help .

1.3.5 2012-02-13

  • [Bug] #410: 修复了使用 fabric.decorators.task 在另一个装饰器内/下的装饰器,如 fabric.decorators.hosts 可能会导致该任务在按名称调用时变得无效(由于检测到旧样式与新样式任务的方式不同)。这要感谢Dan Colish提供的初始补丁。

  • [Bug] #495: 固定文档示例,显示如何子类 fabric.tasks.Task . 感谢布雷特·海顿的接球和马克·梅里特的接球。

1.2.6 2012-02-13

  • [Bug] #339: 不显示导入的 fabric.colors 成员在 --list 输出。感谢Nick Trew的报道。

  • [Bug] #494: 修复了影响某些 env 值如 env.port 在并联模式下。包括症状 fabric.contrib.project.rsync_project 运行时由于无端口值而退出 @parallel . 感谢Rob Terhaar的报告。

  • [Bug] #510: 并行模式与用户输入(如密码/主机名提示)不兼容,导致密码不明确 Operation not supported by device 需要显示此类提示时出错。这种行为已被更新为清晰而明显的 abort 相反。

  • [Bug] #492: @parallel 没有按预期自动触发线条输出。这个问题已经解决了。感谢布兰登·休伊的接球。

  • [Bug] #410: 修复了使用 fabric.decorators.task 在另一个装饰器内/下的装饰器,如 fabric.decorators.hosts 可能会导致该任务在按名称调用时变得无效(由于检测到旧样式与新样式任务的方式不同)。这要感谢Dan Colish提供的初始补丁。

  • [Bug] #495: 固定文档示例,显示如何子类 fabric.tasks.Task . 感谢布雷特·海顿的接球和马克·梅里特的接球。

1.1.8 2012-02-13

  • [Bug] #339: 不显示导入的 fabric.colors 成员在 --list 输出。感谢Nick Trew的报道。

  • [Bug] #494: 修复了影响某些 env 值如 env.port 在并联模式下。包括症状 fabric.contrib.project.rsync_project 运行时由于无端口值而退出 @parallel . 感谢Rob Terhaar的报告。

  • [Bug] #510: 并行模式与用户输入(如密码/主机名提示)不兼容,导致密码不明确 Operation not supported by device 需要显示此类提示时出错。这种行为已被更新为清晰而明显的 abort 相反。

  • [Bug] #492: @parallel 没有按预期自动触发线条输出。这个问题已经解决了。感谢布兰登·休伊的接球。

  • [Bug] #410: 修复了使用 fabric.decorators.task 在另一个装饰器内/下的装饰器,如 fabric.decorators.hosts 可能会导致该任务在按名称调用时变得无效(由于检测到旧样式与新样式任务的方式不同)。这要感谢Dan Colish提供的初始补丁。

  • [Bug] #495: 固定文档示例,显示如何子类 fabric.tasks.Task . 感谢布雷特·海顿的接球和马克·梅里特的接球。

1.3.4 2012-01-12

  • [Bug] #339: 不显示导入的 fabric.colors 成员在 --list 输出。感谢Nick Trew的报道。

  • [Bug] #494: 修复了影响某些 env 值如 env.port 在并联模式下。包括症状 fabric.contrib.project.rsync_project 运行时由于无端口值而退出 @parallel . 感谢Rob Terhaar的报告。

  • [Bug] #510: 并行模式与用户输入(如密码/主机名提示)不兼容,导致密码不明确 Operation not supported by device 需要显示此类提示时出错。这种行为已被更新为清晰而明显的 abort 相反。

  • [Bug] #492: @parallel 没有按预期自动触发线条输出。这个问题已经解决了。感谢布兰登·休伊的接球。

1.3.3 2011-11-23

  • [Bug] #230: 修正回归:无fabfile和任意命令使用的组合。感谢阿里·赛菲的接球。

  • [Bug] #482: 并行模式应该意味着线条输出;忽略这种行为是一种疏忽。

  • [Bug] #342: 结合 fabric.context_managers.cd 具有 fabric.operations.put 及其 use_sudo 关键字导致无法恢复的错误。这个问题已经解决了。感谢Egor M的报告。

  • [Bug] #341: fabric.contrib.files.append 错误地未能检测到给定的行已经存在于对远程用户隐藏的文件中,并在每次运行时继续追加。这个问题已经解决了。多亏多米尼克·佩雷蒂接球,马丁·维尔坎斯接球。

  • [Bug] #397: 第三方模块中的一些行为不良的对象在结构的“经典或新型任务”期间触发了异常。测试。添加了一个修复程序,试图解决这些问题。

  • [Bug] #400: 处理系统的角箱 pwd.getpwuid 加薪 KeyError 而不是返回有效字符串。感谢Dougal Matthews的接球。

  • [Bug] #437: fabric.decorators.with_settings 现在正确地保留包装函数的docstring和其他属性。感谢埃里克·巴克利的接球和卢克的补位植物。

  • [Bug] #443: fabric.contrib.files.exists 没有展开tildes;现在它展开了。感谢Riccardo Magliocchetti的贴片。

  • [Bug] #446: 将QNX添加到次要案例列表中 fabric.contrib.files.sed 目标。多亏了罗德里戈·马德鲁加的小费。

  • [Bug] #450: 改进处理时的回溯显示 ImportError 对于依赖项。多亏了大卫·沃尔夫的贴片。

  • [Bug] #475: 允许在每个任务args/kwargs中转义等号。

  • [Bug] #441: 在命令行中将任务模块指定为任务不再会爆炸,而是显示通常的“没有该名称的任务”错误消息。感谢Mitchell Hashimoto的接球。

1.2.5 2011-11-23

  • [Bug] #230: 修正回归:无fabfile和任意命令使用的组合。感谢阿里·赛菲的接球。

  • [Bug] #482: 并行模式应该意味着线条输出;忽略这种行为是一种疏忽。

  • [Bug] #342: 结合 fabric.context_managers.cd 具有 fabric.operations.put 及其 use_sudo 关键字导致无法恢复的错误。这个问题已经解决了。感谢Egor M的报告。

  • [Bug] #341: fabric.contrib.files.append 错误地未能检测到给定的行已经存在于对远程用户隐藏的文件中,并在每次运行时继续追加。这个问题已经解决了。多亏多米尼克·佩雷蒂接球,马丁·维尔坎斯接球。

  • [Bug] #397: 第三方模块中的一些行为不良的对象在结构的“经典或新型任务”期间触发了异常。测试。添加了一个修复程序,试图解决这些问题。

  • [Bug] #400: 处理系统的角箱 pwd.getpwuid 加薪 KeyError 而不是返回有效字符串。感谢Dougal Matthews的接球。

  • [Bug] #437: fabric.decorators.with_settings 现在正确地保留包装函数的docstring和其他属性。感谢埃里克·巴克利的接球和卢克的补位植物。

  • [Bug] #443: fabric.contrib.files.exists 没有展开tildes;现在它展开了。感谢Riccardo Magliocchetti的贴片。

  • [Bug] #446: 将QNX添加到次要案例列表中 fabric.contrib.files.sed 目标。多亏了罗德里戈·马德鲁加的小费。

  • [Bug] #450: 改进处理时的回溯显示 ImportError 对于依赖项。多亏了大卫·沃尔夫的贴片。

  • [Bug] #475: 允许在每个任务args/kwargs中转义等号。

  • [Bug] #441: 在命令行中将任务模块指定为任务不再会爆炸,而是显示通常的“没有该名称的任务”错误消息。感谢Mitchell Hashimoto的接球。

1.1.7 2011-11-23

  • [Bug] #230: 修正回归:无fabfile和任意命令使用的组合。感谢阿里·赛菲的接球。

  • [Bug] #482: 并行模式应该意味着线条输出;忽略这种行为是一种疏忽。

  • [Bug] #342: 结合 fabric.context_managers.cd 具有 fabric.operations.put 及其 use_sudo 关键字导致无法恢复的错误。这个问题已经解决了。感谢Egor M的报告。

  • [Bug] #341: fabric.contrib.files.append 错误地未能检测到给定的行已经存在于对远程用户隐藏的文件中,并在每次运行时继续追加。这个问题已经解决了。多亏多米尼克·佩雷蒂接球,马丁·维尔坎斯接球。

  • [Bug] #397: 第三方模块中的一些行为不良的对象在结构的“经典或新型任务”期间触发了异常。测试。添加了一个修复程序,试图解决这些问题。

  • [Bug] #400: 处理系统的角箱 pwd.getpwuid 加薪 KeyError 而不是返回有效字符串。感谢Dougal Matthews的接球。

  • [Bug] #437: fabric.decorators.with_settings 现在正确地保留包装函数的docstring和其他属性。感谢埃里克·巴克利的接球和卢克的补位植物。

  • [Bug] #443: fabric.contrib.files.exists 没有展开tildes;现在它展开了。感谢Riccardo Magliocchetti的贴片。

  • [Bug] #446: 将QNX添加到次要案例列表中 fabric.contrib.files.sed 目标。多亏了罗德里戈·马德鲁加的小费。

  • [Bug] #450: 改进处理时的回溯显示 ImportError 对于依赖项。多亏了大卫·沃尔夫的贴片。

  • [Bug] #475: 允许在每个任务args/kwargs中转义等号。

  • [Bug] #441: 在命令行中将任务模块指定为任务不再会爆炸,而是显示通常的“没有该名称的任务”错误消息。感谢Mitchell Hashimoto的接球。

1.3.2 2011-11-07

  • [Support] #467: (也) #468#469 )少量文件澄清调整。感谢保罗·霍夫曼提供补丁。

  • [Support] #459: 更新我们 setup.py 文件注意到pycrypto发布了2.4.1,它修复了安装工具的问题。

1.2.4 2011-11-07

  • [Bug] #457: 确保Fabric Fast在任何子进程遇到错误时都会失败并行任务。以前,当发生故障时,多任务调用将继续执行第二个ETC任务,这不符合结构通常的行为方式。感谢Github用户 sdcooke 为报告和摩根鹅修复。

  • [Support] #467: (也) #468#469 )少量文件澄清调整。感谢保罗·霍夫曼提供补丁。

  • [Support] #459: 更新我们 setup.py 文件注意到pycrypto发布了2.4.1,它修复了安装工具的问题。

1.1.6 2011-11-07

  • [Bug] #457: 确保Fabric Fast在任何子进程遇到错误时都会失败并行任务。以前,当发生故障时,多任务调用将继续执行第二个ETC任务,这不符合结构通常的行为方式。感谢Github用户 sdcooke 为报告和摩根鹅修复。

  • [Support] #467: (也) #468#469 )少量文件澄清调整。感谢保罗·霍夫曼提供补丁。

  • [Support] #459: 更新我们 setup.py 文件注意到pycrypto发布了2.4.1,它修复了安装工具的问题。

1.3.1 2011-10-24

  • [Bug] #457: 确保Fabric Fast在任何子进程遇到错误时都会失败并行任务。以前,当发生故障时,多任务调用将继续执行第二个ETC任务,这不符合结构通常的行为方式。感谢Github用户 sdcooke 为报告和摩根鹅修复。

1.3.0 2011-10-23

  • [Feature] #19: 现在可以选择并行执行任务。请参阅并行执行文档了解详细信息。主要感谢摩根鹅的初步实施。

  • [Feature] #21: 现在可以使用新的 fabric.tasks.execute API call, to execute task objects (by reference or by name) from within other tasks or in library mode. fabric.tasks.execute honors the other tasks' fabric.decorators.hosts/fabric.decorators.roles 并且还支持传入显式主机和/或角色参数。

  • [Support] #416: 更新了文件,以反映从Redmine到Github的转移。

  • [Support] #393: 修复了任务文档中示例代码段的拼写错误。感谢雨果·加尔萨的接球。

  • [Support] #275: 支持中发布的功能的边缘用例 #19 为打下基础 #275 我们把帕拉米科 Python 'ssh' library 改变了我们对织物1.3及以上的依赖性。这可能会对更不常见的安装用例和包维护人员产生影响,但我们希望在出现任何问题时解决它们。

1.2.3 2011-10-23

  • [Bug] #430: 任务装饰 fabric.decorators.runs_once 在后续调用上打印无关的“正在执行…”状态行。这最多是噪音,最坏是误导,已经被纠正了。感谢雅各布·卡普兰·莫斯的报道。

  • [Bug] #182: 在显示远程stdout/stderr的过程中,fabric偶尔会打印一些无关的行前缀(而这些前缀有时会覆盖换行的文本)。这已得到修复。

  • [Bug] #323: fabric.operations.put 忘记了如何扩展远程文件路径中的前导颚化符。这已经纠正了。多亏了彼得德尔波特的接球。

1.1.5 2011-10-23

  • [Bug] #430: 任务装饰 fabric.decorators.runs_once 在后续调用上打印无关的“正在执行…”状态行。这最多是噪音,最坏是误导,已经被纠正了。感谢雅各布·卡普兰·莫斯的报道。

  • [Bug] #182: 在显示远程stdout/stderr的过程中,fabric偶尔会打印一些无关的行前缀(而这些前缀有时会覆盖换行的文本)。这已得到修复。

  • [Bug] #323: fabric.operations.put 忘记了如何扩展远程文件路径中的前导颚化符。这已经纠正了。多亏了彼得德尔波特的接球。

1.0.5 2011-10-23

  • [Bug] #430: 任务装饰 fabric.decorators.runs_once 在后续调用上打印无关的“正在执行…”状态行。这最多是噪音,最坏是误导,已经被纠正了。感谢雅各布·卡普兰·莫斯的报道。

  • [Bug] #182: 在显示远程stdout/stderr的过程中,fabric偶尔会打印一些无关的行前缀(而这些前缀有时会覆盖换行的文本)。这已得到修复。

  • [Bug] #323: fabric.operations.put 忘记了如何扩展远程文件路径中的前导颚化符。这已经纠正了。多亏了彼得德尔波特的接球。

1.2.2 2011-09-01

  • [Bug] #303: 更新终端大小检测以正确跳过非tty stdout,例如运行时 fab taskname | other_command .

  • [Bug] #373: 重新添加了丢失的功能,防止主机排除正常工作。

  • [Bug] #396: --shortlist 添加后断开 --list-format 不再正确显示短列表格式。这个问题已经解决了。

  • [Bug] #252: fabric.context_managers.settings 会默默地无法设置 env 上下文管理器块之外不存在的键的值。它现在按预期工作。感谢威尔·迈尔的接球和建议的解决方案。

  • [Support] #393: 修复了任务文档中示例代码段的拼写错误。感谢雨果·加尔萨的接球。

1.1.4 2011-09-01

  • [Bug] #303: 更新终端大小检测以正确跳过非tty stdout,例如运行时 fab taskname | other_command .

  • [Bug] #373: 重新添加了丢失的功能,防止主机排除正常工作。

  • [Bug] #396: --shortlist 添加后断开 --list-format 不再正确显示短列表格式。这个问题已经解决了。

  • [Bug] #252: fabric.context_managers.settings 会默默地无法设置 env 上下文管理器块之外不存在的键的值。它现在按预期工作。感谢威尔·迈尔的接球和建议的解决方案。

  • [Support] #393: 修复了任务文档中示例代码段的拼写错误。感谢雨果·加尔萨的接球。

1.0.4 2011-09-01

  • [Bug] #303: 更新终端大小检测以正确跳过非tty stdout,例如运行时 fab taskname | other_command .

  • [Bug] #373: 重新添加了丢失的功能,防止主机排除正常工作。

  • [Bug] #396: --shortlist 添加后断开 --list-format 不再正确显示短列表格式。这个问题已经解决了。

  • [Bug] #252: fabric.context_managers.settings 会默默地无法设置 env 上下文管理器块之外不存在的键的值。它现在按预期工作。感谢威尔·迈尔的接球和建议的解决方案。

  • [Support] #393: 修复了任务文档中示例代码段的拼写错误。感谢雨果·加尔萨的接球。

1.2.1 2011-08-21

  • [Bug] #389: 修正/改进了当Paramiko导入失败时的错误处理。感谢布莱恩·卢夫特的接球。

  • [Bug] #417: abort-on-prompts 如果设置为true,即使同时定义了密码和主机,也会错误地中止。这个问题已经解决了。感谢石田万丽的报道。

  • [Support] #416: 更新了文件,以反映从Redmine到Github的转移。

1.1.3 2011-08-21

  • [Bug] #380: 在测试类似字符串的对象时改进了Unicode支持。感谢吉里·巴顿的接球和接球。

  • [Bug] #389: 修正/改进了当Paramiko导入失败时的错误处理。感谢布莱恩·卢夫特的接球。

  • [Bug] #417: abort-on-prompts 如果设置为true,即使同时定义了密码和主机,也会错误地中止。这个问题已经解决了。感谢石田万丽的报道。

  • [Support] #416: 更新了文件,以反映从Redmine到Github的转移。

1.0.3 2011-08-21

  • [Bug] #380: 在测试类似字符串的对象时改进了Unicode支持。感谢吉里·巴顿的接球和接球。

  • [Bug] #389: 修正/改进了当Paramiko导入失败时的错误处理。感谢布莱恩·卢夫特的接球。

  • [Bug] #417: abort-on-prompts 如果设置为true,即使同时定义了密码和主机,也会错误地中止。这个问题已经解决了。感谢石田万丽的报道。

  • [Support] #416: 更新了文件,以反映从Redmine到Github的转移。

1.2.0 2011-07-12

  • [Feature] #22: 增强 @task 添加别名、每个模块的默认任务以及对包装任务类的控制。感谢TravisSwicegood的前期工作和合作。

  • [Support] #382: 对changelog格式和流程进行实验性的修改,以减少支持多个开发行的麻烦。