Setup-miniconda: Setup-miniforge

Dibuat pada 24 Sep 2020  ·  9Komentar  ·  Sumber: conda-incubator/setup-miniconda

Hai @conda-incubator/setup-miniconda-team,

Saya membuat https://github.com/conda-incubator/setup-miniforge sebagai kemudahan untuk berurusan langsung dengan conda forge pada default.

Rencana saya adalah membuat skrip memperbarui bagian-bagian yang perlu diperbarui sehingga akan mengikuti repo ini, dan jalankan skrip sesekali untuk menjaga hal-hal diperbarui.

Mungkin ada cara yang lebih baik untuk melakukan ini.

Pikiran?

question

Semua 9 komentar

Perubahannya adalah:

  • Mengubah penginstal Miniconda default sehingga menunjuk ke rilis Miniforge sebagai gantinya
  • Hardcoding conda-forge+defaults sebagai konfigurasi saluran default
  • Ada yang lain?

Kalau begitu, saya kira mudah untuk mempertahankannya dengan sedikit skrip, ya. Saya lebih suka Miniforge daripada Miniconda juga.

Pilihan lain adalah dengan menghentikan installer-url dan miniconda-version dan menggabungkannya dalam satu kunci seperti conda-distribution atau sesuatu seperti itu. Kunci ini akan memungkinkan _kata kunci ajaib_ seperti "miniconda", "miniforge", atau "anaconda", yang akan default ke URL terbaru untuk penginstal tersebut, tetapi juga akan menerima URL secara langsung (misalnya, jika pengguna ingin menggunakan constructor kustom mereka

Hai @jaimergp

Jadi dari daftar Anda:

Mengubah penginstal Miniconda default sehingga menunjuk ke rilis Miniforge sebagai gantinya

Tentu, tapi saya pikir kita sebenarnya bisa menghapus default default (atau memperbaruinya) ketika pengguna tidak menginstal miniconda/miniforge baru sejak itu. Saya biasanya hanya menggunakan yang dibundel (yang cenderung lebih cepat bahkan dengan memperbarui conda).

Hardcoding conda-forge+defaults sebagai konfigurasi saluran default

Ya kita bisa melakukan itu

Ada yang lain?

Hmmm pastikan skrip menggantikan hal yang benar pada readmes dan mungkin hanya mempertahankan versi V1, V2 (utama) sehingga kita tidak perlu membuat ulang tag.

Saya merasa tidak melanggar back-compat itu penting, seperti yang telah kita lihat. Saya akan mengatakan baris v2 harus tetap dengan miniconda default, sementara v3 akan baik-baik saja untuk mengubah default, jika bukan namanya. Either way, saya akan mengatakan itu baik-baik saja untuk hanya memiliki awalan, misalnya miniforge-* dan miniconda-* . Selanjutnya, miniforge menggunakan skema URL yang sedikit berbeda (misalnya pypy) dari miniconda, jadi kita perlu menangani semua bit spesifikasinya agar terasa mulus.

Pekerjaan yang dimulai pada #98 menunjukkan bahwa kita perlu meningkatkan permainan "dapatkan saya penginstal", mungkin memindahkannya ke folder lain dengan file per strategi, misalnya

download/
  base.ts
  file.ts
  custom.ts
  miniforge.ts
  miniconda.ts

sebagai arsitektur kami, dll akan menjadi terputus-putus.

Untuk _that_ berakhir, kami mungkin juga menginginkan objek tingkat yang lebih tinggi, diketik dengan baik dari input tindakan yang diuraikan sehingga kami tidak melakukan banyak hal string ... daftar param raksasa semakin melelahkan, dan hanya bisa menjadi lebih buruk . Sebagian dari saya ingin membuang semuanya, dan melakukan hal skema d.ts -> JSON, tetapi kami tidak akan mengeluarkan nomor baris (berguna), sehingga beberapa nilainya akan berkurang.

Terima kasih atas masukannya @bollwyvl

Pekerjaan yang dimulai pada #98 menunjukkan bahwa kita perlu meningkatkan permainan "dapatkan saya penginstal", mungkin memindahkannya ke folder lain dengan file per strategi, misalnya

Saya suka ini, pasti sesuatu untuk dilakukan!

Setelah #126 mendarat, ini pasti bisa bergerak maju. Pekerjaan itu akan menjadi:

  • memutuskan skema action.yml , misalnya miniforge-version , dll.
  • mungkin menambahkan beberapa cek baru ke input.ts ,

    • misalnya only one of miniforge-version and miniconda-version dapat diberikan

  • file baru download-miniforge.ts

    • (awalnya) pekerjaan copy-pasta dari download-miniconda.ts

    • tidak diragukan lagi ada cara untuk menggunakan kembali kode antara dua file, meskipun misalnya, mereka memiliki arsitektur yang berbeda, dll.

  • tambahkan ke providers di installer/index.ts

    • urutannya masih cukup eksplisit, jadi tidak _sangat_ penting kemana perginya

  • tes

Suatu hal yang menyenangkan: sangat mudah untuk mendapatkan 30 rilis terbaru dari miniforge:

https://api.github.com/repos/conda-forge/miniforge/releases

tanpa harus melakukan pengikisan URL. Hore!

Saya pikir kita juga memerlukan kunci lain, jadi misalnya:

use:
  miniforge-version: *
  miniforge-flavor: Mambaforge-pypy3  # `Miniforge3` default 

Alih-alih flavor kita bisa memiliki variant atau build atau bahkan construct .

Inilah WIP untuk hal di atas (perlu dokumen, dll):

https://github.com/bollwyvl/setup-miniconda/pull/2

Ini mulai mengatasi beberapa masalah dalam menggunakan mamba sebelumnya/lebih... seolah-olah Anda menginstal Mambaforge, saya membayangkan Anda ingin _use_ mamba , bukan? Ya, baik, JOKE'S ON YOU, itu tidak mendukung (atau mendelegasikan secara transparan) beberapa hal yang kami gunakan seperti init . Jadi condaCommand harus memperhitungkannya saat memilih perintah yang tepat untuk digunakan, dan berarti Anda harus memiliki conda .

Perbedaan kecepatan terlihat dapat diabaikan untuk kasus pengujian kami, tetapi mungkin masih layak untuk dikejar... dan saya tidak tahu bagaimana kami akan menangani fungsi yang hilang untuk micromamba ...

PR up (dengan lebih banyak tes dan dokumen): https://github.com/conda-incubator/setup-miniconda/pull/133

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

ma-sadeghi picture ma-sadeghi  ·  4Komentar

tdegeus picture tdegeus  ·  11Komentar

volpatto picture volpatto  ·  12Komentar

jaimergp picture jaimergp  ·  13Komentar

bollwyvl picture bollwyvl  ·  12Komentar