跳到主要內容

2016-08-25:一般討論

時間:14:00 UTC

Hangout 連結:https://hangouts.google.com/call/v5olhwzpfzgzpoq5i3wthjpqpie

出席者

Jonathan Helmus, Filipe, Michael Sarahan, John Kirkham, Jake VanderPlas, Eric Dill, Ray Donnelly , Phil Elson

常設項目

  • 有多少個 repo?1035
  • 有多少位貢獻者?212 位(包含一些機器人)
  • 新的核心開發者?

筆記

  • 邀請 Peter M. Landwehr (pmlandwehr) 參與審查 staged-recipes。我們應該給予這類型的人職稱嗎?Filipe 將會聯繫。

  • 大規模治理開源專案:來自維基百科成長的教訓 | Staurt Geiger https://www.youtube.com/watch?v=ZSQJYEVcMWM&index=89&list=PLYx7XA2nY5Gf37zYZMw6OqGFRPjB1jCy6

  • 增強提案文件,Jonathan 有筆記,稍後今天會撰寫。

  • 治理文件 - 歡迎協助。還有「who's who」或「關於」頁面。https://conda-forge.github.io/#about

    *   This page could be expanded, should mentioned these meeting.
  • 從議程中移除項目

    *   Prioritize items on agenda which we should/must talk about.
    • 交叉連結項目至 GitHub issue/討論
  • 狀態頁面:https://conda-forge.github.io/status/

    *   Linked to "status" repo:  [](https://github.com/conda-forge/status)[https://github.com/conda-forge/status](https://github.com/conda-forge/status)
  • conda-forge 行為準則 - Filipe 仍在努力

  • 許多團隊正在研究新的建置系統:Filipe, Phil, Continuum

    *   Continuum's  plan would allow others to add build workers, perhaps conda-forge could  use these in addition to the CI services, especially for long builds
    • 組織新的會議來討論這個主題
  • 開源 Anaconda Build,我們應該推動發布嗎?

    *   Would be helpful to have our own build system rather than being dependent on CI systems.
  • Travis CI 可以透過降低並行性來增加時間

    *   Can we switch between longer time and concurrency?  How much work is this?
    • 可能目前不打算接受提議
    • 最好在某處找到可信任的硬體
    • 適用於 OS X 建置的 Vagrant,我們可以研究這個嗎
  • 安全性

    *   If user changes name and someone takes old name can be a security issue:  [](https://groups.google.com/forum/#)[https://groups.google.com/forum/#](https://groups.google.com/forum/#%21topic/rustlang-security-announcements/BK_3gbXhSn4)[!topic/rustlang-security-announcements/BK_3gbXhSn4](https://groups.google.com/forum/#%21topic/rustlang-security-announcements/BK_3gbXhSn4)
    • 可以使用唯一的用戶 ID 而非 GitHub 使用者名稱來解決
    • 想要 Anaconda.org 的 token,允許寫入單一套件(Phil 將推動 Continuum 處理此事),而不是全域寫入。
  • Metadata 統一

    *   Should conda-forge include additional metadata which would make it easier for Continuum to re-use recipes
    • 這應該是必要的還是可選的?

          *   Required would likely reduce number of contributors
      • 將需要時間/工作將這些新增至所有目前的套件

      • 新增至 linter 和 conda skeleton

        *   Make linter have "warnings" not hard fails
      • 其中許多看起來是多餘的,我們可以重複使用現有的 metadata 嗎?

    • 授權檔案可能應該是必要的

          *   Legal vs. suggested

議程

  • 將議程項目標記為完成。

  • 分享狀態頁面。 :) 也弄清楚如何有效地導引通知。

  • 增強提案文件更新。

  • conda-forge 行為準則文件:https://docs.google.com/document/d/10dxX0Zse0Rx1HqsxC73Wfsghmy5m8PP8cHuBIOhWKpc/edit

  • 提及 Travis-CI 提供更多 CI 時間。

  • 我們可以考慮將您的建置時間增加到 180 分鐘,但我們可能需要將您的預設並行性從 5 個 jobs 減少到 3 個,因為您將長時間使用多個 VM。

  • 提及/討論 Travis Oliphant 關於開源 Anaconda Build CI 的評論

  • 安全性

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

  • 與 Continuum 的 Metadata 統一 - 我們是否同意在 about 區段中新增一些欄位以符合 Anaconda 標準?

  • 包含授權檔案

  • 許多 recipes 沒有包含授權檔案。

  • 幾乎每個授權都有關於提供授權的條款。

  • 我們是否應該開始要求這個欄位。

  • 請注意,有些開發人員也沒有包含授權檔案。

  • 在某些情況下,讓他們包含授權檔案是一場掙扎。

  • 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/強制推送?

          *   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... =(
  • Continuum metadata 請求:我們可以將這些新增至 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 在此處新增 metadata 會很好。
  • 捨棄 numpy 1.10 並縮減我們的建置矩陣。(Numba 現在適用於 numpy 1.11。)

  • 簽署套件

    *   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?