Spike: Condition value type coercion spec
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 25/100
- Issue-Typ
- Dokumentation
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Bereich
- documentation, testing
Rechercherichtung
Beginne mit der Durchsicht von Issue #38 und der Entwurfsantworten in diesem Issue und identifiziere anschließend die noch offenen Koerzionsfälle, für die eine Einigung erforderlich ist. Als abgeschlossen gilt die Aufgabe, wenn die Regeln festgelegt sind, umfassende Testfälle sie formalisieren und ein benutzerorientiertes Dokument das daraus resultierende Verhalten erklärt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- Keine Sprachdaten
- Sterne
- 0
- Forks
- 0
- Ø Merge
- 47 Min.
- Gemergte PRs (30 T.)
- 2
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 Flagsmith/engine-test-data
-
Spike: Spec-based engine updatesEvtl. wieder frei @khvn26 hat das vor 325 Tagen übernommen, und es ist kein Pull Request offen. Offen
Flagsmith/engine-test-data#49 · 3 Kommentare · 1 zugewiesene Person ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 48/100
-
tech-debt
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 20/100
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
Alle Issues in Flagsmith/engine-test-data
Ähnliche Issues
-
documentation good first issue help wanted
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
drevendev/HungryCrab#273 ·
Maintainer antworten meist innerhalb von 1 Tag
-
good first issue help wanted
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
drevendev/BeautifulRepo#19 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
documentation story
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 1 Tag
-
Create a theming guideOffendocumentation good first issue theming
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100