ci: run the tests/dincli full-GI integration suite in a separate CI job
Maintainer antworten meist innerhalb von 1 Tag
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 52/100
Rechercherichtung
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.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- Python
- Sterne
- 4
- Forks
- 7
- Ø Merge
- 3 T. 5 Std.
- Gemergte PRs (30 T.)
- 34
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus InfiniteZeroFoundation/DevNet
-
ROADMAP.md: refresh "What is still open for P3" (several items were fixed in October)Evtl. vergeben @umermjd11 hat das vor 3 Tagen übernommen. Offendocumentation good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
InfiniteZeroFoundation/DevNet#285 · 1 Kommentar · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
Update the 25 translated organisation READMEs to match the English versionEvtl. vergeben @mrCabez hat das vor 1 Tag übernommen. Offengood first issue help wanted
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
InfiniteZeroFoundation/DevNet#277 · 2 Kommentare · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
Update the client-service guide to explain training and uploading separatelyEvtl. vergeben @Santiagocetran hat das vor 1 Tag übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
InfiniteZeroFoundation/DevNet#266 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
Few questions related to GI2 aggregatorEvtl. vergeben @Abidoyesimze hat das heute übernommen. Offen
InfiniteZeroFoundation/DevNet#307 · 1 Reaktion · 4 zugewiesene Personen ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug python
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 52/100
InfiniteZeroFoundation/DevNet#306 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in InfiniteZeroFoundation/DevNet
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
vllm-project/vllm#64845 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
dekobon/big-code-analysis#1729 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
pydantic/pydantic-ai#12091 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100