2016-08-12: 一般性讨论
时间: 14:00 UTC
环聊链接: https://hangouts.google.com/call/v5olhwzpfzgzpoq5i3wthjpqpie
2016-07-22: 一般性讨论
出席者
Eric Dill
常设事项
- 有多少仓库?
- 有多少贡献者?
- 新的核心开发者?
议程
-
预发布版本
* Python prerelease done at [conda forge/python feedstock#45](https://github.com/conda-forge/python-feedstock/pull/45) - is this an example to follow?
-
我们是否有关于如何执行此操作的文档?
-
Conda 本身: conda/conda#3262#issuecomment-239410077
-
预发布频道命名提案
* embed the package name in the anaconda label so that you can specify exactly which pre-release things to install
-
从
main
以外的标签指定安装的 conda 命令是:** *** **`conda** install -c conda-forge/label/rc <package>`
* So if you embed, for example, "matplotlib-" in the label name, then you can specifically install *just* the matplotlib pre-release with:
* `conda install -c conda-forge/label/matplotlib-rc matplotlib`
-
-
-
状态页面
* Have dependencies.
- 一些用于 Web 服务的代码
-
Feedstock 理念:显式 vs 隐式 / 可重现 vs 冗余
-
OSX - 恢复到可用、连贯的堆栈
* libc++ (clang) vs libstdc++ (gcc/g++)
-
clang 所需的最低 OSX 版本(我认为是 10.8?)
-
实际上,clang 从 10.7 开始就可以使用。因此,考虑到您的兼容性约束,这将是可行的。
-
此外,我看到的所有参考文献都表明,这将仍然具有 C++11 支持。
-
与默认设置(基于 10.7 构建,使用 gcc)的兼容性 - 人们会在哪里崩溃?我认为只有在混合软件包时才会崩溃 - 我们如何确保我们拥有所有需要的软件包?
-
-
改进基础设施
* Finish out GitHub API issues ( [conda forge/conda forge.github.io#172](https://github.com/conda-forge/conda-forge.github.io/issues/172) )
-
使用 staged-recipes 改进工作流程
* Fast finish AppVeyor on merge ( [conda forge/staged recipes#1142](https://github.com/conda-forge/staged-recipes/pull/1142) )
- 放弃 Travis CI 矩阵 ( conda forge/staged recipes#1234 )
- 使用 CircleCI 进行 feedstock 生成 ( conda forge/staged recipes#916 )
- 将 recipe 排除在 PR 之外 ( conda forge/staged recipes#942 )
- 部分转换中的 Bank 工作 ( conda forge/staged recipes#915 )
-
-
底层打包
-
向 staged-recipes 提交 PR 时的基本社区实践。
-
无需重新讨论此问题。我仍在编写文档,如果准备就绪,我将在明天(或 SciPy 之后 ;-))发送链接
-
NetCDF (
还有 curl/ca-certificates 和 Perl 软件包) - 完成了吗?* curl and ca-certificates are done and available.
- Perl 不再是此过程的一部分
-
通知(我们如何掌握它们)
-
标准化安装
* Mention [`toolchain`](https://github.com/conda-forge/toolchain-feedstock) .
* Discuss rollout to feedstocks.
* Get feedback on [`python-toolchain`](https://github.com/conda-forge/staged-recipes/pull/642) -
MSYS2
* Available on defaults - was in conda 4.1.7, but that was pulled. Coming in 4.1.8.
- 讨论 Ray Donnelly 在 MSYS2 软件包方面的工作,以及我们希望如何使用这些软件包并将它们集成到 conda-forge 中。
- 一些需要考虑的用例:OpenBLAS、FFTW、构建工具,以及其他?
-
二进制数据
* Do we include it in recipes?
- 我们允许哪些类型(如果有)(例如,图标)?
- 我们如何验证许可?
- 我们如何验证它们是安全的?
-
开发版本:它们在哪里发生?
* Do we do them at conda-forge?
* Maybe add a label.
* Do we let others do them with a feedstock on their own repo?- 我们如何强制执行我们决定的任何内容?
-
Conda-forge 安装程序
* We have Python 3.5 and 3.4 now. Would be nice to complete Python 2.7.
- 拥有所有依赖项。尽管
conda-build
还有一些问题需要解决。 - 关于安装程序的许多未解决的问题,包括其名称
- 我们将安装程序托管在哪里?Git 标签?
- 如果您固定到 conda-build 1.21.7,这现在可以正常工作
- 但是,由于 Windows 上 setuptools entrypoints 问题,实际上被阻止了,该问题已在 conda 4.2 中修复,但 4.2 尚未发布。conda 4.2 计划在 8 月底发布
- 拥有所有依赖项。尽管
-
频道镜像
* Can this point be a little bit explained? I thought about this as well and would like to contribute to this point.
* Eric Dill has put together a script for copying a package from one channel to another here: [conda forge/conda forge.github.io#134](https://github.com/conda-forge/conda-forge.github.io/pull/134)
* I have a really, really crude script that copies all of the packages in one channel to another that I just put at: [](https://gist.github.com/mwcraig/8473cf840f6d29236d6d8af699404555)[https://gist.github.com/mwcraig/8473cf840f6d29236d6d8af699404555](https://gist.github.com/mwcraig/8473cf840f6d29236d6d8af699404555)
* conda-build-all can copy from one channel to another: `conda build-all --inspect-channels conda-forge --upload-channels astropy some_packge_recipe` will copy the `some_package` from the channel conda-forge to astropy if it can, or build it if it doesn't exist on conda-forge. Discussion about what the desired behavior should be has started at: [SciTools/conda build all#46](https://github.com/SciTools/conda-build-all/issues/46) -
Feedstock 历史
* Is it sacred?
-
我们是否 rebase/force push?
* If so, under what conditions?
-
我们如何避免多人同时执行此操作?
* I don't think you can.
* IMHO, if it's just one author in staged recipes, sure. If feedstock, no force push - only to PRs to feedstock. If people don't mind merge PRs, it sure is a lot simpler to not rebase. I have messed up rebasing a few times recently... =(
-
-
-
Docker 托管解决方案
* Docker Hub builds were broken for a week and a half.
- 目前已切换到 quay.io。
- 在 Docker Hub 上镜像 quay.io 镜像。
- 关于 quay.io 的想法?关于一般托管的想法?
-
Continuum 元数据请求:我们可以将这些添加到 linter 吗?
* example metadata: [](https://github.com/ContinuumIO/anaconda-recipes/blob/master/anaconda-build/meta.yaml#L36-L44)[https://github.com/ContinuumIO/anaconda-recipes/blob/master/anaconda-build/meta.yaml#L36-L44](https://github.com/ContinuumIO/anaconda-recipes/blob/master/anaconda-build/meta.yaml#L36-L44)
- 此外,区分摘要(77 或 80 个字符的限制)和描述(无限制)
- Anaconda verify:最好在中间会合,而不是分歧。conda-build 可能会集成 anaconda-verify,如果 conda-forge 在此处添加元数据,那就太好了。
-
Google 环聊的最大容量为 10 人。是否值得考虑其他交流方法,以便每个想参与的人都能参与?
-
也许这( http://www.freeconferencecalling.com/ )是一个选项。
-
Bluejeans
-
Continuum 拥有 WebEx。过去的经验是,某些 Linux 平台连接有问题
-
放弃 numpy 1.10 并减少我们的构建矩阵。(Numba 现在可以与 numpy 1.11 一起使用。)
-
来自 graphviz 的 PR 的这条评论是我见过的最好的总结:conda forge/staged recipes#568#issuecomment-225315370
-
感谢您指出这一点。所描述的解决方案看起来是合理的,并且比在软件包名称前添加前缀更可取。太棒了!
-
有什么好处?
-
我们是否会区分库和独立工具,类似于 Debian?我强烈建议这样做,因为它是 (1) 已建立的,并且 (2) 对用户更易于访问(如果他想使用库,他知道该语言。如果他想使用独立工具,他不在乎)。 ( )https://www.debian.org/doc/packaging-manuals/python-policy/ch-module_packages.html#s-package_names)
-
是否会进行协调的移动?如果不是,我们如何处理不一致和潜在冲突(同时安装 python-h5py 和 h5py)。
* we will probably go with meta-packages for conflicting packages
-
软件包签名
-
应该很容易做到。( http://conda.pydata.org/docs/signed-packages.html )
-
以前有人对此感兴趣。
-
HTTP 错误:503 服务器错误:服务不可用:后端服务器已满载,网址为...
-
似乎我们在正常使用条件下经常遇到此问题。
-
之前讨论过在 AppVeyor 上缓存软件包并尝试重用这些软件包来启动。
-
也许我们需要考虑在所有 CI 上缓存。
-
通过
constructor
构建我们自己的类似 Miniconda 的自解压脚本,其中包含软件包。 -
Continuum 方面已经进行了一些改进,应该对此有所帮助。简而言之,repodata(给定频道的软件包索引)是为每个 anaconda.org 查询生成的。这是不必要的高成本,并且已经实施了一些缓存方案。
-
处理移除未固定/不正确固定的软件包。
-
到目前为止,都是手动完成的。
-
但这不能很好地扩展。
-
我们应该(半)自动化移除吗?
-
我们应该热修复损坏的软件包吗? ( conda forge/conda forge.github.io#170 )
-
当前不可构建的软件包
-
特别是 CI 范围之外的开源代码。
-
示例包括 Qt4、Qt5、可能 PyQt4、可能 PyQt5、gcc、VTK 等。
-
我们如何表明它们是手动构建的?
-
我们是否可以接受上传非构建的二进制文件?
-
我们何时确定某些东西可以手动构建?
-
人们在手动构建时应遵循哪些程序?
* Use a standard build docker image, VM, or vagrant file
-
软件包签名?
-
在可行的情况下实现可重现构建 (linux)
* [](https://reproducible-builds.org/)[https://reproducible-builds.org/](https://reproducible-builds.org/)
-
-
我们需要在 conda-smithy 中进行哪些其他更改?
-
我们可以利用哪些其他构建基础设施?
* Would be nice to provide some volunteer builder abstraction, so that we could have an elastic worker farm that would be somewhat resilient.
- 标准化构建镜像可能(相对)容易 - 但如何协调呢?
-
Conda RPMs: https://github.com/pelson/conda-rpms