mycroft-core 考虑升级到pipenv(弃用requirements.txt)

rekjcdws  于 5个月前  发布在  其他
关注(0)|答案(7)|浏览(53)

明确你正在运行的软件、硬件和版本

  • 假设适用于所有安装

项目维护者对于将Python包管理升级为使用新的、令人惊叹的 pipenv 会有什么感觉?

我最近在一个不同的项目(以专业身份)做过这件事,这里的操作类似,并提供所有的pipenv好处。

尝试提供我们可以用于重现问题的步骤

考虑因素(我脑海中的想法)

  1. dev_setup.shinstall_venv() 将受到影响(而不是手动创建venv,让pipenv管理它)
  2. requirements.txt 将被弃用,用 PipfilePipfile.lock 替换
  3. setup.py 也会更新

对预期条件尽可能具体,以及与预期条件的偏差。

切换到pipenv的好处是巨大的。最重要的一点是我们不再需要管理特定版本的依赖包。一级包需求可以锁定到特定版本(以及二级依赖项),但任何时候我们都可以升级版本并运行CI/CD,二级版本不需要手动挑选。
Pipenv还具有一些可以添加到CI/CD的安全检查。

提供日志文件或其他输出,帮助我们查看错误

将任何有用的文件上传到问题中,以帮助我们进行调查

nc1teljy

nc1teljy1#

(请明确:我提供做这项工作) -只是想在投入时间之前获得意见和支持)

aoyhnmkz

aoyhnmkz2#

我从未在项目中使用过它,但我认为它看起来相当不错。我一直在犹豫是否在这里尝试一下,因为可能由于我们用来创建发布包的 Package 机制( dh-virtualenv )而出现阻塞。

它声称它使用了requirements.txt...但是也许可以从pipfile/lock-file生成一个requirements.txt?

o2g1uqev

o2g1uqev3#

嗯,我确实不熟悉 dh-virtualenv 。起初它似乎不支持 Pipfile/pipenv。然而,pipenv 支持随时从 Pipfile.lock 生成 requirements.txt (我们可以在构建时生成它),所以这不是一个无法克服的问题。
编辑:@forslund ,dh-virtualenv pkg 构建过程的代码在哪里?在核心中找不到。

mzsu5hc0

mzsu5hc04#

我本以为很早以前就提交了一个问题,但现在找不到了。也许我在聊天中提过。我已经使用pipenv有几年了,它表现得相当好...我的理解是,Python软件基金会支持将Pipfile(以及可能的Pipfile.lock)作为标准的想法。

8iwquhpp

8iwquhpp5#

@fermulator 打包仓库仍然没有开放。我需要查看它以获取上传服务的API密钥(如果有的话)。
如果你对这个过程感兴趣,这里有一个实验性的桌面包构建脚本:https://github.com/forslund/mycroft-desktop-deb。它是基于用于mark-1的打包脚本,所以你可以在那里看到大部分的工作流程。
那里有一些hacks,可能需要一两把手来用其他版本的Python而不是3.6进行构建......
如果你认为可以生成requirements.txt文件,我非常愿意切换到pipenv。让我们试试吧......我们也可以简化事情,如果有必要的话,手动维护一个requirements.txt文件。

57hvy0tb

57hvy0tb6#

@forslund ,绝对可以在任何时候使用pipenv生成一个requirements.txt文件以满足遗留(向后兼容)需求,所以这根本不会成为障碍。
啊,如果构建尚未开源,那就可以解释为什么我找不到它了;o。
关于多Python版本支持,我的croft支持哪些版本?(在“系统要求”方面无法在文档中找到)
随时愿意合作/提供帮助(当项目认为是时候开始处理这个问题时)

b0zn9rqh

b0zn9rqh7#

我们目前支持Python 3.4-3.7,但将在下一个大版本(19.08)中放弃对Python 3.4的支持,因为它已经处于生命周期的末尾,而且pip将不再支持它。我的意图是在发布后检查3.8所需的内容。

相关问题