bytecodealliance / bytecodealliance/ComponentizeJS

Reproducible builds

Aberta
#321 0 comentários 1 reação 0 responsáveis Ver no GitHub
Linguagem predominante
Rust
Estrelas
391
Forks
53
Merge médio
3d 5h
PRs com merge (30d)
1

Descrição

I have used ComponentizeJS in 3 different projects

I'm seeing with every project that the wasm file output is not reproducible from one build to the next

For example: https://github.com/rhodey/lock.host-wasm-js

I have `npm run bundle` and `npm run build`

I run `sha256sum dist/bundle.js` and determine the same js bundle is being produced

I run `sha256sum dist/bundle.wasm` and determine the wasm file is different with every run of `componentize-js`

It is not hard to imagine that more than 1 thing would need to change to get reproducible builds

A first thought is I think from what I have read that ComponentizeJS is doing something like snapshot of the JS Runtime memory in order to get faster boots. And so that is suspicious as an area of non determinism.

I will much appreciate any help with achieving reproducible builds and if it can be achieved quicker by disabling some features and losing some speed it would be acceptable for my purposes

Thanks!!

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Direção de pesquisa

Reproduce the issue with the reported npm run bundle and npm run build commands, then compare sha256sum dist/bundle.js and dist/bundle.wasm across repeated componentize-js runs. Investigate the componentize-js build path and the suspected JavaScript runtime snapshot behavior; done means the wasm output has the same checksum across builds, or a documented reproducible-build mode is identified.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
javascript, rust, wasm
Domínio
build-system
Tipo de issue
Bug
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
45/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.