3 pontos por GN⁺ 2024-12-09 | 1 comentários | Compartilhar no WhatsApp

O que é mise?

  • mise é uma ferramenta para gerenciar várias ferramentas de desenvolvimento, como node, python, cmake e terraform, de forma semelhante ao asdf, nvm e pyenv
  • gerencia variáveis de ambiente por diretório de projeto, de forma semelhante ao direnv
  • gerencia tarefas usadas em builds e testes de projetos, de forma semelhante ao make

Demonstração em 30 segundos

  • mostra como usar o mise para instalar diferentes versões do node
  • ao executar o comando which node, o caminho real é retornado, e não um shim

Início rápido

  • como instalar o mise:
    • $ curl https://mise.run | sh
    • é possível verificar a versão instalada com o comando $ ~/.local/bin/mise --version
  • instalar uma versão específica:
    • $ curl https://mise.run | MISE_VERSION=v2024.5.16 sh
    • é possível verificar a versão instalada com o comando $ ~/.local/bin/mise --version
  • conectar o mise ao shell:
    • 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
  • instalar runtimes e definir o padrão global:
    • $ mise use --global node@20
    • é possível verificar a versão com o comando $ node -v

Documentação completa

  • a documentação completa está disponível em mise.jdx.dev

1 comentários

 
GN⁺ 2024-12-09
Opiniões no Hacker News
  • Quando comecei a usar o mise, fiquei satisfeito porque ele compensava as desvantagens do asdf e, ao mesmo tempo, oferecia uma configuração de shell mais rápida e menos intrusiva

    • Com a adição dos recursos de execução de tarefas e variáveis de ambiente, ele se tornou ainda mais útil
    • Foi impressionante ver quanto tempo o desenvolvedor investiu em manter a compatibilidade com as ferramentas existentes enquanto construía recursos para o futuro
    • Recentemente, ficou prático instalar facilmente as ferramentas de desenvolvimento necessárias por meio dos recursos de backend
  • Migrei para o Mise para gerenciar JS, Ruby, Python e Java SDK, e fiquei satisfeito

    • Foi revigorante não precisar instalar RVM, NVM, ferramentas de instalação do Python e semelhantes
  • Estou usando mise para unificar a cadeia de ferramentas da equipe, sem usar Docker nem Nix

    • Ainda usamos Docker para executar serviços, mas a experiência de uso do mise é excelente
    • Foi conveniente ter autocompletar adicionado a todos os scripts dos repositórios
  • Ao tentar fazer tudo, há uma grande chance de não fazer nada direito

    • A maioria das pessoas não entende profundamente os problemas de empacotamento de um ecossistema
    • Os desenvolvedores precisam saber muitas coisas, mas, na prática, isso não passa de um wrapper para ferramentas existentes
  • Como não sou desenvolvedor, não entendo os casos de uso dessas ferramentas

    • Uso asdf para gerenciar todas as versões dos programas de um monorepo, e a UX não é grande coisa, mas é confiável
    • Em vez de carregar variáveis de ambiente na sessão atual do shell, uso scripts ou Makefiles para carregar as variáveis necessárias e executar as tarefas
    • Uso Make para executar pequenos comandos repetíveis por diretório, ou para paralelizar comandos, ou executá-los em sequência
    • Uso scripts de shell para criar ferramentas um pouco mais longas ou complexas do que alvos de Make
    • Todo o ambiente pode ser gerenciado instalando apenas o asdf, e tudo fica automatizado e com versões fixadas
  • Uso mise para gerenciar versões do Go; é um pouco confuso e faltam documentos, mas tudo bem

    • Como nunca usei asdf ou ferramentas parecidas, talvez exista uma curva de aprendizado
  • Uso mise como substituto do asdf e fiquei satisfeito

    • Ele oferece a mesma funcionalidade, mas é mais rápido e tem uma UX melhor
  • É uma ferramenta simples que, há mais de um ano, tem tornado minha vida mais fácil

    • Agradeço ao criador e aos contribuidores
  • Estou pensando em como integrar mise aos workflows do GitHub Actions

    • Olhando os arquivos de workflow do repositório do mise, parece que basta adicionar algumas etapas do mise
    • Acho que seria melhor se ele pudesse gerar arquivos de workflow
  • Depois de ler o README do projeto, fiquei com a dúvida: "por quê?"

    • Uso Devbox para acessar todo o ecossistema Nix