Spike: Condition value type coercion spec
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 25/100
- Type d'issue
- Documentation
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Domaine
- documentation, testing
Piste de recherche
Commencez par examiner l’issue #38 et les réponses préliminaires dans cette issue, puis identifiez les cas de coercition non résolus qui nécessitent un accord. Le travail est terminé lorsque les règles sont établies, que des cas de test complets les formalisent et qu’un document destiné aux utilisateurs explique le comportement qui en résulte.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- Aucune donnée de langage
- Étoiles
- 0
- Forks
- 0
- Merge moyen
- 4 j 22 h
- PR mergées (30 j)
- 1
Préparer son environnement
Nous n'avons pas encore vérifié les fichiers d'installation de ce projet. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de Flagsmith/engine-test-data
-
Spike: Spec-based engine updatesPeut-être à nouveau libre @khvn26 l’a pris il y a 304 jours, et aucune pull request n’est ouverte. Ouverte
Flagsmith/engine-test-data#49 · 3 commentaires · 1 personne assignée ·
-
Add `In` operator edge casesOuverte
Difficulté 3/5 1-2 jours Accessibilité débutants 48/100
-
tech-debt
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 20/100
-
Groom existing test case filesOuverte
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
Toutes les issues de Flagsmith/engine-test-data
Issues similaires
-
Broken links found in docsOuvertedocs pydanty:is-working
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
pydantic/pydantic-ai#8863 ·
Les mainteneurs répondent en général sous 1 jour
-
documentation from-review-extraction github-actions priority: low severity:nit
Difficulté 1/5 Moins d'une heure Accessibilité débutants 92/100
LearningCircuit/local-deep-research#6946 ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
esphome/device-builder#2856 ·
Les mainteneurs répondent en général sous 1 jour
-
documentation good first issue
Difficulté 1/5 Moins d'une heure Accessibilité débutants 95/100
-
Difficulté 1/5 1-3 heures Accessibilité débutants 78/100
mantinedev/mantine#9223 ·
Les mainteneurs répondent en général sous 6 jours