3 पॉइंट द्वारा GN⁺ 2024-12-09 | 1 टिप्पणियां | WhatsApp पर शेयर करें

mise क्या है?

  • mise, asdf, nvm, pyenv की तरह node, python, cmake, terraform आदि जैसे विभिन्न डेवलपमेंट टूल्स को मैनेज करने वाला टूल है
  • direnv की तरह यह प्रोजेक्ट डायरेक्टरी के अनुसार environment variables को मैनेज करता है
  • make की तरह यह प्रोजेक्ट build और test में उपयोग होने वाले tasks को मैनेज करता है

30 सेकंड डेमो

  • mise का उपयोग करके node के विभिन्न versions इंस्टॉल करने का तरीका दिखाया गया है
  • which node कमांड चलाने पर वास्तविक path लौटता है, यानी यह shim नहीं है

क्विक स्टार्ट

  • mise इंस्टॉल करने का तरीका:
    • $ curl https://mise.run | sh
    • $ ~/.local/bin/mise --version कमांड से इंस्टॉल किया गया version देखा जा सकता है
  • किसी विशेष version को इंस्टॉल करना:
    • $ curl https://mise.run | MISE_VERSION=v2024.5.16 sh
    • $ ~/.local/bin/mise --version कमांड से इंस्टॉल किया गया version देखा जा सकता है
  • shell में mise को जोड़ना:
    • 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 इंस्टॉल करना और global default सेट करना:
    • $ mise use --global node@20
    • $ node -v कमांड से version जाँचा जा सकता है

पूरा दस्तावेज़

  • mise.jdx.dev पर पूरा दस्तावेज़ देखा जा सकता है

1 टिप्पणियां

 
GN⁺ 2024-12-09
Hacker News राय
  • जब मैंने mise का उपयोग शुरू किया, तो asdf की कमियों को पूरा करने के साथ यह तेज़ और कम दखल देने वाला shell setup देता था, इसलिए यह संतोषजनक लगा

    • Task Running और Env Vars फीचर जुड़ने से यह और भी उपयोगी हो गया
    • यह प्रभावशाली था कि डेवलपर ने मौजूदा tools के साथ compatibility बनाए रखते हुए future features बनाने में बहुत समय लगाया
    • हाल की backend functionality की वजह से ज़रूरी development tools को आसानी से install किया जा सकता है, जो सुविधाजनक है
  • JS, Ruby, Python, Java SDK management के लिए Mise पर switch किया, और अनुभव अच्छा रहा

    • RVM, NVM, Python install tools आदि अलग से install करने की ज़रूरत नहीं रही, जो ताज़गीभरा लगा
  • टीम की toolchain को एकीकृत करने के लिए mise का उपयोग कर रहे हैं, और Docker या Nix का उपयोग नहीं करते

    • Docker अब भी services चलाने के लिए इस्तेमाल होता है, लेकिन mise का user experience बेहतरीन है
    • सभी repository scripts में auto-completion जुड़ जाने से सुविधा हुई
  • अगर आप सब कुछ करने की कोशिश करते हैं, तो संभव है कि कुछ भी सही तरह से न कर पाएं

    • ज़्यादातर लोग किसी एक ecosystem की packaging problems को गहराई से नहीं समझते
    • डेवलपर्स को बहुत कुछ जानना पड़ता है, लेकिन असल में यह मौजूदा tools को wrap करने भर जैसा है
  • मैं डेवलपर नहीं हूँ, इसलिए ऐसे tools के use cases को नहीं समझता

    • monorepo में सभी program versions को manage करने के लिए asdf का उपयोग करता हूँ; UX खास नहीं है, लेकिन यह reliable है
    • environment variables को मौजूदा shell session में load नहीं करता, बल्कि scripts या Makefile का उपयोग करके ज़रूरी variables load करता हूँ और काम चलाता हूँ
    • Make का उपयोग directory-वार दोहराए जा सकने वाले छोटे commands चलाने, commands को parallelize करने या क्रम से चलाने के लिए करता हूँ
    • shell scripts का उपयोग करके Make targets से थोड़े लंबे या अधिक जटिल tools लिखता हूँ
    • पूरा environment सिर्फ asdf install करके manage किया जा सकता है, और सब कुछ automated है तथा versions pin किए गए हैं
  • mise का उपयोग करके Go version manage कर रहा हूँ; यह थोड़ा confusing है और documentation कम है, लेकिन ठीक है

    • asdf या ऐसे मिलते-जुलते tools पहले कभी इस्तेमाल नहीं किए, इसलिए learning curve हो सकता है
  • mise को asdf के replacement के रूप में उपयोग करता हूँ और इससे संतुष्ट हूँ

    • यह वही functionality देता है, लेकिन अधिक तेज़ है और UX बेहतर है
  • एक साल से अधिक समय से उपयोग कर रहा हूँ, और यह एक सरल tool है जिसने जीवन आसान बना दिया

    • निर्माता और contributors को धन्यवाद
  • GitHub Actions workflow में mise को integrate करने के तरीके पर विचार कर रहा हूँ

    • mise repository की workflow files देखने पर लगता है कि बस कुछ mise steps जोड़े गए हैं
    • अगर यह workflow files generate कर सके तो और अच्छा होगा
  • प्रोजेक्ट का Readme पढ़ने के बाद भी मन में "क्यों?" का सवाल बना रहता है

    • पूरे Nix ecosystem तक पहुँचने के लिए Devbox का उपयोग करता हूँ