• 全新的python包管理仓库(PyPI)进入beta测试阶段
  • 发布于 2个月前
  • 189 热度
    0 评论
pypi.org网站上的全新的python包管理仓库(PyPI)目前已处于beta测试阶段了。预计会在2018年4、5月份进行新旧服务的切换,这里主要对为什么我们要进行切换,有什么新的变化以及有那些可期待的特性进行简单介绍。如果你想在新旧网站切换时收到提醒邮件的话,请注册一下Pypi公告邮件列表(https://mail.python.org/mm3/mailman3/lists/pypi-announce.python.org/)

背景
目前旧的网站pypi.python.org在2000年就开始运营了,那时候还没有现代意义上的web框架。它的代码库非常陈旧,我们的开发人员进行维护或者开发新功能都很困难。为了使PyPI服务不宕机,维护人员往往需要投入大量的时间和精力。

在pypi.org网站上新版PyPI(代码库:Warehouse)更现代化,而且底层的代码也都是最新的。新版本采用了现代的web框架(Pyramid),进行了100%后端测试覆盖以及使用基于Docker的开发环境,使得开发人员和能够更容易维护和运营以及添加新特性。

感谢Mozilla的开源基金支持,我们设计并添加了新功能特性,重做了基础架构,将流量重定向到新网站并关闭旧网站。新旧服务切换工作主要包括重定向浏览器访问和来自旧网站的pip install流量;当流量切换完成后,在4月底或5月初的某个时候,旧网站将会完全关闭。

迁移
你可能不需要做任何改变。因为有重定向服务,您的网站,服务和工具都可以无缝切换到新版PyP。

用户:对于Windows和Linux系统用户,只要您系统的OPenSSL库支持TLSv1.2.,那么你什么都不用改变。pip install会和以前一样正常工作。对于macOS/OS X 用户,如果您系统版本为10.12或者更旧,则需要升级最新的pip版本(9.0.3)才能安全的连接PyPI:

curl https://bootstrap.pypa.io/get-pip.py | python

包维护者:如果您使用setup.py来上传版本,我们建议您切换到Twine。 新的PyPI的用户名/密码和旧的PyPI一致。 如果您有什么问题,请参考python打包迁移指南(https://packaging.python.org/guides/migrating-to-pypi-org)进行操作。


API用户:参考API用户迁移指南(https://warehouse.readthedocs.io/api-reference/integration-guide/#migrating-to-the-new-pypi)

如果您受到一些弃用特性的影响(下面列出的),那么你需要在2018年4月之前进行项目迁移和调整。如果需要帮助的话,可以线上沟通或者直接联系我们。你也可以注册请注册一下Pypi公告邮件列表(https://mail.python.org/mm3/mailman3/lists/pypi-announce.python.org/),我们会发邮件告知您更精确的切换日期。
 
新版PyPI特性
1.支持移动端查看
2.每个项目按照时间顺序显示历史释放版本(例子:https://pypi.org/project/pip/#history)。
3.提供给项目维护人员易读的项目日志。
4.更好的搜索和过滤体验。
5.支持多个项目URL(例如,用于主页和repo页面的)。
6.源代码发布支持Markdown格式的readme(很快也支持wheel格式的)。
7.提供维护人员用户可见的Gravatars头像和电子邮件地址。
8.初始化上传之前不再需要注册一个新工程。
9.更好的可访问性(以及更多的工作https://github.com/pypa/warehouse/labels/accessibility)。
更新的后台基础架构,支持新功能和更具扩展性的PyPI。
 
裁剪特性
新版本也裁剪掉了一些特性(有的特性是因为政策或者发垃圾邮件的原因去掉的),如下
1.通过pypi.python.org进行上传:上传必须通过新的网站pypi.org的API。  
2.在pypi.python.org新建用户账号:新的用户账号只能在pypi.org上创建。
3.文档上传到pythonhosted.com进行托管(关于这个问题的讨论和计划参考https://github.com/pypa/warehouse/issues/582)。
4.下载次数在API中可见:替换为Google BigQuery服务。
5.秘钥管理:PyPI不再为用户提供管理GPG或者SSH公钥的页面。
6.通过WEB界面进行新版本上传:推荐使用命令行上传工具twine。
7/通过Web 界面更新发布说明:如果要更新发布数据,您需要上传新版本(讨论 https://mail.python.org/pipermail/distutils-sig/2017-December/031826.html)
8.无需先验证电子邮件地址即可上传包。
9.API支持HTTP访问:只支持HTTPS访问
 
一旦旧的网站关闭将不再支持的事情:
对于安装包的GPG、PGP签名(在每个PEP 503的Simple Project API中仍然可见,但在Web UI中不再可见)
OpenID 以及 Google 授权登录
 
2018年之后或者更远的时间:
弃用XML-RPC API并重新构建我们的API

下一步计划

参看问题记录表(https://github.com/pypa/warehouse/issues),包括如下:
更加及时的包名称接管(PEP541)
双向认证
用户投票系统
修改自己的用户名
请注册一下PyPI公告邮件列表:https://mail.python.org/mm3/mailman3/lists/pypi-announce.python.org
以便获取最新信息。

安全性
如果您在新的网站发现了潜在的安全漏洞,请遵循我们发布的安全策略(https://pypi.org/security/)。请勿通过GitHub,IRC或邮件列表报告安全问题,请直接向我们的安全团队发送电子邮件。
 
测试
之所以进行beta发布,就是为了发现和修复bug。请帮助我们进行测试。大多数的工作流程都可以在pypi.org上进行测试,使用pypi.python.org(旧PyPI)上的账号密码即可登录。对于一些破坏性操作的测试,比如移除所有者,或者删除一个发布版本,请使用 test.pypi.org进行测试。

工作流程
用户:
注册或者确认一个新账号
登陆/登出
重置密码
搜索项目
pip install 一个开发包
通过浏览器下载发布文件
调用JSON, RSS, Simple, 以及XML-RPC的API接口
 
项目维护者:
添加、删除维护者
添加删除拥有者
过渡项目所有权
移除一个项目
移除发布版本
查看项目日志
查看释放版本日志
上传新的发布版本(源码发布以及wheel格式发布,需要先升级您的twine和setuptools版本)
确认项目描述,发布历史,下载文件,项目链接,维护者,标签和分类器(https://test.pypi.org/project/1234_hello_world/)的显示是否正确

IRC / Twitter在线聊天时间  

Warehouse开发人员将会在IRC,Freenode的#pypa-dev和Twitter(#newpypi)上,讨论您遇到的问题,具体时间如下:
1、星期二,3月27日,上午9点至10点 PDT,中午到下午1点 EDT,18:00-19:00 CEST,下午9:30 -10:30 印度,16:00-17:00 UTC
2、星期五,3月30日,上午10点至11点 EDT,16:00-17:00 CEST,下午7:30-8:30 印度,14:00-15:00 UTC
3、星期二,4月3日, 上午8点到9点 PDT,上午11:00至中午 EDT,17:00-18:00 CEST,下午8:30-9:30 印度,15:00-16:00 UTC
4、星期四,4月5日, 下午6点到6点 PDT,晚上8点至9点 EDT,上午8点至9点 马尼拉,上午10点至上午11点 墨尔本,0:00-1:00 UTC
随意参与! (您需要同意遵守PyPI行为准则。)  

用户评论