Measure chance reach misses in oracle properties
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 53/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
Línea de trabajo
Start with packages/db/tests/declared-reach-oracle.property.test.ts and docs/contributing/oracle-coverage.md, then find the other files using createOracleReach or runOracleCampaign. Measure normal-budget reach misses across seeds for states not entered by fixed examples; add fixed examples through the shared seam or document probabilistic states with a maintainer decision. Consider whether a lint rule can identify chance-selected reach prefixes.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
A generated property declares the states its laws depend on, and createOracleReach fails a run in which too few histories entered one (ORC-015). When only random histories enter a declared state, the check can fail by chance at the normal run budget. No law fails, but CI goes red. #2287 was one case: in about 0.3% of 60-run campaigns, source-health.history never chose the one reach prefix that enters two of its states.
The fix for #2287 adds a shared seam for this:
oraclePropertyOptions(…, { examples })runs fixed examples first in every run, on top of the base budget.createOracleReach(…, { fixedHistories })fails for each declared state that those examples did not enter.
The three source-health properties use the seam, so their reach does not depend on the seed. packages/db/tests/declared-reach-oracle.property.test.ts (oracle.declared-reach) owns these rules.
About 40 other files use createOracleReach or runOracleCampaign. Their chance of a reach miss at the normal budget has not been measured.
Work
- For each property with declared reach, list the declared states that no fixed example enters.
- Measure how often a normal-budget run misses each of those states. For example, count the misses across many seeds, or sample the generator.
- For each state that can miss, add a fixed example through the seam, or record the state as probabilistic in
docs/contributing/oracle-coverage.mdwith a maintainer decision. Raise a run budget only with a maintainer decision, because it adds CI time. - Consider a lint rule that reports a property that chooses a reach prefix by chance (
fc.option(fc.constantFrom(...prefixes))) without fixed examples.
The coverage map's "Oracle tooling" section links to this issue as the destination for the gap.
Refs #2234, #2287.
This issue was written by Isaac.
- Lenguaje dominante
- TypeScript
- Estrellas
- 4k
- Forks
- 277
- Merge medio
- 1 d 7 h
- PR fusionados (30 d)
- 170
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de TanStack/db
-
`Collection.currentStateAsChanges` JSDoc examples don’t match `CurrentStateAsChangesOptions`Abierto
Dificultad 1/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
OfflineExecutor.dispose() never settles pendingTransactionPromisesQuizá libre de nuevo @Claire-ovo la tomó hace 8 días y no hay ningún pull request abierto. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
TanStack/db#2254 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Two @tanstack/db tests time out under CPU load because a cold module import counts against the 5 s default timeoutPosiblemente ocupada @jp-knj la tomó hace 6 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 12/100
TanStack/db#2342 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de TanStack/db
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
pingdotgg/t3code#30228 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
ci-cd desktop size:low telemetry-improvement telemetry-round-1
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
vfarcic/dot-agent-deck#2079 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
Broken links in the docsAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 83/100
Los mantenedores suelen responder en 1 día