跳到主要內容

2016-09-09:一般討論

時間:14:00 UTC

視訊連結:https://hangouts.google.com/call/v5olhwzpfzgzpoq5i3wthjpqpie

出席者

常設項目

  • 有多少個 repo? ~1100
  • 有多少位貢獻者? ~220
  • 新的核心開發者?

筆記

Bioconda 更新

  • 當來源 tarball 消失時,為 conda-build 2.0 重建二進制檔案。Bioconda 正在封存來源。
  • 自動化流程以封存來源 tarball 並在容器中測試 (作為創建捆綁容器以運行套件的服務非常棒)。

核心開發者

  • Eric Dill (邀請)
  • Peter M. Landwehr (已邀請)

分割建置

  • conda-build 問題 (xref?) conda/conda build#1338
  • continuum 編譯器工具鏈,一致地使用 gcc (Linux)、clang 和 gfortran (OS X)。

預發布/RC

  • 需要一位擁護者來撰寫提案!

    *   Eric Dill will take this on. Hopefully a CFEP will land within one week, 2016-09-16
  • Eric 建議同時擁有 dev 和-dev 標籤。前者適用於「前沿人士」,但後者適用於只想測試/使用僅一個事物 (加上任何依賴項) 的新版本的人。

  • dev 是一個糟糕的名稱。這些套件更多用於測試而不是開發。測試?RC?

  • Filipe 認為我們不應接受早於 RC 的版本 (實際上並非不接受,而是鼓勵人們將其開發版本稱為 RC。想法是 conda-forge 是發布二進制檔案和每晚測試建置的地方,例如,超出 IMO 的範圍。)

feather-feedstock 維護者問題

  • 他們希望使用現代 Visual Studio 建置 Python 2.7,而 conda-forge 應向他們建議,這將創建一個與 conda-forge 相容的不同生態系統。

conda-build 2.0 和 conda-build-all。Mike 問我們是否已準備好使用 conda-build 2.0。conda-forge 需要檢查

  • conda-build <2.0 的 pins 在哪裡
  • 檢查 conda-inspect
  • 檢查上傳腳本
  • 檢查 conda-smithy

在建置腳本中使用 pip。

  • 在 Windows 上需要 conda > 4.2
  • 需要檢查 entry_points 是否必須在 recipe 中聲明。

議程

  • 下次會議:我們可以安排在 2016-09-16 嗎?

  • 來自 bioconda 社群的更新。Tarball 封存和自動容器 (Docker、rkt) 建置。

  • 封存:bioconda/bioconda recipes#2194

  • 容器:bioconda/bioconda recipes#2297

  • conda-forge 是否對類似的整合感興趣?

  • OSX - 回到可用、連貫的堆疊

  • libc++ (clang) vs libstdc++ (gcc/g++)

  • Apple 的 C Blocks 擴展 (這些類似於 lambdas) 不在最新的 (或非 Apple) GCC 中:https://gcc.gnu.org/ml/gcc/2009-09/msg00264.html

  • 我們可以在不違反具有運行時異常 (compiler_rt + libc++) 的 GPL 的情況下,將 gfortran 和 LLVM 系統/c++ 庫連結在一起嗎? - 如果連結是靜態完成的,就我所知不行,而且 gfortran 可以在 compiler_rt 之上建置嗎? 這些都是很大的未知數。

  • clang 所需的最低 OSX 版本 (我認為是 10.8?)

  • 實際上 clang 從 10.7 開始就可用了。因此,如果考慮您的相容性限制,這將是可行的。

  • 此外,我看到的所有參考都表明,這仍然具有 C++11 支援。

  • 與預設值 (在 10.7 上建置,使用 gcc) 的相容性 - 人們會在何處中斷? 我認為只有在混合套件時 - 我們如何確保我們擁有我們需要的所有套件?

  • 與 Continuum 的元數據統一 - 我們是否可以接受在 about 部分添加一些欄位以符合 Anaconda 標準?

  • 範例位於 https://github.com/ContinuumIO/anaconda-recipes/blob/master/colander/meta.yaml

  • license_family

  • doc_url

  • dev_url

  • 將 summary 限制為 80 個字元 (更長的內容使用 description)

  • 我們可以將其添加到 linter,並在更新 recipes 時將其添加到 recipes 中嗎?

  • 我們應該對 unicode 提供哪些支援? 任何支援? 僅限 Summary/description?

  • CUDA/cuDNN 更新

  • 改進基礎設施

    *   Better workflows with staged-recipes

    * Fast finish AppVeyor on merge ( [conda forge/staged recipes#1142](https://github.com/conda-forge/staged-recipes/pull/1142) )
    * Drop Travis CI matrix ( [conda forge/staged recipes#1234](https://github.com/conda-forge/staged-recipes/pull/1234) )
    * Use CircleCI for feedstock generation ( [conda forge/staged recipes#916](https://github.com/conda-forge/staged-recipes/issues/916) )
    * Keeping recipes out of PRs ( [conda forge/staged recipes#942](https://github.com/conda-forge/staged-recipes/issues/942) )
    * Bank work in partial conversion ( [conda forge/staged recipes#915](https://github.com/conda-forge/staged-recipes/issues/915) )
  • 通知 (我們如何掌握它們)

  • 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?
    • 如果有的話,我們允許哪些種類 (例如圖示)?
    • 我們如何驗證授權?
    • 我們如何驗證它們是安全的?
  • Dev 版本:它們在哪裡發布?

    *   Do we do them at conda-forge?

    * Maybe add a label.

    * Do we let others do them with a feedstock on their own repo?
    • 我們如何強制執行我們決定的任何事情?
  • 頻道鏡像

    *   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... =(
  • 移除 numpy 1.10 並縮減我們的建置矩陣。(Numba 現在適用於 numpy 1.11。)

  • Feedstocks 哲學:顯式 vs 隱式 / 可重現 vs 冗餘

  • 簽署套件

    *   Should be easy to do. ( [](http://conda.pydata.org/docs/signed-packages.html)[http://conda.pydata.org/docs/signed-packages.html](http://conda.pydata.org/docs/signed-packages.html) )
    • 之前有人對此感興趣。
  • HTTPError: 503 Server Error: Service Unavailable: Back-end server is at capacity for url...

    *   Seems we are regularly running into this issue under normal usage conditions.
    • 之前曾討論過在 AppVeyor 上快取套件並嘗試重用這些套件來啟動。
    • 也許我們需要在所有 CI 上考慮快取。
    • 使用 constructor 建置我們自己的類似 Miniconda 的自解壓縮腳本,其中包含套件。
    • Continuum 方面已經進行了一些改進,應該有助於解決此問題。簡而言之,repodata (給定頻道的套件索引) 是為每個 anaconda.org 查詢生成的。這是不必要的高成本,並且已經實施了一些快取方案。
  • 處理移除未釘選/未正確釘選的套件。

    *   Has been done manually thus far.
    • 但這無法很好地擴展。
    • 我們應該 (半) 自動化移除嗎?
    • 我們應該熱修復損壞的套件嗎? (conda forge/conda forge.github.io#170)
    • 我們應該將它們標記為損壞
  • 目前無法建置的套件

    *   In particular open source code that is out of scope for CIs.
    • 範例包括 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.
      • 標準化建置映像檔可能 (相對) 容易 - 但如何協調?
  • 分階段發布

  • Windows BLAS 解決方案

    *   Still don't have a BLAS for Windows yet need something.
    • 不要建置 BLAS

          *   NumPy has a small subset of BLAS functionality.
      • 不確定如何處理 SciPy (也找不到它們的 Windows wheels)。

      • 僅使用 C 支援建置 OpenBLAS。

        *   Will be pretty slow.
      • 應該適用於所有 Python。

      • 使用 MinGW 編譯器建置 OpenBLAS。

        *   Works with Python 2.7 and 3.4.
      • 不適用於 Python 3.5?

      • 重用類似 R 的 BLAS。

        *   Is there a package for something like this?
      • 它是否會遇到與 Python 3.5 相同的問題?

      • ATLAS?