Assign every v2 route and service file to a layer and enforce the doc-only v2 layer rules
I maintainer di solito rispondono entro 2 giorni
Una pull request collegata è già stata integrata.
- #4191 di @anth-volk — integrata
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 20/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Ferma
- Stack tecnologico
- python
- Ambito
- backend-api-design, testing
Direzione di ricerca
Start with scripts/run_quality_guards.py, the rules under scripts/rules/, and the existing checks in tests/unit/v2/test_data_crud_boundaries.py; read rules/registry.toml and v2-code-organization.md for the current rule setup. Discover and classify all Python files under policyengine_api/services/v2 and policyengine_api/fastapi_routes/v2, then add the guard, rule citations, and proof fixtures. Done means every file has a layer, the listed layer rules are enforced or ratcheted, and the fixtures cover receiver-aware calls, TYPE_CHECKING imports, connector imports in routes, and an unassigned file.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Four API v2 layer rules in rules/registry.toml are doc-only: nothing checks them.
api.v2.routes-no-sessions-or-sqlapi.v2.services-no-sqlapi.v2.connectors-never-commitapi.v2.connectors-no-cross-calls
The existing structural tests in tests/unit/v2/test_data_crud_boundaries.py match any call by method name (.add counts whether it is session.add or set.add), and nothing makes sure a new v2 file is checked at all.
Change
A v2-layers quality guard in the rules tool (scripts/rules/, run by scripts/run_quality_guards.py), standard library only:
-
Discover every
.pyfile underpolicyengine_api/services/v2andpolicyengine_api/fastapi_routes/v2and assign it to a layer by its file name (services.py,validators.py,database_connectors/reads.py,routes.py, and so on), or by a small manifest,rules/v2-layer-manifest.toml, for the few files with other names. Fail on any file that has no layer. This is new ruleapi.v2.files-assigned-to-layers. -
Check calls by their receiver (
session.add, not any.add) and SQL builders by where they are imported from, per layer:- route modules open no session and build no SQL;
- services build no SQL and call no data-access session method;
- connectors never open, commit, roll back or close a session.
Imports under
TYPE_CHECKINGcount. -
Make the three rules above
enforced, orratchetedwith a baseline of today's findings.api.v2.connectors-no-cross-callsbecame ratcheted with the Import Linter contracts in #4181. -
Give each rule a proof fixture, including a route that imports a connector and a file with no layer.
-
Cite each rule id in
v2-code-organization.md.
Open pull requests that add v2 files will have to give each new file a layer once this merges.
- Lingua principale
- Python
- Stelle
- 18
- Fork
- 33
- Merge medio
- 2g 18h
- PR unite (30g)
- 105
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi 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.
Altre issue di PolicyEngine/policyengine-api
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
PolicyEngine/policyengine-api#4037 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100
PolicyEngine/policyengine-api#3911 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
PolicyEngine/policyengine-api#3910 ·
I maintainer di solito rispondono entro 2 giorni
-
Update PolicyEngine bundle to 6.15.0Forse già presa @policyengine l’ha presa 1 giorno fa. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 1/100
PolicyEngine/policyengine-api#4214 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 54/100
PolicyEngine/policyengine-api#4211 ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di PolicyEngine/policyengine-api
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
Textualize/textual#6753 · 1 commento ·
-
priority:low size:small
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
RonaldHensbergen/composable-data-stack#1177 ·
I maintainer di solito rispondono entro 1 giorno
-
Use registered media types for HDF5 and NetCDF, and stop claiming media_type must be IANA-registeredApertadocumentation metadata
Difficoltà 2/5 1-3 ore Idoneità per principianti 87/100
I maintainer di solito rispondono entro 1 giorno
-
check-typing: ty 0.0.98+ fails on the renamed rule `unresolved-import` (now `import-not-found`)Forse già presa @oberstet l’ha presa oggi. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 91/100
crossbario/cfxdb#145 ·