Adopt shared mapper test data from engine-test-data
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 42/100
Research direction
Inspect lib/flagsmith/engine/mappers/identity.rb at the linked implementation and review the shared mapper_test_cases from Flagsmith/engine-test-data#46. Compare the current identity override virtual segment key generation with the JSON + SHA256 standard described in the linked PHP and .NET changes. Done means mapper_test_cases pass and the generated key matches the portable standard.
Written by the indexing model from the issue text.
Description
Mapper tests use inline expected context data rather than shared test cases from engine-test-data repository.
Acceptance criteria
- mapper_test_cases pass (see Flagsmith/engine-test-data#46)
- Identity override virtual segment key generation matches cross-SDK portable standard (JSON + SHA256)
Technical context
Current implementation uses non-portable hash:
https://github.com/Flagsmith/flagsmith-ruby-client/blob/287ce6d173cf72564da88b8e9c98d042a1deb941/lib/flagsmith/engine/mappers/identity.rb#L38
Portable standard (JSON + SHA256):
- PHP: https://github.com/Flagsmith/flagsmith-php-client/pull/124/files#diff-5872f438d0e149e75ba3660c6b8e7ec8af446b87ea6a4e70f45f7e8e9e7b9c4dR208
- .NET: https://github.com/Flagsmith/flagsmith-dotnet-client/pull/177/files#diff-f851c822fa0e162b75312b6b9ab5dc31d3631179a33360ec77bbb83f4ae7c50eR249
Shared test data: https://github.com/Flagsmith/engine-test-data/pull/46
Related issues:
- Flagsmith/flagsmith-python-client#181
- Flagsmith/flagsmith-java-client#197
- Flagsmith/flagsmith-nodejs-client#228
- Flagsmith/flagsmith-go-client#196
- Flagsmith/flagsmith-rust-flag-engine#26
- Flagsmith/flagsmith-dotnet-client#180
- Dominant language
- Ruby
- Stars
- 12
- Forks
- 6
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Flagsmith/flagsmith-ruby-client
-
Local evaluation buckets percentage splits with the server key, so results differ from FlagsmithOpen
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 4/5 3-5 days Newbie friendliness 55/100
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
-
Dependency DashboardOpen
Difficulty 3/5 1-2 days Newbie friendliness 15/100
-
Local evaluation silently drops identity overrides on large environmentsPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 4/5 3-5 days Newbie friendliness 55/100
All issues in Flagsmith/flagsmith-ruby-client
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
scanaislop/aislop#476 ·
Maintainers usually reply within 1 day
-
Dependencies view: `getParent` loops forever on untitled documents, extension host runs out of memoryPossibly taken A pull request linked to this issue is open or already merged. Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
area/web interface
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
mastodon/mastodon#41000 · 1 reaction ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 82/100
zerocracy/judges-action#2743 ·
Maintainers usually reply within 8 days
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
endoflife-date/endoflife.date#11314 ·
Maintainers usually reply within 1 day