Better build orchestration
Aperta
Nessuno ha ancora preso questa issue.
- Lingua principale
- Ruby
- Stelle
- 875
- Fork
- 68
- Merge medio
- 9g 5h
- PR unite (30g)
- 1
Descrizione
The underlying build system of rbwasm build is quite messy.
- Each build step has to have its ad-hoc up-to-date check like followings:
https://github.com/ruby/ruby.wasm/blob/a5d06a01873130fda0f07f4401a3b018c6f1d753/lib/ruby_wasm/build/product/baseruby.rb#L26 https://github.com/ruby/ruby.wasm/blob/a5d06a01873130fda0f07f4401a3b018c6f1d753/lib/ruby_wasm/build/product/crossruby.rb#L171 - Uses of build product and cache key computation are placed far, so we often forget to update the cache key and get a wrong cache restored.
https://github.com/ruby/ruby.wasm/blob/a5d06a01873130fda0f07f4401a3b018c6f1d753/lib/ruby_wasm/build.rb#L78 - The current cache mechanism cannot restore two or more artifacts produced within a single rake task job. This usually happens for PIC & non-PIC builds invoked by
rake npm:ruby-head-wasm-wasi:build - Our cache mechanism does not allow partial cache-hit, so even if we change only crossruby source revision, we have to rebuild openssl from scratch.
- Our cache mechanism is not sensitive to recipe changes. For instance, even if we change CFLAGS value, crossruby product will not be rebuilt.
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia leggendo lib/ruby_wasm/build.rb e le implementazioni dei prodotti in lib/ruby_wasm/build/product/baseruby.rb e crossruby.rb. Traccia l’entry point rake npm:ruby-head-wasm-wasi:build e i relativi artefatti PIC e non-PIC. Il lavoro è completo quando la cache di build gestisce più artefatti e hit parziali, oltre alle modifiche alle revisioni del codice sorgente e alle ricette, senza ripristinare risultati errati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- ruby, wasm
- Ambito
- build-system
- Tipo di issue
- Refactoring
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 25/100