Homebrew v7.0.0:最低 macOS 升至 Big Sur
7.0.0
推荐理由
v7.0.0 移除了对 Intel Mac 的支持并将最低系统要求提至 Big Sur,这是必须升级或迁移的核心破坏性变更。请检查你的运行环境是否符合要求,并及时升级 Homebrew。
What's Changed
更改内容
- Make macOS installer package Apple Silicon only by @MikeMcQuaid in #23779
- Forbid T.must and T.unsafe with RuboCop by @MikeMcQuaid in #23787
- Warn (don't error) on unavailable Linux sandbox in brew tests by @waldyrious in #23782
- Add std_shards_args and update creator for crystal by @cho-m in #23790
- cask/audit: fix repo names ending in git by @krehel in #23796
- Stop brew tests dirtying the working tree by @dduugg in #23800
- Attest supported third-party tap bottles by @heaths in #23769
- shared_audits: check homepage domain age via RDAP by @bevanjkay in #23752
- Escape dots in domain regexps by @dduugg in #23799
- Deprecate/disable/remove for major/minor release by @MikeMcQuaid in #23729
- Bump resources pinned to a git tag by @daeho-ro in #23802
- utils/tty: avoid caching an unfinished size by @rangaNP in #23804
- cask/quarantine: gate metadata operations behind a single doorway by @aholland in #23628
- Raise minimum macOS to Big Sur (11) by @p-linnane in #23703
- Use non-capturing regexp groups where captures are unused by @dduugg in #23793
- keg: scope node-gyp debris to build trees by @daeho-ro in #23805
- Base macOS migration advice on binary packages by @MikeMcQuaid in #23806
- livecheck: really use referenced livecheck options by @samford in #23775
- extend/ENV/super: add opam defaults by @cho-m in #23810
- Improve PythonVersions cop to reject hardcoded pythonX.Y assignment by @iMichka in #23479
- Fix brew edit crash for an uninstalled tap by @dduugg in #23811
- Restore inherited streams for safe_system by @MikeMcQuaid in #23809
- Stop the uses_from_macos cop crashing by @dduugg in #23813
- unpack_strategy: skip symlinks in each_directory by @p-linnane in #23814
- completions: match Bash candidates literally by @p-linnane in #23816
- tap: print invalid tap names instead of crashing by @krehel in #23818
- Relocate only C strings when patching binaries by @MikeMcQuaid in #23812
- shims/super/cc: Keep dependency -L flags ahead of superenv paths by @krehel in #23821
- Portable Ruby 4.0.6_2 by @p-linnane in #23838
- bottle: verify and extract from a snapshot by @p-linnane in #23815
- Strategy: deprecate user_agent fallback by @samford in #23834
- Require utils/analytics in cmd/info by @waldyrious in #23833
- Crate: add default strategy user agent by @samford in #23832
- install steps: add {{arch}} template token by @daeho-ro in #23836
- patch: harden staged-tree target containment by @dduugg in #23819
- Avoid evaluating cached and installed recipes by @p-linnane in #23822
- create: insert metadata after ERB parsing by @p-linnane in #23825
- vulns: keep unknown subjects unresolved by @p-linnane in #23830
- style: root the RuboCop project index at the tap by @p-linnane in #23835
- tap: link completions only for canonical origins by @p-linnane in #23823
- Reject path components in internal command names by @p-linnane in #23831
- version-install: keep the requested provider by @p-linnane in #23826
- tap: check provenance for migration oldnames by @p-linnane in #23827
- bundle: run go inventory with argument arrays by @p-linnane in #23828
- svn: read externals from the pinned checkout by @p-linnane in #23829
- services: default to canonical Linux service labels by @p-linnane in #23837
- services: keep active systemd timers on cleanup by @p-linnane in #23839
- Mark unsatisfied requirements in brew info by @waldyrious in #23841
- pypi: run metadata inspection in the sandbox by @p-linnane in #23824
- docs/Cask-Cookbook: align with homebrew-cask standards by @bevanjkay in #23842
- info: mark disabled/deprecated casks in title by @HaraldNordgren in #23843
- cask: ignore verified in stored metadata by @Moisan in #23820
- advisory-match: skip unverifiable formula history by @p-linnane in #23845
- bump: handle partially disabled packages by @MikeMcQuaid in #23847
- sorbet: More typechecking fixes for tests by @issyl0 in #23848
- Move bottle CI workflow helpers into brew by @p-linnane in #23852
- Ban command literals in Homebrew source by @p-linnane in #23849
- rubocops/cask: reject nested OS dependencies by @p-linnane in #23861
- Load legacy bottles from formula history by @p-linnane in #23857
- Preserve resource evidence for overrides by @p-linnane in #23856
- rubocops/cask: add cop for font stanza sorting by @krehel in #23851
- sorbet: Bump more tests to typed: true or higher by @issyl0 in #23854
- formula: improve typing conflicts_with by @cho-m in #23855
- Harden advisory history walks by @p-linnane in #23858
- trust: ignore a bare tap name in ARGV by @dduugg in #23864
- trust: normalise the installed-tap reference by @dduugg in #23865
- cask/installer.rb: cast Artifact::GeneratedScript by @toobuntu in #23866
- bundle: install batched casks as casks by @dduugg in #23862
- Detect shallow taps through linked worktrees by @p-linnane in #23859
- tests: group parallel runs by recorded runtime by @dduugg in #23868
- cask/audit: anchor cask audit regexps to url by @krehel in #23870
- cask/audit: load installation checks by @waldyrious in #23873
- Apply service env overrides to run by @oxsean in #23869
- install: report formulae in a mixed dry run by @dduugg in #23874
- curl: only expand secrets the download declared by @dduugg in #23863
- Isolate formula history loading by @p-linnane in #23872
- Broaden formula history error handling by @p-linnane in #23875
- Restore mixed bundle install batches by @MikeMcQuaid in #23871
- Deduplicate advisory alias hits by @p-linnane in #23877
- cmd/cache: print cask cache paths for Linux platforms by @krehel in #23850
- Fix temporary service plist suffix by @oxsean in #23878
- Options: remove hash support from merge methods by @samford in #23879
- test-bot: add padded prefix output by @p-linnane in #23882
- Use setup-ruby in vendor version workflow by @p-linnane in #23883
- Support registry package overrides by @p-linnane in #23880
- Document remove-disabled window mirror by @p-linnane in #23885
- Add commands for Python resource automation by @p-linnane in #23881
- Decouple macOS release names from support status by @p-linnane in #23887
- Reuse macOS release aliases in cask audit by @p-linnane in #23888
- tar: validate tarballs named with a compound extension by @rawsun007 in #23890
- Even more deprecations by @MikeMcQuaid in #23892
- Narrow mkdir_p sandbox write permissions by @MikeMcQuaid in #23897
- Show red ⊘ for packages that can't be installed by @HaraldNordgren in #23853
- Fix SSH Python resource updates in the sandbox by @MikeMcQuaid in #23896
- Move Cask CI helpers into brew by @p-linnane in #23886
- bump: autobump partially disabled packages by @AlternateRT in #23898
- cask: allow identical macOS sha256 with Linux by @p-linnane in #23902
- advisory-match: protect reviewed ranges by @p-linnane in #23903
- shellenv: prioritise Homebrew across shells by @MikeMcQuaid in #23900
- Ignore uv executable entries in Bundle by @edel67 in #23905
- Allow limiting total build-from-source dependents by @cho-m in #23884
- Adjust macOS subprocess policy by @MikeMcQuaid in #23907
- cask: hoist OS sha256 and sort depends_on by @p-linnane in #23901
- Adjust macOS subprocess policy by @MikeMcQuaid in #23909
- test_bot: source-building more deps on Linux by @cho-m in #23910
- rubocops/cask: reject disallowed uninstall and zap patterns by @bevanjkay in #23908
- Maintain bottle coverage during macOS bootstrap by @p-linnane in #23918
- bump-formula-pr: support bumping resource using revision as version by @cho-m in #23914
- curl_download_strategy: fix caching edgecase by @bevanjkay in #23917
- diagnostic: indent all findings equally by @AlternateRT in #23904
- Soften doctor output issue checklist wording by @MikeMcQuaid in #23921
- docs/Formula-Cookbook: fix broken link by @botantony in #23923
- Refine macOS sandbox compatibility by @MikeMcQuaid in #23920
- 仅针对 Apple Silicon 制作 macOS 安装程序包,由 @MikeMcQuaid 在 #23779 中完成
- 通过 RuboCop 禁止使用 T.must 和 T.unsafe,由 @MikeMcQuaid 在 #23787 中完成
- 在 brew 测试中,当 Linux 沙箱不可用时发出警告(而非报错),由 @waldyrious 在 #23782 中完成
- 为 crystal 添加 std_shards_args 并更新创建者,由 @cho-m 在 #23790 中完成
- cask/audit:修复以 git 结尾的仓库名称问题,由 @krehel 在 #23796 中完成
- 防止 brew 测试污染工作树,由 @dduugg 在 #23800 中完成
- 证明受支持的第三方 tap 瓶的有效性,由 @heaths 在 #23769 中完成
- shared_audits:通过 RDAP 检查主页域名的年龄,由 @bevanjkay 在 #23752 中完成
- 转义域名正则表达式中的点号,由 @dduugg 在 #23799 中完成
- 按主要/次要版本弃用/禁用/移除功能,由 @MikeMcQuaid 在 #23729 中完成
- 提升固定到 git 标签的资源版本,由 @daeho-ro 在 #23802 中完成
- utils/tty:避免缓存未完成的尺寸,由 @rangaNP 在 #23804 中完成
- cask/quarantine:将元数据操作限制在单一入口之后,由 @aholland 在 #23628 中完成
- 将最低 macOS 版本要求提升至 Big Sur (11),由 @p-linnane 在 #23703 中完成
- 在未使用的捕获处使用非捕获型正则表达式组,由 @dduugg 在 #23793 中完成
- keg:将 node-gyp 残留物限制在构建目录内,由 @daeho-ro 在 #23805 中完成
- 基于二进制包提供 macOS 迁移建议,由 @MikeMcQuaid 在 #23806 中完成
- livecheck:真正使用引用的 livecheck 选项,由 @samford 在 #23775 中完成
- extend/ENV/super:添加 opam 默认值,由 @cho-m 在 #23810 中完成
- 改进 PythonVersions cop 以拒绝硬编码的 pythonX.Y 赋值,由 @iMichka 在 #23479 中完成
- 修复 brew edit 在未安装的 tap 上崩溃的问题,由 @dduugg 在 #23811 中完成
- 恢复 safe_system 的继承流,由 @MikeMcQuaid 在 #23809 中完成
- 防止 uses_from_macos cop 崩溃,由 @dduugg 在 #23813 中完成
- unpack_strategy: 在 each_directory 中跳过符号链接,由 @p-linnane 在 #23814 中贡献
- completions: 按字面匹配 Bash 候选项,由 @p-linnane 在 #23816 中贡献
- tap: 打印无效的 tap 名称而非崩溃,由 @krehel 在 #23818 中贡献
- 仅在修补二进制文件时重新定位 C 字符串,由 @MikeMcQuaid 在 #23812 中贡献
- shims/super/cc: 将依赖的 -L 标志置于 superenv 路径之前,由 @krehel 在 #23821 中贡献
- Portable Ruby 4.0.6_2,由 @p-linnane 在 #23838 中贡献
- bottle: 验证并从快照中提取,由 @p-linnane 在 #23815 中贡献
- Strategy: 弃用 user_agent 回退机制,由 @samford 在 #23834 中贡献
- 在 cmd/info 中要求 utils/analytics,由 @waldyrious 在 #23833 中贡献
- Crate: 添加默认策略 user agent,由 @samford 在 #23832 中贡献
- install steps: 添加 {{arch}} 模板令牌,由 @daeho-ro 在 #23836 中贡献
- patch: 通过硬化 staged-tree 目标包含性来加固,由 @dduugg 在 #23819 中贡献
- 避免评估缓存和已安装的配方,由 @p-linnane 在 #23822 中贡献
- create: 在 ERB 解析后插入元数据,由 @p-linnane 在 #23825 中贡献
- vulns: 保持未知主题未解析状态,由 @p-linnane 在 #23830 中贡献
- style: 将 RuboCop 项目索引根植于 tap,由 @p-linnane 在 #23835 中贡献
- tap: 仅为规范来源链接补全,由 @p-linnane 在 #23823 中贡献
- 拒绝内部命令名称中的路径组件,由 @p-linnane 在 #23831 中贡献
- version-install: 保留请求的提供程序,由 @p-linnane 在 #23826 中贡献
- tap: 检查迁移 oldnames 的来源证明,由 @p-linnane 在 #23827 中贡献
- bundle: 使用参数数组运行 go inventory,由 @p-linnane 在 #23828 中贡献
- svn: 从固定的签出中读取外部项,由 @p-linnane 在 #23829 中贡献
- services: 默认使用规范的 Linux 服务标签,由 @p-linnane 在 #23837 中贡献
- services: 在清理时保留活动的 systemd 计时器,由 @p-linnane 在 #23839 中贡献
- 在 brew 信息中标记未满足的要求,由 @waldyrious 在 #23841 中完成
- pypi:在沙箱中运行元数据检查,由 @p-linnane 在 #23824 中完成
- docs/Cask-Cookbook:与 homebrew-cask 标准对齐,由 @bevanjkay 在 #23842 中完成
- info:在标题中标记已禁用/已弃用的 cask,由 @HaraldNordgren 在 #23843 中完成
- cask:忽略存储元数据中的 verified,由 @Moisan 在 #23820 中完成
- advisory-match:跳过无法验证的 formula 历史记录,由 @p-linnane 在 #23845 中完成
- bump:处理部分禁用的软件包,由 @MikeMcQuaid 在 #23847 中完成
- sorbet:为测试进行更多类型检查修复,由 @issyl0 在 #23848 中完成
- 将 bottle CI 工作流助手移至 brew,由 @p-linnane 在 #23852 中完成
- 禁止 Homebrew 源代码中的命令字面量,由 @p-linnane 在 #23849 中完成
- rubocops/cask:拒绝嵌套的 OS 依赖项,由 @p-linnane 在 #23861 中完成
- 从 formula 历史记录中加载旧版 bottle,由 @p-linnane 在 #23857 中完成
- 保留覆盖的资源证据,由 @p-linnane 在 #23856 中完成
- rubocops/cask:添加用于 font stanza 排序的 cop,由 @krehel 在 #23851 中完成
- sorbet:将更多测试提升为 typed: true 或更高,由 @issyl0 在 #23854 中完成
- formula:改进 conflicts_with 的类型冲突处理,由 @cho-m 在 #23855 中完成
- 加固 advisory 历史遍历,由 @p-linnane 在 #23858 中完成
- trust:忽略 ARGV 中的裸 tap 名称,由 @dduugg 在 #23864 中完成
- trust:规范化 installed-tap 引用,由 @dduugg 在 #23865 中完成
- cask/installer.rb:转换 Artifact::GeneratedScript,由 @toobuntu 在 #23866 中完成
- bundle:作为 cask 批量安装 cask,由 @dduugg 在 #23862 中完成
- 通过链接的工作树检测浅层 tap,由 @p-linnane 在 #23859 中完成
- tests:按记录的运行时间对并行运行进行分组,由 @dduugg 在 #23868 中完成
- cask/audit:将 cask 审计正则表达式锚定到 url,由 @krehel 在 #23870 中完成
- cask/audit:通过 @waldyrious 在 #23873 中加载安装检查
- 通过 @oxsean 在 #23869 中将服务环境变量覆盖应用到运行命令
- 通过 @dduugg 在 #23874 中报告混合干跑模式下的公式
- 通过 @dduugg 在 #23863 中仅展开下载声明的秘密变量
- 通过 @p-linnane 在 #23872 中隔离公式历史加载
- 通过 @p-linnane 在 #23875 中扩大公式历史错误处理范围
- 通过 @MikeMcQuaid 在 #23871 中恢复混合捆绑包安装的批次
- 通过 @p-linnane 在 #23877 中去重安全公告别名命中
- 通过 @krehel 在 #23850 中为 Linux 平台打印 cask 缓存路径
- 通过 @oxsean 在 #23878 中修复临时服务 plist 后缀
- 通过 @samford 在 #23879 中从合并方法中移除哈希支持
- 通过 @p-linnane 在 #23882 中为 test-bot 添加填充前缀输出
- 通过 @p-linnane 在 #23883 中在供应商版本工作流中使用 setup-ruby
- 通过 @p-linnane 在 #23880 中支持注册表包覆盖
- 通过 @p-linnane 在 #23885 中记录移除禁用窗口镜像
- 通过 @p-linnane 在 #23881 中为 Python 资源自动化添加命令
- 通过 @p-linnane 在 #23887 中将 macOS 发布名称与支持状态解耦
- 通过 @p-linnane 在 #23888 中在 cask 审计中复用 macOS 发布别名
- 通过 @rawsun007 在 #23890 中验证使用复合扩展名命名的压缩包
- 通过 @MikeMcQuaid 在 #23892 中进行更多弃用操作
- 通过 @MikeMcQuaid 在 #23897 中缩小 mkdir_p 沙箱写入权限
- 通过 @HaraldNordgren 在 #23853 中为无法安装的软件包显示红色 ⊘
- 通过 @MikeMcQuaid 在 #23896 中修复沙箱中的 SSH Python 资源更新
- 通过 @p-linnane 在 #23886 中将 Cask CI 辅助工具移至 brew
- bump:@AlternateRT 在 #23898 中部分禁用了 autobump 包
- cask:@p-linnane 在 #23902 中允许 macOS sha256 与 Linux 相同
- advisory-match:@p-linnane 在 #23903 中保护已审查的范围
- shellenv:@MikeMcQuaid 在 #23900 中优先在各 Shell 中使用 Homebrew
- @edel67 在 #23905 中忽略 Bundle 中的 uv 可执行条目
- @cho-m 在 #23884 中允许限制从源代码构建的依赖项总数
- @MikeMcQuaid 在 #23907 中调整 macOS 子进程策略
- cask:@p-linnane 在 #23901 中提升 OS sha256 并按 depends_on 排序
- @MikeMcQuaid 在 #23909 中调整 macOS 子进程策略
- test_bot:@cho-m 在 #23910 中在 Linux 上更多使用源码构建依赖项
- rubocops/cask:@bevanjkay 在 #23908 中拒绝不允许的 uninstall 和 zap 模式
- @p-linnane 在 #23918 中在 macOS 引导期间保持 bottle 覆盖率
- bump-formula-pr:@cho-m 在 #23914 中支持使用修订号作为版本号来 bump resource
- curl_download_strategy:@bevanjkay 在 #23917 中修复缓存边缘情况
- diagnostic:@AlternateRT 在 #23904 中使所有发现项缩进一致
- @MikeMcQuaid 在 #23921 中缓和 doctor 输出问题清单措辞
- docs/Formula-Cookbook:@botantony 在 #23923 中修复损坏的链接
- @MikeMcQuaid 在 #23920 中优化 macOS 沙盒兼容性
更进一步:量化金融体系
看懂新闻只是起点——沿量化金融路径,把它变成能交付的工程能力