3 Punkte von GN⁺ 2024-12-09 | 1 Kommentare | Auf WhatsApp teilen

Was ist mise?

  • mise ist ein Tool zur Verwaltung verschiedener Entwicklungstools wie node, python, cmake und terraform, ähnlich wie asdf, nvm und pyenv
  • Ähnlich wie direnv verwaltet es Umgebungsvariablen pro Projektverzeichnis
  • Ähnlich wie make verwaltet es Tasks, die für Build und Tests eines Projekts verwendet werden

30-Sekunden-Demo

  • Es wird gezeigt, wie man mit mise verschiedene Versionen von node installiert
  • Beim Ausführen des Befehls which node wird der tatsächliche Pfad zurückgegeben; es handelt sich also nicht um ein Shim

Schnellstart

  • Installation von mise:
    • $ curl https://mise.run | sh
    • Mit dem Befehl $ ~/.local/bin/mise --version kann die installierte Version überprüft werden
  • Installation einer bestimmten Version:
    • $ curl https://mise.run | MISE_VERSION=v2024.5.16 sh
    • Mit dem Befehl $ ~/.local/bin/mise --version kann die installierte Version überprüft werden
  • mise in die Shell einbinden:
    • bash: echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc
    • zsh: echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrc
    • fish: echo '~/.local/bin/mise activate fish | source' >> ~/.config/fish/config.fish
  • Runtime installieren und globalen Standardwert festlegen:
    • $ mise use --global node@20
    • Mit dem Befehl $ node -v kann die Version überprüft werden

Vollständige Dokumentation

  • Die vollständige Dokumentation ist unter mise.jdx.dev verfügbar

1 Kommentare

 
GN⁺ 2024-12-09
Hacker-News-Kommentare
  • Als ich anfing, mise zu verwenden, war ich zufrieden, weil es die Schwächen von asdf ausglich und zugleich eine schnelle, weniger invasive Shell-Konfiguration bot

    • Mit den hinzugefügten Funktionen für Task Running und Env Vars wurde es noch nützlicher
    • Beeindruckend war, wie viel Zeit der Entwickler investiert hat, um die Kompatibilität mit bestehenden Tools zu erhalten und gleichzeitig Funktionen für die Zukunft aufzubauen
    • Durch die kürzlich hinzugekommenen Backend-Funktionen ist es praktisch geworden, die benötigten Entwicklungswerkzeuge einfach zu installieren
  • Ich bin für die Verwaltung von JS, Ruby, Python und Java SDKs auf mise umgestiegen und war zufrieden

    • Es fühlte sich erfrischend an, keine Tools wie RVM, NVM oder Python-Installer mehr installieren zu müssen
  • Wir verwenden mise, um die Toolchain des Teams zu vereinheitlichen, und nutzen weder Docker noch Nix dafür

    • Docker verwenden wir weiterhin zum Ausführen von Services, aber die User Experience von mise ist hervorragend
    • Praktisch ist auch, dass für alle Repository-Skripte Autovervollständigung hinzugefügt wurde
  • Wenn man versucht, alles zu machen, besteht eine große Gefahr, am Ende nichts richtig zu machen

    • Die meisten Menschen verstehen die Packaging-Probleme eines einzelnen Ökosystems nicht tiefgehend
    • Entwickler müssen zwar vieles wissen, aber letztlich ist es nur ein Wrapper um bestehende Tools
  • Ich bin kein Entwickler und verstehe die Anwendungsfälle solcher Tools daher nicht

    • Ich verwende asdf, um alle Programmversionen in einem Monorepo zu verwalten; die UX ist nicht besonders gut, aber es ist zuverlässig
    • Statt Umgebungsvariablen in die aktuelle Shell-Session zu laden, lade ich die benötigten Variablen per Skript oder Makefile und führe dann die Aufgaben aus
    • Mit make führe ich pro Verzeichnis wiederholbare kleine Befehle aus oder parallelisiere bzw. sequenziere Befehle
    • Mit Shell-Skripten schreibe ich Tools, die etwas länger oder komplexer sind als Make-Targets
    • Die gesamte Umgebung lässt sich verwalten, indem nur asdf installiert wird; alles ist automatisiert und die Versionen sind festgelegt
  • Ich verwende mise, um Go-Versionen zu verwalten; es ist etwas verwirrend und nicht besonders gut dokumentiert, aber in Ordnung

    • Da ich asdf oder ähnliche Tools noch nie verwendet habe, gibt es möglicherweise eine gewisse Lernkurve
  • Ich nutze mise als Ersatz für asdf und bin zufrieden damit

    • Es bietet dieselben Funktionen, ist aber schneller und hat eine bessere UX
  • Seit über einem Jahr benutze ich es, und es ist ein einfaches Tool, das mein Leben leichter gemacht hat

    • Danke an den Ersteller und die Mitwirkenden
  • Ich überlege, wie sich mise in GitHub-Actions-Workflows integrieren lässt

    • Wenn man sich die Workflow-Dateien im mise-Repository ansieht, scheint es so, als hätten sie einfach ein paar mise-Schritte hinzugefügt
    • Noch besser wäre es, wenn es Workflow-Dateien generieren könnte
  • Nachdem ich das README des Projekts gelesen habe, bleibt bei mir die Frage: „Warum?“

    • Ich verwende Devbox, um auf das gesamte Nix-Ökosystem zuzugreifen