主要观点:正在努力为 Python 构建新的通用锁文件标准,此过程凸显创建满足所有人的标准之难,不同 Python 打包工具对锁文件的看法不同;Python 存在元数据问题,其元数据系统复杂且缺乏约束;JavaScript 中约束能简化和改进系统,而 Python 历史上对元数据约束少,导致诸多问题,如元数据访问 disjointed 复杂、需强制重新生成、缓存失效不明确、元数据存储碎片化、动态元数据使解析器变慢、认知复杂度高等。
关键信息:
- 新 Python 锁文件标准构建在 Python 讨论论坛进行。
- JavaScript 元数据简单,有 1:1 关系、跨平台一致、静态且更新需显式改 package.json。
- Python 旧 setup.py 系统允许任意代码执行,本地和 PyPI 上的元数据生成方式不同,新 pyproject.toml 标准虽有改进但仍存在问题。
- 动态元数据给 Python 带来诸多问题,如使解析器变慢、增加认知复杂度等,但移除它可能面临社会问题。
重要细节:
- JavaScript 中 @sentry/cli 包通过 optionalDependencies 和平台过滤器处理平台特定依赖。
- @sentry/cli 2.39.0 版本时 resolver 只需访问一个 URL 即可获取所有信息。
- 过去在本地开发中常出现 pkg_resources.DistributionNotFound 异常。
- 在 Bluesky 上因将 readme 生成器视为问题而受指责,理想情况是 site-packages 中的内容与版本控制中的一致且有 README.md 文件。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。