Pular para o conteúdo

O lockfile

O que ele trava, por que ele precisa ser LIDO, e as duas regras que decidem os empates.

O forge.lock guarda a versão exata e o sha256 de cada pacote. Ele é versionado, e a razão é uma só: duas pessoas clonando o mesmo projeto em dias diferentes têm de receber a mesma árvore.

ComandoO que ele faz
installinstala o que o lock fixa, enquanto couber na faixa do forge.toml
updateresolve de novo dentro das faixas e reescreve o lock; com nomes, move só eles
addmove só o que está sendo adicionado — o resto continua travado
outdatedsepara o que sobe com update do que exige mudar o forge.toml

As duas regras dos empates#

RegraPorque
a faixa do `forge.toml` vence o locko manifesto é a intenção; o lock é a memória da última resolução. Quem sobe o requisito está pedindo outra versão
o sha256 do lock é comparado com o que chegouum tarball trocado numa versão já publicada para a instalação, com a mensagem dizendo o que fazer. É o ataque que um lockfile existe para impedir

O tarball é reprodutível#

mtime=0, uid e gid zerados. Sem isso o sha256 mudaria a cada empacotamento, a verificação de integridade não significaria nada — e, pior, pareceria significar.

bash
cd packages/validador
dataforge pack                      # o tarball, com sha256 estavel
dataforge pack && dataforge pack    # o MESMO sha256 nas duas vezes

Continue em O registro e Versão e compatibilidade.