Spike: Condition value type coercion spec
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Documentación
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Área
- documentation, testing
Línea de trabajo
Comienza revisando el issue #38 y las respuestas preliminares de este issue; después, identifica los casos de coerción no resueltos que requieren acuerdo. Se considera terminado cuando las reglas están establecidas, unos casos de prueba exhaustivos las formalizan y un documento orientado al usuario explica el comportamiento resultante.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
The behaviour of the engine needs to be clarified when comparing context values (traits) to segment condition values.
Different languages handle this in different ways, so we need to agree on a set of rules that are not dependent on any specific language implementation.
The goal is to devise test cases that formalise the in-engine type coercion, and a comprehensive user-facing document that details it.
Some of the questions we should have formal answers to, along with draft answers representing the current behaviour:
Q: How is a null context value treated?
A: Engine evaluates to false for all operators except IS_NOT_SET.
Q: What is the string representation of a Boolean condition value?
A: 'True', 'true', 'False', 'false'. Numeric values (1, 0) are not expected.
Q: How are numeric values compared?
A: Condition value is coerced to context/trait value type.
Q: How are values compared for the In operator?
A: Condition value is coerced to list of strings. Membership check is performed against a string representation of the context/trait value. Boolean context/trait values are skipped (rule evaluated to false).
NOTE: This behaviour is deemed problematic due to contradicting the overall logic of coercing segment condition values to trait values, and lack of uniform decimal/float serialisation across different languages.
Q: How are numbers parsed in regards to system locale?
A: Numbers are always parsed with a period as decimal separator, regardless of region or language settings system or process-wise.
#38 is an attempt to formalise the last answer, which sparked a conversation resulting in this issue.
- Lenguaje dominante
- Sin datos de lenguaje
- Estrellas
- 0
- Forks
- 0
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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 Flagsmith/engine-test-data
-
Spike: Spec-based engine updatesQuizá libre de nuevo @khvn26 la tomó hace 311 días y no hay ningún pull request abierto. Abierto
Flagsmith/engine-test-data#49 · 3 comentarios · 1 asignado ·
-
Add `In` operator edge casesAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
-
tech-debt
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
-
Groom existing test case filesAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Todos los issues de Flagsmith/engine-test-data
Issues similares
-
sync-en
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 3 días
-
docs needs_triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
ansible/ansible#87630 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
mattpocock/skills#1165 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
Impact: Low Severity: Minor
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
vaadin/flow#26179 · 2 comentarios ·
Los mantenedores suelen responder en 1 día