2 pontos por GN⁺ 2023-09-05 | 1 comentários | Compartilhar no WhatsApp
  • Como o código-fonte do VS Code e a distribuição oficial têm condições diferentes, o VSCodium se torna uma alternativa para usuários que querem obter diretamente um binário sob licença MIT
  • O código-fonte vscode da Microsoft é licenciado em MIT, mas o produto Visual Studio Code disponível para download inclui uma licença separada e telemetria/rastreamento
  • O VSCodium substitui o processo de distribuição com scripts automatizados que compilam o repositório vscode da Microsoft e publicam os binários resultantes no GitHub releases
  • Os binários fornecidos têm a telemetria desativada e é possível baixar as versões mais recentes para Windows, Mac OS e Linux
  • A instalação é possível por vários gerenciadores de pacotes, como Homebrew, WinGet, Chocolatey, Scoop, Snap, Nixpkgs, AUR, repositórios deb/rpm e Flatpak

Diferença entre o código-fonte do VS Code e a distribuição da Microsoft

  • VSCodium é uma distribuição binária livre/open source baseada no VS Code da Microsoft
  • O código-fonte vscode da Microsoft é licenciado em MIT, mas o produto Visual Studio Code distribuído pela Microsoft usa uma licença que não é FLOSS e inclui telemetria/rastreamento
  • O build distribuído pela Microsoft é criado clonando o repositório vscode e aplicando um product.json com recursos exclusivos da Microsoft
    • Esses recursos exclusivos da Microsoft incluem telemetry, gallery, logo etc.
    • Se você compilar diretamente com o product.json padrão, será gerado um build “clean”, sem customizações da Microsoft, com licença MIT por padrão

Como o VSCodium faz build e distribuição

  • O VSCodium permite que o usuário obtenha um build sob licença MIT sem precisar baixar o código-fonte e compilar manualmente
  • Os scripts de build clonam o repositório vscode da Microsoft, executam os comandos de build e depois enviam os binários resultantes para o GitHub releases
  • Os binários do VSCodium usam licença MIT e têm a telemetria desativada
  • Usuários que quiserem compilar por conta própria podem usar o repositório vscode da Microsoft e suas instruções de build
  • A versão mais recente é oferecida para Windows, Mac OS e Linux

Instalação por gerenciador de pacotes

  • No Mac, se você usa Homebrew:
    brew install --cask vscodium
    
  • No Windows, é possível usar vários gerenciadores de pacotes
    • WinGet
      winget install vscodium
      
    • Chocolatey
      choco install vscodium
      
    • Scoop
      scoop bucket add extras
      scoop install vscodium
      
  • No Linux, é possível instalar via Snap, Nixpkgs, AUR, Flatpak etc.
    • Na Snap Store, ele é oferecido com o nome Codium
      snap install codium --classic
      
    • No Nix(OS), é possível adicionar vscodium a environment.systemPackages ou instalar localmente
      nix-env -iA nixpkgs.vscodium
      
    • No Arch Linux, o pacote vscodium-bin do AUR pode ser instalado com um AUR Helper
      yay -S vscodium-bin
      

Instalação via distribuição/repositório

  • No Parrot OS, o VSCodium vem instalado por padrão
    • Se ele não aparecer por padrão, pode ser instalado pelo repositório oficial do Parrot
      sudo apt update && sudo apt install codium
      
  • Os pacotes deb para Debian/Ubuntu são instalados por meio de repositórios relacionados ao VSCodium e mirrors CDN
    • Após adicionar a chave GPG do repositório, adicione a configuração correspondente à sua versão do Debian/Ubuntu
    • O comando de instalação é o seguinte
      sudo apt update && sudo apt install codium
      
    • Se quiser vscodium-insiders, troque codium por codium-insiders
  • Os pacotes rpm para Fedora/RHEL/CentOS/Rocky Linux/OpenSUSE/SUSE também são instalados após adicionar um repositório separado
    • Fedora/RHEL/CentOS/Rocky Linux:
      sudo dnf install codium
      
    • OpenSUSE/SUSE:
      sudo zypper in codium
      
  • No Gentoo/Funtoo, a instalação é feita com ebuild
    • Funtoo:
      sudo emerge -av vscodium-bin
      
    • Gentoo:
      sudo emerge -av vscodium
      

Flatpak e documentação de migração

  • O VSCodium também é oferecido como aplicativo Flatpak, e o repositório de build é flathub/com.vscodium.codium
  • Em ambientes com o repositório Flathub ativado, é possível instalar com o comando abaixo
    flatpak install flathub com.vscodium.codium
    
  • Se gnome-software-plugin-flatpak estiver instalado, também será possível encontrar o VSCodium no GNOME Software
  • Particularidades que você pode encontrar ao migrar do Visual Studio Code para o VSCodium, ou durante o uso, estão organizadas na documentação

1 comentários

 
GN⁺ 2023-09-05
Opiniões no Hacker News
  • Binários criados por projetos assim parecem mais difíceis de confiar do que binários fornecidos por Big Techs. Embora as Big Techs sejam os maiores rastreadores, projetos com muito menos pessoal e interesses envolvidos parecem poder ser mais vulneráveis a ataques à cadeia de suprimentos ou a aquisições hostis quando um desenvolvedor vende o projeto
    Não conheço tão bem essa área, então seria bom ter materiais de referência sobre como projetos assim evitam esses riscos; talvez essa preocupação seja mesmo válida

    • Essa preocupação é totalmente válida. Não estou tentando avaliar este projeto em si, mas é difícil tornar confiável o processo de pegar o original, modificá-lo e redistribuí-lo
      Grandes empresas fazem esforços extremos para garantir a cadeia de confiança do software que compilam, e plataformas de distribuição de apps também se esforçam muito para garantir uma cadeia de confiança de ponta a ponta, do desenvolvedor até o app executado no dispositivo do usuário
      Basicamente, isso é impossível sem confiar não só no autor original, mas também no redistribuidor; porém, procedimentos de build verificáveis, verificação de chaves de assinatura e hashes, e reassinatura reduzem a quantidade de confiança necessária. Se o usuário, em teoria, puder reproduzir o mesmo build por conta própria, fica mais fácil confiar
      A melhor opção seria o projeto original fornecer diretamente builds sem marca, e projetos como o VSCodium ficarem apenas na configuração, como desativar telemetria, sem necessidade de reassinatura. Por exemplo, o projeto Chromium distribui diretamente binários do Chromium sem os elementos exclusivos do Google
      Eu estava pensando principalmente em lojas de aplicativos, mas quase a mesma lógica se aplica a lugares como repositórios de pacotes Debian. Lojas de aplicativos normalmente reassinam no meio do caminho, então é preciso confiar na loja, mas essas empresas fazem muitos esforços para garantir a confiabilidade desse ponto
    • Em teoria, se um projeto desses compila via GitHub Actions e você confia na segurança da Microsoft, basta verificar o hash do commit obtido pela action e comparar as diferenças com o upstream
      Se essas diferenças parecerem seguras, isso praticamente significa que você também pode confiar no binário. Claro, também é preciso verificar se ele não busca recursos da internet cuja integridade não possa ser garantida da mesma forma
    • Acabei de instalar o vscodium em uma máquina Manjaro, e ele foi compilado a partir do código-fonte do AUR
      Deve ser possível comparar o código-fonte usado pelo pacote com o SHA git do upstream da Microsoft que ele afirma ter como base: https://aur.archlinux.org/packages/vscodium
      Por sorte, agora também existe uma extensão de modo remoto open source, então não há mais motivo para usar a versão proprietária. Do meu lado, não há mais telemetria
    • Depois de ver como a indústria de tecnologia está hoje e de ter trabalhado nela, penso justamente o contrário
      Não tenho nenhuma confiança de que uma grande empresa vá fazer algo direito e não vá encher o aplicativo de spyware sob o nome de telemetria. Prefiro confiar nas pessoas que insistem teimosamente em criar software livre e open source
    • Eu também, por enquanto, confio mais na empresa desenvolvedora original. Seria bom ter mais opções
      Builds reproduzíveis podem ajudar aqui, como o Go fez no SDK mais recente: https://go.dev/blog/rebuild
      Isso é especialmente válido para forks com poucas mudanças no código-fonte, já que basta verificar os patches
      Distribuições Linux são bem parecidas. O motivo de eu confiar em geral nos pacotes Debian é que existe uma organização guarda-chuva e procedimentos. Organizações independentes têm menos disso
      Talvez um dia surja uma organização guarda-chuva dedicada apenas a builds reproduzíveis, e as pessoas possam distribuir binários por meio dela. Como registradores de domínio, a verificação independente poderia manter essa organização honesta
  • A Microsoft restringiu extensões importantes para serem usadas apenas na versão oficial, eliminando a concorrência nessa direção. Pessoalmente, uso bastante as extensões remotas, então seria bom se alguém oferecesse uma alternativa

  • Isto é basicamente o mesmo que você obtém ao baixar e compilar o código-fonte do Visual Studio Code
    O nome também parece mais um trocadilho no estilo Chrome → Chromium
    Essa prática da Microsoft e do Google de dizer que estão “tornando open source” seus produtos, quando na verdade lançam um produto com recursos adicionais de código fechado, é desonesta na melhor das hipóteses e, na pior, um enorme caso para processo

    • 100% correto. Google e Apple começaram essa tendência, e a MS a aperfeiçoou. Dizem que estão criando produtos “open source”, mas na prática entregam uma versão de código fechado
      Essas gigantes se beneficiam do trabalho de engenheiros de software ingênuos que doam tempo a produtos open source, mas o que entregam aos usuários finais é uma versão de código fechado
    • Não sei o que há de desonesto nisso, nem qual seria a base de um processo. “Abriram o código do produto e o distribuíram de graça, mas não é do jeito que eu quero” parece difícil de levar à Justiça
    • “Um enorme caso para processo” é uma afirmação bem ousada. A menos que o vscode ou algum outro produto esteja usando código sob licença GPL de forma inadequada ou descumprindo os requisitos de licença, pelo menos até onde sei a Microsoft não está fazendo nada errado
      É o mesmo caso de inúmeras empresas comerciais que lançam software proprietário baseado em projetos open source
    • Este é o modelo de enshittificação aberta
    • Acho que o uso do termo “open source” aqui é bastante justo. Outras pessoas podem pegar o código-fonte e distribuir legalmente builds quase idênticos, exceto por coisas como telemetria
      O que falta é algo mais parecido com a classificação de antirrecursos da loja F-Droid. Por exemplo, avisos como “este app depende de outros apps não livres” ou “depende de serviços de rede não livres, ou os promove”
  • O Vscode foi projetado para induzir fragmentação: https://ghuntley.com/fracture/

    • Isso já foi discutido em 2022: https://news.ycombinator.com/item?id=32657709
      Em resumo, a Microsoft lançou o Visual Studio Code com telemetria embutida, e por isso projetos como o VSCodium começaram a publicar builds customizados sem telemetria. Mas, como esses projetos não são licenciados pela Microsoft, não podem usar o mesmo marketplace, e essa é a fragmentação do título do artigo
      Em seguida, o texto diz que outros IDEs proprietários também têm problemas, e que o GitHub é uma armadilha para capturar e fragmentar desenvolvedores
      Esse drama envolvendo a Microsoft e o open source lembra os documentos Halloween: http://www.catb.org/~esr/halloween/
    • O ponto central a que esse texto acaba chegando é que a Microsoft criou o melhor IDE e as melhores extensões, e por isso ficou difícil não usar Microsoft. Isso tem várias implicações ruins
      Hmm… é mesmo? Use ou não use. Não sei se “é tão bom que não dá para não usar” é uma reclamação legítima
    • Por essa definição, é realmente difícil pensar em algum produto extensível ou que permita extensões que não tenha sido projetado para induzir fragmentação
  • Ontem tive que trocar a build open source. Depois da atualização, o Pylance pareceu parar de funcionar por causa de DRM
    A cada inicialização, ele exibia um grande aviso de que usá-lo em uma build não aprovada pela MS violava a licença e então parava imediatamente

    • Dá para usar o pyright no lugar: https://github.com/microsoft/pyright
      É a versão livre e open source do pyright, mas alguns recursos ficam de fora
    • Isso soa como um motivo para não usar o Pylance
  • Posts relacionados
    VSCodium – Free/Libre Open Source Software Binaries of VS Code - https://news.ycombinator.com/item?id=31604932 - junho de 2022, 430 comentários
    VS Code without Microsoft branding/telemetry/licensing - https://news.ycombinator.com/item?id=23447413 - junho de 2020, 200 comentários
    VSCodium – An Open Source Visual Studio Code Without Trackers - https://news.ycombinator.com/item?id=19650109 - abril de 2019, 253 comentários
    VSCodium: 100% Open Source Version of vs. Code - https://news.ycombinator.com/item?id=19619956 - abril de 2019, 8 comentários
    VSCodium: Binary releases of VSCode without MS branding, telemetry and licensing - https://news.ycombinator.com/item?id=17850960 - agosto de 2018, 113 comentários

  • Usei isso por muito tempo e recomendei para a equipe, mas acabei desistindo. Sem SSH remoto e devcontainers, a Microsoft mantém um controle forte sobre a possibilidade de aproveitar o VSCode ao máximo
    Além disso, parece que a Microsoft recuou na telemetria, e dizem que agora é possível desativá-la completamente. Só não testei por conta própria se “desligado” é mesmo desligado

    • A extensão oficial de devcontainer realiza a maior parte do trabalho principal por meio da devcontainer CLI open source, então ela pode ser usada fora de qualquer IDE
      Além disso, com Remote OSS dá para usar um host remoto do vscodium dentro de um dev container. Escrevi mais detalhes neste comentário: https://news.ycombinator.com/item?id=37386025
  • Uso tanto o VSCode quanto o VSCodium. O motivo é simples e prático: gerenciamento de configurações e várias janelas distinguíveis
    Meu VSCode foi completamente tomado por uma quantidade enorme de extensões que parecem necessárias para trabalhos com Microchip/Atmel/zephyr
    Para trabalhos com ansible/elixir, uso o VSCodium

    • Parece um uso bem complexo para manter dois ambientes diferentes
      O VSCodium não tem algo como perfis de navegador, em que dá para mudar todo tipo de configuração apenas dentro daquele perfil? Uso isso com frequência no Firefox, e também deixo as janelas com aparências diferentes
  • Espero que continuem mantendo. A extensão da nossa startup está no Open VSX Registry, e estamos muito satisfeitos em operar assim

  • No Arch, existe o que parece ser um pacote equivalente, simplesmente chamado code

    • code é o nome do binário, e o “projeto” em si é Code - OSS, como está escrito em https://wiki.archlinux.org/title/Visual_Studio_Code
      Esse é o pacote fornecido pelo repositório principal; para usar VSCodium ou Visual Studio Code, é preciso usar o AUR