NetAddr::IP 4.080_05:请进行冒烟测试
内容提要
NetAddr::IP 发布 4.080_05 测试版,修复约百处缺陷并重写文档。XS 的 C 实现恢复编译,Linux、BSD、macOS 默认启用,Windows 需加 --xs。三项破坏性变更修正文档所述不应出现的行为,废弃项归入统一章节。许可证改为 MIT,Socket6 降为建议依赖。测试套件迁移至 Test2::V1,共 2753 项测试。
延伸解读
XS 构建的默认启用与平台差异
本次更新中,XS(C 实现)在 Linux、BSD 和 macOS 上默认启用,而 Windows 仍默认使用纯 Perl,需通过 perl Makefile.PL --xs 显式启用。macOS 自 2013 年起默认纯 Perl 的原因已不适用,因此恢复默认 XS。Windows 的旧配置步骤已移除,XS 现在可编译并通过 CI 测试。用户可通过 NetAddr::IP::Util::mode() 确认实际构建模式。
破坏性变更与文档一致性
三项破坏性变更旨在修正文档中声明不应出现的行为:re() 在 IPv4 空间的 IPv6 对象上不再返回无法匹配的正则;re6() 改为返回非捕获组;new(undef) 现在返回 undef 而非默认路由。这些变更可能影响依赖旧有异常行为的代码,升级时需留意。
许可证变更与依赖调整
许可证从 GPL v2 或 Artistic 双许可改为 MIT,由所有版权持有人同意。MIT 更宽松,仅要求保留版权声明,且统一适用于所有文件。Socket6 从硬性依赖降为建议依赖,未安装时使用模块自带的 inet_pton 和 inet_ntop,其与平台实现的差异已有文档说明。
测试与文档的全面改进
测试套件迁移至 Test2::V1,包含 165 个文件和 2753 项测试,CI 覆盖 Perl 5.14 至 5.42 的 Linux、多个 macOS 镜像及 Windows 的 5.24 至 5.30。每个构建都会检查实际模式,防止静默回退。文档全面重写,确保两个模块的条目一致,示例使用 RFC 5737 地址,并修正了之前错误的输出。
Q&A
NetAddr::IP 4.080_05 是什么?为什么要发布这个测试版?
NetAddr::IP 4.080_05 是 NetAddr::IP 模块的一个测试版(trial release),是自 2016 年 4.079 发布以来的第五个测试版。发布目的是修复约百处缺陷、重写文档,并引入三项破坏性变更,同时恢复 XS(C 实现)的编译。
NetAddr::IP 4.080_05 在哪些平台上默认启用 XS 构建?Windows 上如何启用?
Linux、BSD 和 macOS 默认启用 XS 构建(macOS 自 2013 年以来首次默认启用)。Windows 默认仍使用纯 Perl,但可以通过 perl Makefile.PL --xs 来启用 XS 构建。
NetAddr::IP 4.080_05 有哪些破坏性变更?
三项破坏性变更:1) re() 在 IPv4 空间的 IPv6 对象上不再返回无法匹配的正则表达式;2) re6() 返回非捕获组 (?:...) 而不是捕获组;3) new(undef) 返回 undef 而不是默认路由。
NetAddr::IP 4.080_05 的许可证有什么变化?为什么改为 MIT?
许可证从 GPL v2 或 Artistic License 双许可改为 MIT 许可证,由所有三位版权持有人同意。MIT 是一种宽松许可证,没有 copyleft 义务,只需保留版权声明,且统一覆盖所有文件,避免了之前不同文件适用不同许可证的混乱。
如何检查安装的 NetAddr::IP 是 XS 还是纯 Perl 构建?
运行命令:perl -MNetAddr::IP::Util -e 'print NetAddr::IP::Util::mode(), "\n"'。它会输出 CC XS 或 Pure Perl。
NetAddr::IP 4.080_05 中 Socket6 依赖有什么变化?没有 Socket6 会有什么影响?
Socket6 从硬性前提变为建议依赖,最小安装不再需要它。没有 Socket6 时,模块使用自己的 inet_pton 和 inet_ntop 实现,而不是平台的实现,并且两者差异已在文档中说明。
NetAddr::IP 4.080_05 的测试套件有什么更新?
测试套件迁移到 Test2::V1 并用 perltidy 重新格式化,包含 165 个文件和 2753 项测试。GitHub CI 在 Linux 上测试 Perl 5.14 到 5.42,在四个 macOS 镜像上测试,在 Windows 上测试 Perl 5.24 到 5.30,并且每个构建都会检查实际构建模式。
如何安装 NetAddr::IP 4.080_05 测试版?
可以使用 cpanm 安装:cpanm DJZORT/NetAddr-IP-4.080_05.tar.gz。或者从 GitHub 克隆并运行测试:git clone https://github.com/cpan-authors/perl-NetAddr-IP.git,然后 cd perl-NetAddr-IP,运行 dzil test。