Vielen Dank für die Erstellung/Pflege dieser großartigen Aktion!
Es scheint, dass allein die Einrichtung von conda
länger dauert als üblich. Sehen Sie sich zum Beispiel dieses Protokoll an , den Schritt "Conda einrichten". Die Einrichtung von conda dauert 3 ½ Minuten (ohne die Installation von Abhängigkeiten). Ist das zu erwarten oder mache ich was falsch?
Vielen Dank noch mal!
Hallo @ma-sadeghi, danke für die netten Worte und für die Nutzung der Aktion :)
Es scheint, dass das Einrichten von Conda allein länger dauert als gewöhnlich.
Hat sich das in einer neueren Version geändert? Wann ist Ihnen aufgefallen, dass Sie dies bemerken?
Ich frage mich nur, damit wir jedes potenzielle Problem lokalisieren können.
@conda-incubator/setup-miniconda-team hast du etwas Ähnliches wie beschrieben bemerkt?
Gleiches Problem bei mir mit Mamba (ohne meine Deps während der Aktion zu installieren) und mit der neuesten v2-Version.
@bollwyvl Ich könnte das von Hand debuggen
Falls es hilft (ich kann die Protokolle nicht teilen):
steps:
- name: Checkout the code
uses: actions/checkout<strong i="6">@v2</strong>
- name: Cache conda
uses: actions/cache<strong i="7">@v1</strong>
env:
CACHE_NUMBER: 2
with:
path: ~/conda_pkgs_dir
key: conda-${{ runner.os }}-${{ env.CACHE_NUMBER }}-${{ hashFiles('env.yml') }}
- name: Setup conda
uses: conda-incubator/setup-miniconda<strong i="8">@v2</strong>
with:
mamba-version: "*"
channels: conda-forge,defaults
channel-priority: true
use-only-tar-bz2: true
Danke @hadim für das Beispiel. Fügt einen PR hinzu, um die Änderungen zu überprüfen, die die Regression eingeführt haben.
Hallo @ma-sadeghi, danke für die netten Worte und für die Nutzung der Aktion :)
Es scheint, dass das Einrichten von Conda allein länger dauert als gewöhnlich.
Hat sich das in einer neueren Version geändert? Wann ist Ihnen aufgefallen, dass Sie dies bemerken?
Ich frage mich nur, damit wir jedes potenzielle Problem lokalisieren können.
@conda-incubator/setup-miniconda-team hast du etwas Ähnliches wie beschrieben bemerkt?
Ich bin mir fast sicher, dass es früher viel schneller war, als ich diese Aktion zum ersten Mal verwendet habe, aus dem Kopf, vielleicht hat es 1 Minute oder so gedauert, Conda einzurichten, jetzt sind es 3:30 Minuten. Unser Projekt ist öffentlich und es ist schon eine Weile her, dass wir diese Aktion verwenden. Schauen Sie sich also gerne unsere Protokolle an, falls dies beim Debuggen des Problems hilft: https://github.com/PMEAL/OpenPNM/actions
Aus den verlinkten Logs:
Tue, 10 Nov 2020 21:09:23 GMT /usr/share/miniconda/condabin/conda update conda
Tue, 10 Nov 2020 21:09:54 GMT Collecting package metadata (repodata.json): ...working... done
Tue, 10 Nov 2020 21:10:07 GMT Solving environment: ...working... done
Tue, 10 Nov 2020 21:11:56 GMT
Tue, 10 Nov 2020 21:11:56 GMT ## Package Plan ##
Wir haben also, etwas unwissenschaftlich:
Das einzige, was mir einfällt, ist, dass conda-forge
hinzugefügt wird, was den Solver mit zusätzlichen 10.000+ Paketen (und all ihren Versionen) auf Hochtouren bringt.
Einige Optionen aus dem Kopf:
auto-update-conda
auf false
conda-lock
generieren/eincheckenconda-update-channels: defaults
::group::Boring stuff
::endgroup::
Log-Ausgaben hinzu, damit der Lebenszyklus der Befehle dieser Aktion auf oberster Ebene einfacher zu verfolgen ist (ich musste meine Pandas abstauben, um einige der Timing-Sachen zu erledigen)micromaba
Setup an (wieder sparen Sie ein paar Lösungen) https://github.com/conda-incubator/setup-miniconda/issues/75#issuecomment -698024879Die meiste Zeit ist es wert, Mamba zu installieren:
Zugehörige Konfiguration:
- name: Cache conda
uses: actions/cache<strong i="9">@v2</strong>
env:
CACHE_NUMBER: 3
with:
path: ~/conda_pkgs_dir
key: conda-${{ runner.os }}-${{ env.CACHE_NUMBER }}-${{ hashFiles('env.yml') }}
- name: Setup conda
uses: conda-incubator/setup-miniconda<strong i="10">@v2</strong>
with:
python-version: 3.7
mamba-version: "*"
channels: conda-forge,defaults
channel-priority: true
use-only-tar-bz2: true
activate-environment: nova
Ist es möglich, anstelle von Miniconda oder Miniforge so etwas wie Micromamba zu verwenden?
Wenn man sich die Details ansieht, ist der Lösungsschritt das, was 99% der Zeit in Anspruch nimmt.
Wenn dieses Problem behoben wird, bietet die Miniforge-Route dies standardmäßig :D
Ich bestätige, dass das kürzlich veröffentlichte MambaForge-Installationsprogramm das CI schneller macht:
- name: Setup conda
uses: conda-incubator/setup-miniconda<strong i="6">@v2</strong>
with:
installer-url: https://github.com/conda-forge/miniforge/releases/download/4.9.2-2/Mambaforge-Linux-x86_64.sh
channel-priority: true
use-only-tar-bz2: true
activate-environment: my-env
- name: Anaconda Login
run: |
# Bypass the installation of anaconda-client
TOKEN_DIR="$HOME/.config/binstar"
TOKEN_PATH="$TOKEN_DIR/https%3A%2F%2Fapi.anaconda.org.token"
mkdir -p $TOKEN_DIR
echo -e "${ANACONDA_USER_TOKEN}\c" > $TOKEN_PATH
- name: Install Dependencies
run: mamba env update -f env.yml
(Das Snippet enthält auch eine Möglichkeit, sich bei Anaconda anzumelden, ohne anaconda-client
installieren zu müssen. Könnte für einige hier hilfreich sein.)
Wie spielt es sich mit mamba-version
? Wird es benötigt? Muss überprüft werden, ob bereits ein vorhandenes mamba
ist?
Gute Frage und ich weiß es tatsächlich nicht. Das neue Installationsprogramm wird standardmäßig mit mamba
und ich verwende es direkt ohne mamba-version
.
Ich muss mich zuerst bei Anaconda anmelden (siehe Snippet), damit ich mich nicht auf setup-conda
, um meine Umgebung zu installieren.
Ich denke, wenn Sie setup-conda
möchten, um eine env-Datei zu installieren, sollte setup-conda
geändert werden, um tatsächlich nach Mamba zu suchen und die Installation zu umgehen, falls sie existiert.
Vielleicht kann das jemand von @conda-incubator/setup-miniconda-team bestätigen oder nicht?
Es kommen jetzt _viel_ mehr bewegende Teile als nur _verwenden, was auf der Festplatte ist_ vs _einen Installer von einer URL mit einem Schema abrufen, das wir seit einem halben Jahrzehnt vorhersagen konnten_, und das Verhalten des aktuellen Codes w/r/t zu mamba
ist schwer zu begründen.
Ich wette, wenn Sie mamba-version
angeben, wird es _noch_ versuchen, mamba
von conda-forge
zu installieren, auch wenn es bereits da ist, und _immer_ conda
für alles _außer_ die Umgebung lösen (zB conda config
). Diese würden die meisten Vorteile zunichte machen, wenn Sie es bereits auf der Festplatte nach dem Installationsprogramm haben. Da ein solches Installationsprogramm mit mamba
bis vor 13 Stunden noch nicht existierte, war dies kein Problem ... ich denke, wir werden wahrscheinlich so etwas wie conda-exe: mamba
brauchen, wenn du _weißt_, dass es schon ist installiert, denn selbst wenn es _ist_, möchten Sie es vielleicht nicht verwenden, und morgen könnte es The Next Tool ( lambada
, tarantala
) von The Next Installer geben.
Wie auch immer, ich hatte das Gefühl, dass die Behebung einiger dieser Probleme eine ziemlich drastische Umstrukturierung erfordert ... auf #107 (die zu #108, #109, ... ausstehender Review wird) habe ich nach besten Kräften versucht, uns für The Next vorzubereiten X, wobei X ein Ein-/Zwei-Datei-PR sein kann. Hoffentlich kommen wir dahin, wo wir anfangen können, Funktionen hinzuzufügen und die Leistung zu verbessern, aber ich befürchte, dass es die Situation noch verschlimmern wird, wenn wir nicht zuerst die aktuellen technischen Schulden angehen.
conda-incubator/setup-miniconda@master
nun (seit einiger Zeit) die Kombination von:
miniforge-variable: Mambaforge
use-mamba: true
Was hier hauptsächlich die Mail beantworten sollte... soweit eine vollständige conda+python+mamba-Installation möglich ist. Micromamba hat in letzter Zeit viele Updates bekommen, aber ich konnte es noch nicht beurteilen, ob wir es auf dem gleichen Niveau wie die anderen Anbieter unterstützen/testen wollen, aber...
Hilfreichster Kommentar
Es kommen jetzt _viel_ mehr bewegende Teile als nur _verwenden, was auf der Festplatte ist_ vs _einen Installer von einer URL mit einem Schema abrufen, das wir seit einem halben Jahrzehnt vorhersagen konnten_, und das Verhalten des aktuellen Codes w/r/t zu
mamba
ist schwer zu begründen.Ich wette, wenn Sie
mamba-version
angeben, wird es _noch_ versuchen,mamba
vonconda-forge
zu installieren, auch wenn es bereits da ist, und _immer_conda
für alles _außer_ die Umgebung lösen (zBconda config
). Diese würden die meisten Vorteile zunichte machen, wenn Sie es bereits auf der Festplatte nach dem Installationsprogramm haben. Da ein solches Installationsprogramm mitmamba
bis vor 13 Stunden noch nicht existierte, war dies kein Problem ... ich denke, wir werden wahrscheinlich so etwas wieconda-exe: mamba
brauchen, wenn du _weißt_, dass es schon ist installiert, denn selbst wenn es _ist_, möchten Sie es vielleicht nicht verwenden, und morgen könnte es The Next Tool (lambada
,tarantala
) von The Next Installer geben.Wie auch immer, ich hatte das Gefühl, dass die Behebung einiger dieser Probleme eine ziemlich drastische Umstrukturierung erfordert ... auf #107 (die zu #108, #109, ... ausstehender Review wird) habe ich nach besten Kräften versucht, uns für The Next vorzubereiten X, wobei X ein Ein-/Zwei-Datei-PR sein kann. Hoffentlich kommen wir dahin, wo wir anfangen können, Funktionen hinzuzufügen und die Leistung zu verbessern, aber ich befürchte, dass es die Situation noch verschlimmern wird, wenn wir nicht zuerst die aktuellen technischen Schulden angehen.