PyPI现已支持项目归档功能 - 提升供应链安全的重要一步

PyPI正式推出项目归档功能,允许维护者标记不再维护的项目,帮助下游用户做出更明智的依赖决策。这是PyPI供应链安全改进的重要里程碑,文章详细介绍了归档功能的实现机制和未来规划。

PyPI现已支持归档项目

PyPI现在支持将项目标记为已归档状态。项目所有者可以通过归档操作向用户明确表示该项目将不再接收更新。

为什么状态标记很重要

项目状态标记能力是PyPI长期存在的功能需求。这适用于被放弃、无人维护、功能完整或已弃用的项目,维护者希望通过状态标记让用户对未来的更新和使用预期有清晰认知。

如何归档项目

项目所有者可以在项目设置页面底部找到归档选项。归档后,项目主页会显示明显的归档通知。重要的是:

  • 归档不同于yank或删除操作
  • 归档项目不会被删除
  • 归档项目默认仍可被解析
  • 项目可随时取消归档状态

技术实现

后台实现基于PyPI最近添加的"项目隔离"功能架构。通过复用为隔离功能开发的LifecycleStatus模型和状态机,PyPI团队能够快速扩展出新的"archived"状态。

未来方向

当前归档状态仅体现在Web界面,团队正在努力:

  1. 为pip/uv等安装器添加机器可读的归档状态支持
  2. 规划更多项目状态类型(如"deprecated"、“feature-complete"等)
  3. 持续完善项目生命周期管理功能

致谢

感谢PyPI管理团队和Alpha-Omega基金会对这项工作的支持。Alpha-Omega致力于通过改进关键开源项目的安全性来保护社会。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计