ci: run the tests/dincli full-GI integration suite in a separate CI job
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 52/100
Direzione di ricerca
Read .github/workflows/ci.yml and tests/dincli/test_integration_marker.py, then review the prerequisite changes in PR #229 and the setup used by tests/dincli/. Add a separate CI job that runs the full suite against the foundry contracts and uploads logs on failure. Done means the job reaches GIended and both named testing guides explain the job and local reproduction.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
CI never runs the tests/dincli/ full-GI integration suite. The Python job runs pytest -m "not integration" -q (.github/workflows/ci.yml:136-137), and tests/test_integration_marker.py checks that exactly that directory is excluded. As a result the suite has drifted from the foundry contracts without anyone noticing. On develop @ 740a613 it can't pass:
- Phase 1: it asserts a
proxyAdminkey, but both deploy scripts now write per-contractproxyAdmin*keys (tests/dincli/test_01_platform.py:135-137,164). - Task contracts: they are deployed from hardhat artifacts (
tests/dincli/constants.py:50). Those are the pre-foundry contracts, with no commit-reveal, rewards, seed lock or encrypted test data. - The GI phase: it never funds the reward pool, registers auditor keys, or runs the three reveal phases. It also asserts
GIendedas "23" (it's 25).
task-plan-051026-2 (PR #229, pending review) fixes the suite so it runs a complete GI on the foundry contracts. This issue tracks the follow-up: once the suite passes, run it in CI so it can't drift again.
Proposal
A separate integration job in ci.yml, kept apart from the fast Python job:
- Triggers: PRs and pushes to
developthat touchfoundry/src/**,foundry/script/**,dincli/**ortests/dincli/**. - Setup:
- Foundry, with
forge buildplusnpm ciinfoundry/. - Anvil via
foundry/anvil.sh. Its--block-time 2is what the seed-lock polling relies on. - An IPFS (kubo) daemon.
- Docker, for the sandboxed
din-workercontainers thattrain-lms,evaluateandaggregate-*spawn. - Python 3.12 with
pip install -e ..
- Foundry, with
- Run:
pytest tests/dincli/ -v -x -m integration --tb=short. Upload the dincli logs and the anvil output as artifacts when it fails. - Rollout: non-blocking (
continue-on-error) at first. Make it a required check once it has been stable for a couple of weeks. - Cost: a full GI trains 9 clients and runs auditor and aggregator jobs in containers. Measure the runtime once. If it's too slow per PR, run it on
pushtodevelopand nightly instead, and run it on PRs only when a label is set.
Acceptance
- The
integrationjob runs the full-GI suite on anvil against the foundry contracts, throughGIended. - Failures upload logs.
Developer/CONTRIBUTING.mdandDocumentation/technical/testing/dincli-testing-guide.mddescribe the job and how to reproduce it locally.
Depends on
- task-plan-051026-2 (PR #229) TP-4: the suite has to pass a complete GI first.
- Lingua principale
- Python
- Stelle
- 4
- Fork
- 7
- Merge medio
- 3g 4h
- PR unite (30g)
- 34
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
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.
Altre issue di InfiniteZeroFoundation/DevNet
-
ROADMAP.md: refresh "What is still open for P3" (several items were fixed in October)Forse già presa @umermjd11 l’ha presa 2 giorni fa. Apertadocumentation good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
InfiniteZeroFoundation/DevNet#285 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Update the 25 translated organisation READMEs to match the English versionForse già presa @mrCabez l’ha presa oggi. Apertagood first issue help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
InfiniteZeroFoundation/DevNet#277 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
InfiniteZeroFoundation/DevNet#266 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
InfiniteZeroFoundation/DevNet#299 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Long run
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
InfiniteZeroFoundation/DevNet#298 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di InfiniteZeroFoundation/DevNet
Issue simili
-
enhancement help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
Git-Hospital/githealthcheck#61 ·
I maintainer di solito rispondono entro 1 giorno
-
changelog investigate
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
ramnes/notion-sdk-py#433 ·
-
Partial method descriptors raise on class accessForse già presa @Gambit-Checkmate l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 19 giorni
-
docs pkg:core
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 84/100
pydantic/pydantic-ai#11929 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
intake/intake-esm#789 ·