[250319] Git 2.49 版本发布 | Ruff v0.10.0 发布:更智能、更稳定、更强大!

120 阅读5分钟

Git 2.49 版本发布

Git 2.49 版本带来了诸多改进,涵盖用户界面、工作流程、性能优化和内部实现等方面。

主要功能改进

  • zsh 自动补全脚本更新: 提升 zsh 用户的命令行体验。
  • 改进的 delta-base 选择: git pack-objectsgit repack 新增选项,可使用替代路径哈希函数,从而生成包含更深历史记录的包文件。
  • git gc 新增 --expire-to 选项: 控制对象过期时间,并传递给底层的 git repack
  • 自动更正命令: autocorrect = 1 配置项现在会立即运行更正后的命令,而不是等待 0.1 秒。
  • 浅克隆单个提交: git clone 支持对非分支尖端的单个提交进行浅克隆。
  • git backfill 提升无 blob 克隆性能: 批量下载必要文件,避免逐个下载 blob 的开销。
  • git push --atomic --porcelain 的错误处理改进: 正确处理来自另一端的错误状态。
  • git rev-list --missing= 的增强: 支持 print-info 选项,提供有关缺失对象的详细信息,例如路径和类型。
  • 更新的 gitk: 图形化 Git 仓库浏览器得到更新。
  • 文档改进: git commitgit rebase 的文档现在将提交标题称为“标题”,而不是“主题”。
  • 版本信息: 默认情况下,uname -s 的值会作为“version”功能的一部分通过网络发送。
  • git refs migrate 的增强: 可选择不迁移 reflog。
  • 重新启用 netrc 支持: 通过 cURL 库重新启用了 HTTP 传输的 netrc 支持。
  • 移除 .git/branches.git/remotes 支持的说明: 在 BreakingChanges 文档中进一步澄清了移除 .git/branches.git/remotes 支持的细节。
  • 子模块合并文档: 更详细地记录了合并期间子模块的行为。

性能和内部改进

  • 更多的 -Wsign-compare 修复: 提升代码质量和安全性。
  • Meson 构建支持 unsafe-sha1: 提供更多构建选项。
  • Meson 构建覆盖范围更广: 现在也涵盖 contrib/ 和其他位置。
  • 简化 LSan 结果检查: 使代码更简洁健壮。
  • 改进的代码库访问: 更多代码路径通过调用链传递仓库,而不是依赖于主要的 the_repository 对象。
  • 更多的单元测试迁移到 clar 测试框架: 提升测试覆盖率。
  • 新的对象访问 API: 引入基于公共路径或类型批量访问对象的新 API。
  • 为 Git 3.0 的重大更改做准备: 允许提前选择移除对使用 $GIT_DIR/branches/$GIT_DIR/remotes/ 目录配置远程仓库的支持。
  • 清理 zlib 交互代码: 为使用 zlib-ng 构建做准备。
  • 新增 Rust 外部语言接口: 扩展 Git 的可扩展性。
  • 文档文件重命名: 所有文档 .txt 文件已重命名为 .adoc,以帮助内容感知编辑器。
  • git difftool 代码清理: 提升代码可读性和可维护性。
  • 递归合并后端中的重命名处理微优化: 提升合并性能。
  • path.[ch] API 改进: 显式传递仓库参数,避免依赖单例实例。
  • 大型对象 promisor 协议扩展: 提升大型对象处理效率。
  • 更新 editorconfig 文件: 将 bash 脚本识别为通用的 Bourne shell 脚本。
  • 修复 Meson 构建文档问题: 确保所有文档都正确构建。

错误修复

该版本还修复了大量错误,包括子模块选项解析、凭据缓存、reflog 条目、git fetch 文件描述符泄漏、git apply 整数溢出等问题,以及其他代码清理、文档修复和构建修复。

来源:
raw.githubusercontent.com/git/git/mas…

Ruff v0.10.0 发布:更智能、更稳定、更强大!

Python 代码检查和格式化工具 Ruff 发布了 v0.10.0 版本,带来了多项改进,提升了性能、稳定性和用户体验。

核心改进:

  • 更智能的 Python 版本检测:
    简化了 Python 版本检测,即使 pyproject.toml 文件中没有 [tool.ruff] 部分,Ruff 也会尝试读取 requires-python 字段来确定目标 Python 版本。这使得版本相关的代码检查和格式化建议更加准确,并为未来更好地检测版本相关语法错误奠定了基础。

  • 更健壮的抑制注释:
    升级了 # noqa 注释的解析逻辑,使其更加健壮和一致。现在支持更灵活的注释格式,例如在文件级抑制注释中添加前导或尾随注释。同时,对无效的注释格式会发出警告,并尽可能地抑制预期的规则。

  • 更新了 TYPE_CHECKING 行为:
    Ruff 现在与 mypypyright 等工具对 TYPE_CHECKING 的处理方式保持一致。不再支持使用 if 0if False 代替 if TYPE_CHECKING,而是支持使用任何 名为 TYPE_CHECKING 的符号,即使它不是 typing.TYPE_CHECKING

规则稳定性提升:

多个规则已从预览版转为稳定版,包括:batched-without-explicit-strict (B911), unnecessary-dict-comprehension-for-iterable (C420), datetime-min-max (DTZ901) 等。

其他行为稳定性提升:

  • 简化了 flake8-builtins 规则的选项名称,去除了冗余的 builtins- 前缀。
  • stdlib-module-shadowing (A005) 规则现在默认使用非严格模块名称检查。
  • custom-type-var-for-self (PYI019) 规则的准确性得到提升,并支持自动修复。

规则弃用:

  • suspicious-xmle-tree-usage (S320) 和 non-pep604-isinstance (UP038) 规则已被弃用。

升级方法:

使用 pip 升级:

uv pip install --upgrade ruff

Ruff v0.10.0 版本带来了多项改进,使其更加智能、稳定和易用。建议所有用户升级到最新版本,以体验更强大的 Python 代码检查和格式化功能。

更多详情请参考 GitHub 发布页面:

来源:
astral.sh/blog/ruff-v…




更多内容请查阅 : blog-250319


关注微信官方公众号 : oh my x

获取开源软件和 x-cmd 最新用法