Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Project Orrery artifacts without the content store, and write the execution overlay as its own file

Aperta
#1,294 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@anth-volk ci sta già lavorando.

Dal 15/10/2026.

  • #1295 di @anth-volk — aperta

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
12/100
Tipo di issue
Refactoring
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
python
Ambito
backend

Direzione di ricerca

Start in microcosm/graph/init.py, where the eager imports of the executor, store, kernels, codecs and evidence sit, and in microcosm/graph/orrery.py, which pulls in orrery_evidence. The protocol string and hash helper currently come from evidence, so those are the pieces to move out. Done means a subprocess that blocks numpy, pandas, microcosm-frame and the store can still import and project a schema plus overlay, and the round trip through graph.execution.json gives byte-identical Orrery JSON. Note that a linked pull request (#1295) is already open, so check it before starting.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Problem

The Orrery artifact is built in two halves. The build machine captures evidence after each phase and, at finalize, verifies it against the content store to produce the execution overlay. Projection (orrery_json_from_schema(schema, execution=overlay)) then needs only the schema and that overlay. The plan is for a collector worker to do the projection later, so that stored builds can be re-projected without the build machine. Two things block that today.

  1. The projection can't be imported without the build runtime. microcosm.graph.orrery imports orrery_evidence, which imports evidence for one protocol string and a hash helper, and evidence imports the content store. On top of that, microcosm/graph/__init__.py imports the executor, store, kernels, codecs and evidence eagerly, so importing any microcosm.graph module pulls in numpy, pandas and microcosm-frame.
  2. The overlay exists only inside the Orrery artifact. collect_execution_evidence returns it in memory, finalize_graph (uk_runtime/orrery_publication.py) passes it straight to the projector, and apply_execution embeds it at metadata.execution. There is no standalone file to hand to another process.

Change

  • Load microcosm.graph's runtime exports on first access (PEP 562), and move the overlay protocol name and the hash helper into modules with no runtime dependencies. Then microcosm.graph.orrery imports and projects a schema plus overlay in a process where numpy, pandas, microcosm-frame and the store can't be imported. Packaging and declared dependencies don't change.
  • Add a serialized overlay file: the canonical JSON of the microcosm.graph.execution-evidence.v1 object, with a bounded reader and a writer.
  • Have UK finalize write graph.execution.json beside graph.orrery.json and register it as a build output. It is not added to the Orrery publication set (orrery-publication/, orrery.upload.json); that waits until the emitter and the runs service accept it.
  • Tests: a subprocess with those imports blocked; a round trip from the written file that must give byte-identical Orrery JSON; and existing outputs kept byte-identical.

Related: #1290 (the overlay's size bound at full UK scale), #1291 and #1170 (reconstruction).

Lingua principale
Python
Stelle
0
Fork
5
Merge medio
1g 6h
PR unite (30g)
146

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di PolicyEngine/microcosm

Tutte le issue di PolicyEngine/microcosm

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.