diff --git a/.release-please-manifest.json b/.release-please-manifest.json index d63d575c..0f6aa44e 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "6.1.0" + ".": "6.1.1" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b1e0547..e3f13c35 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,817 +1,963 @@ # Changelog -## [6.1.0](https://github.com/Flagsmith/flagsmith-engine/compare/v6.0.2...v6.1.0) (2025-08-18) +## [6.1.1](https://github.com/Flagsmith/flagsmith-engine/compare/v6.1.0...v6.1.1) (2025-11-25) +### Bug Fixes -### Features +- Exclude identities when PERCENTAGE_SPLIT trait is undefined + ([#284](https://github.com/Flagsmith/flagsmith-engine/issues/284)) + ([0427c04](https://github.com/Flagsmith/flagsmith-engine/commit/42d56c4f97846d74547c8c35478384ba44abd9ab)) -* **v7:** `get_evaluation_result` ([#239](https://github.com/Flagsmith/flagsmith-engine/issues/239)) ([b1e4447](https://github.com/Flagsmith/flagsmith-engine/commit/b1e444733c14e74a61cac9b1173518366e34b31a)) +**Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v6.1.0...v6.1.1 +## [6.1.0](https://github.com/Flagsmith/flagsmith-engine/compare/v6.0.2...v6.1.0) (2025-08-18) + +### Features + +- **v7:** `get_evaluation_result` ([#239](https://github.com/Flagsmith/flagsmith-engine/issues/239)) + ([b1e4447](https://github.com/Flagsmith/flagsmith-engine/commit/b1e444733c14e74a61cac9b1173518366e34b31a)) ### Other -* Drop Python 3.7 support ([#240](https://github.com/Flagsmith/flagsmith-engine/issues/240)) ([ffadc79](https://github.com/Flagsmith/flagsmith-engine/commit/ffadc79fffe0328e77360d609fea159fef7befaf)) +- Drop Python 3.7 support ([#240](https://github.com/Flagsmith/flagsmith-engine/issues/240)) + ([ffadc79](https://github.com/Flagsmith/flagsmith-engine/commit/ffadc79fffe0328e77360d609fea159fef7befaf)) ## [6.0.2](https://github.com/Flagsmith/flagsmith-engine/compare/v6.0.1...v6.0.2) (2025-08-06) - ### Bug Fixes -* reintroduced-get-identity-segments ([#237](https://github.com/Flagsmith/flagsmith-engine/issues/237)) ([efe710c](https://github.com/Flagsmith/flagsmith-engine/commit/efe710ce456064f7e01934f18f4773e24ae3d266)) +- reintroduced-get-identity-segments ([#237](https://github.com/Flagsmith/flagsmith-engine/issues/237)) + ([efe710c](https://github.com/Flagsmith/flagsmith-engine/commit/efe710ce456064f7e01934f18f4773e24ae3d266)) ## [6.0.1](https://github.com/Flagsmith/flagsmith-engine/compare/v6.0.0...v6.0.1) (2025-08-06) - ### Bug Fixes -* added-none-check-in-context-matches-condition ([#236](https://github.com/Flagsmith/flagsmith-engine/issues/236)) ([fc5bf44](https://github.com/Flagsmith/flagsmith-engine/commit/fc5bf448d780acd78b614996151252eef59864a3)) - +- added-none-check-in-context-matches-condition ([#236](https://github.com/Flagsmith/flagsmith-engine/issues/236)) + ([fc5bf44](https://github.com/Flagsmith/flagsmith-engine/commit/fc5bf448d780acd78b614996151252eef59864a3)) ### CI -* Publish a wheel, move on from deprecated `setup.py` usage ([#230](https://github.com/Flagsmith/flagsmith-engine/issues/230)) ([f43dcc8](https://github.com/Flagsmith/flagsmith-engine/commit/f43dcc83d60b6f5ad478e6382ba451d29c441474)) +- Publish a wheel, move on from deprecated `setup.py` usage + ([#230](https://github.com/Flagsmith/flagsmith-engine/issues/230)) + ([f43dcc8](https://github.com/Flagsmith/flagsmith-engine/commit/f43dcc83d60b6f5ad478e6382ba451d29c441474)) ## [6.0.0](https://github.com/Flagsmith/flagsmith-engine/compare/v5.4.1...v6.0.0) (2025-07-21) - ### ⚠ BREAKING CHANGES -* Release latest changes as breaking ([#227](https://github.com/Flagsmith/flagsmith-engine/issues/227)) +- Release latest changes as breaking ([#227](https://github.com/Flagsmith/flagsmith-engine/issues/227)) ### Features -* Release latest changes as breaking ([#227](https://github.com/Flagsmith/flagsmith-engine/issues/227)) ([a6d42b2](https://github.com/Flagsmith/flagsmith-engine/commit/a6d42b2b625dd6a3278daabb05fabcd4850a02ae)) +- Release latest changes as breaking ([#227](https://github.com/Flagsmith/flagsmith-engine/issues/227)) + ([a6d42b2](https://github.com/Flagsmith/flagsmith-engine/commit/a6d42b2b625dd6a3278daabb05fabcd4850a02ae)) ## [5.4.1](https://github.com/Flagsmith/flagsmith-engine/compare/v5.4.0...v5.4.1) (2025-07-21) - ### Bug Fixes -* `ImportError` when trying to import the `TraitValue` type ([#224](https://github.com/Flagsmith/flagsmith-engine/issues/224)) ([6133b96](https://github.com/Flagsmith/flagsmith-engine/commit/6133b96921a21c195f7ee7eb1c09004ed87de81f)) +- `ImportError` when trying to import the `TraitValue` type + ([#224](https://github.com/Flagsmith/flagsmith-engine/issues/224)) + ([6133b96](https://github.com/Flagsmith/flagsmith-engine/commit/6133b96921a21c195f7ee7eb1c09004ed87de81f)) ## [5.4.0](https://github.com/Flagsmith/flagsmith-engine/compare/v5.3.1...v5.4.0) (2025-07-21) - ### Features -* Context values for Segments ([#220](https://github.com/Flagsmith/flagsmith-engine/issues/220)) ([01e7a56](https://github.com/Flagsmith/flagsmith-engine/commit/01e7a56ad040aaf17ddc6e1ccc3c0bf9b5f24864)) +- Context values for Segments ([#220](https://github.com/Flagsmith/flagsmith-engine/issues/220)) + ([01e7a56](https://github.com/Flagsmith/flagsmith-engine/commit/01e7a56ad040aaf17ddc6e1ccc3c0bf9b5f24864)) ## [5.3.1](https://github.com/Flagsmith/flagsmith-engine/compare/v5.3.0...v5.3.1) (2025-06-30) - ### CI -* add release please ([#214](https://github.com/Flagsmith/flagsmith-engine/issues/214)) ([6ff5a0a](https://github.com/Flagsmith/flagsmith-engine/commit/6ff5a0a3ccda254943426c732912dfa29661b88a)) - +- add release please ([#214](https://github.com/Flagsmith/flagsmith-engine/issues/214)) + ([6ff5a0a](https://github.com/Flagsmith/flagsmith-engine/commit/6ff5a0a3ccda254943426c732912dfa29661b88a)) ### Other -* add sane model defaults to OrganisationModel and ProjectModel ([#213](https://github.com/Flagsmith/flagsmith-engine/issues/213)) ([d909c2f](https://github.com/Flagsmith/flagsmith-engine/commit/d909c2f040512cecd88fb629405673daccc6d1d7)) -* **deps:** bump pydantic from 2.3.0 to 2.4.0 ([#206](https://github.com/Flagsmith/flagsmith-engine/issues/206)) ([eb02943](https://github.com/Flagsmith/flagsmith-engine/commit/eb029439dde033fe5c03cb567393d3d8b36446d9)) +- add sane model defaults to OrganisationModel and ProjectModel + ([#213](https://github.com/Flagsmith/flagsmith-engine/issues/213)) + ([d909c2f](https://github.com/Flagsmith/flagsmith-engine/commit/d909c2f040512cecd88fb629405673daccc6d1d7)) +- **deps:** bump pydantic from 2.3.0 to 2.4.0 ([#206](https://github.com/Flagsmith/flagsmith-engine/issues/206)) + ([eb02943](https://github.com/Flagsmith/flagsmith-engine/commit/eb029439dde033fe5c03cb567393d3d8b36446d9)) + ## [v5.3.0](https://github.com/flagsmith/flagsmith-engine/releases/tag/v5.3.0) - 2024-09-24 ## What's Changed -* feat: make map_any_value_to_trait_value public to allow trait value parsing in core by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#211](https://github.com/Flagsmith/flagsmith-engine/pull/211) -* chore: bump minor version by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#212](https://github.com/Flagsmith/flagsmith-engine/pull/212) +- feat: make map_any_value_to_trait_value public to allow trait value parsing in core by + [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#211](https://github.com/Flagsmith/flagsmith-engine/pull/211) +- chore: bump minor version by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#212](https://github.com/Flagsmith/flagsmith-engine/pull/212) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v5.2.0...v5.3.0 [Changes][v5.3.0] - + ## [v5.2.0](https://github.com/flagsmith/flagsmith-engine/releases/tag/v5.2.0) - 2024-09-04 ## What's Changed -* chore(deps-dev): bump black from 23.7.0 to 24.3.0 by [@dependabot](https://github.com/dependabot) in [Flagsmith/flagsmith-engine#203](https://github.com/Flagsmith/flagsmith-engine/pull/203) -* chore: update github actions by [@dabeeeenster](https://github.com/dabeeeenster) in [Flagsmith/flagsmith-engine#204](https://github.com/Flagsmith/flagsmith-engine/pull/204) -* feat(env/model): Add use_identity_overrides_in_local_eval field by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#208](https://github.com/Flagsmith/flagsmith-engine/pull/208) -* feat(env/model): add dashboard_alias field by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#210](https://github.com/Flagsmith/flagsmith-engine/pull/210) -* chore: bump version by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#209](https://github.com/Flagsmith/flagsmith-engine/pull/209) + +- chore(deps-dev): bump black from 23.7.0 to 24.3.0 by [@dependabot](https://github.com/dependabot) in + [Flagsmith/flagsmith-engine#203](https://github.com/Flagsmith/flagsmith-engine/pull/203) +- chore: update github actions by [@dabeeeenster](https://github.com/dabeeeenster) in + [Flagsmith/flagsmith-engine#204](https://github.com/Flagsmith/flagsmith-engine/pull/204) +- feat(env/model): Add use_identity_overrides_in_local_eval field by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#208](https://github.com/Flagsmith/flagsmith-engine/pull/208) +- feat(env/model): add dashboard_alias field by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#210](https://github.com/Flagsmith/flagsmith-engine/pull/210) +- chore: bump version by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#209](https://github.com/Flagsmith/flagsmith-engine/pull/209) ## New Contributors -* [@dependabot](https://github.com/dependabot) made their first contribution in [Flagsmith/flagsmith-engine#203](https://github.com/Flagsmith/flagsmith-engine/pull/203) + +- [@dependabot](https://github.com/dependabot) made their first contribution in + [Flagsmith/flagsmith-engine#203](https://github.com/Flagsmith/flagsmith-engine/pull/203) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v5.1.1...v5.2.0 [Changes][v5.2.0] - + ## [Version 5.1.1 (v5.1.1)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v5.1.1) - 2024-01-17 ## What's Changed -* fix: Avoid recursion during identity features validation by [@khvn26](https://github.com/khvn26) in [Flagsmith/flagsmith-engine#201](https://github.com/Flagsmith/flagsmith-engine/pull/201) + +- fix: Avoid recursion during identity features validation by [@khvn26](https://github.com/khvn26) in + [Flagsmith/flagsmith-engine#201](https://github.com/Flagsmith/flagsmith-engine/pull/201) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v5.1.0...v5.1.1 [Changes][v5.1.1] - + ## [Version 5.1.0 (v5.1.0)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v5.1.0) - 2023-12-15 ## What's Changed -* feat: remove builders modules by [@khvn26](https://github.com/khvn26) in [Flagsmith/flagsmith-engine#195](https://github.com/Flagsmith/flagsmith-engine/pull/195) -* feat: Add `EnvironmentModel.identity_overrides` for the local evaluation mode by [@khvn26](https://github.com/khvn26) in [Flagsmith/flagsmith-engine#199](https://github.com/Flagsmith/flagsmith-engine/pull/199) + +- feat: remove builders modules by [@khvn26](https://github.com/khvn26) in + [Flagsmith/flagsmith-engine#195](https://github.com/Flagsmith/flagsmith-engine/pull/195) +- feat: Add `EnvironmentModel.identity_overrides` for the local evaluation mode by [@khvn26](https://github.com/khvn26) + in [Flagsmith/flagsmith-engine#199](https://github.com/Flagsmith/flagsmith-engine/pull/199) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v5.0.0...v5.1.0 [Changes][v5.1.0] - + ## [Version 5.0.0 (v5.0.0)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v5.0.0) - 2023-11-08 ## What's Changed -* feat: pydantic V2 by [@khvn26](https://github.com/khvn26) in [Flagsmith/flagsmith-engine#190](https://github.com/Flagsmith/flagsmith-engine/pull/190) -* feat: strict typing by [@khvn26](https://github.com/khvn26) in [Flagsmith/flagsmith-engine#168](https://github.com/Flagsmith/flagsmith-engine/pull/168) +- feat: pydantic V2 by [@khvn26](https://github.com/khvn26) in + [Flagsmith/flagsmith-engine#190](https://github.com/Flagsmith/flagsmith-engine/pull/190) +- feat: strict typing by [@khvn26](https://github.com/khvn26) in + [Flagsmith/flagsmith-engine#168](https://github.com/Flagsmith/flagsmith-engine/pull/168) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v4.1.0...v5.0.0 [Changes][v5.0.0] - + ## [Version 4.1.0 (v4.1.0)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v4.1.0) - 2023-09-19 ## What's Changed -* feat: evaluator module by [@khvn26](https://github.com/khvn26) in [Flagsmith/flagsmith-engine#192](https://github.com/Flagsmith/flagsmith-engine/pull/192) -* ci/bump pytest by [@dabeeeenster](https://github.com/dabeeeenster) in [Flagsmith/flagsmith-engine#191](https://github.com/Flagsmith/flagsmith-engine/pull/191) + +- feat: evaluator module by [@khvn26](https://github.com/khvn26) in + [Flagsmith/flagsmith-engine#192](https://github.com/Flagsmith/flagsmith-engine/pull/192) +- ci/bump pytest by [@dabeeeenster](https://github.com/dabeeeenster) in + [Flagsmith/flagsmith-engine#191](https://github.com/Flagsmith/flagsmith-engine/pull/191) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v4.0.4...v4.1.0 [Changes][v4.1.0] - + ## [Version 4.0.4 (v4.0.4)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v4.0.4) - 2023-08-08 ## What's Changed -* fix: decimal trait values by [@khvn26](https://github.com/khvn26) in [Flagsmith/flagsmith-engine#187](https://github.com/Flagsmith/flagsmith-engine/pull/187) +- fix: decimal trait values by [@khvn26](https://github.com/khvn26) in + [Flagsmith/flagsmith-engine#187](https://github.com/Flagsmith/flagsmith-engine/pull/187) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v4.0.3...v4.0.4 [Changes][v4.0.4] - + ## [Version 4.0.3 (v4.0.3)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v4.0.3) - 2023-07-12 ## What's Changed -* Fix Nan validation by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#184](https://github.com/Flagsmith/flagsmith-engine/pull/184) +- Fix Nan validation by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#184](https://github.com/Flagsmith/flagsmith-engine/pull/184) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v4.0.2...v4.0.3 [Changes][v4.0.3] - + ## [Version 4.0.2 (v4.0.2)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v4.0.2) - 2023-07-04 ## What's Changed -* fix: restore trait value coercion to string by [@khvn26](https://github.com/khvn26) in [Flagsmith/flagsmith-engine#179](https://github.com/Flagsmith/flagsmith-engine/pull/179) +- fix: restore trait value coercion to string by [@khvn26](https://github.com/khvn26) in + [Flagsmith/flagsmith-engine#179](https://github.com/Flagsmith/flagsmith-engine/pull/179) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v4.0.1...v4.0.2 [Changes][v4.0.2] - + ## [Version 4.0.1 (v4.0.1)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v4.0.1) - 2023-07-03 ## What's Changed -* fix: use `Config.smart_union` to avoid type coercion for `TraitModel.trait_value` by [@khvn26](https://github.com/khvn26) in [Flagsmith/flagsmith-engine#177](https://github.com/Flagsmith/flagsmith-engine/pull/177) -* fix: remove dynatrace from engine integration models by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#176](https://github.com/Flagsmith/flagsmith-engine/pull/176) + +- fix: use `Config.smart_union` to avoid type coercion for `TraitModel.trait_value` by + [@khvn26](https://github.com/khvn26) in + [Flagsmith/flagsmith-engine#177](https://github.com/Flagsmith/flagsmith-engine/pull/177) +- fix: remove dynatrace from engine integration models by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#176](https://github.com/Flagsmith/flagsmith-engine/pull/176) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v4.0.0...v4.0.1 [Changes][v4.0.1] - + ## [Version 4.0.0 (v4.0.0)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v4.0.0) - 2023-06-29 ## What's Changed Support for Python versions earlier than 3.7 is dropped. -This release removes the functionality that supported Flagsmith's Core API <> Edge API interop and migrates the engine model dataclasses to Pydantic, simplifying their serialization. +This release removes the functionality that supported Flagsmith's Core API <> Edge API interop and migrates the engine +model dataclasses to Pydantic, simplifying their serialization. -`flag_engine.environments.builders` and `flag_engine.identities.builders` modules are kept for backwards compatibility but will be deprecated in the future in favour of Pydantic's `.dict()` and `.parse_obj()` methods. It's completely safe to use them with Flagsmith's `EnvironmentModel` and `IdentityModel` instead of builder APIs. +`flag_engine.environments.builders` and `flag_engine.identities.builders` modules are kept for backwards compatibility +but will be deprecated in the future in favour of Pydantic's `.dict()` and `.parse_obj()` methods. It's completely safe +to use them with Flagsmith's `EnvironmentModel` and `IdentityModel` instead of builder APIs. -* feat: migrate from marshmallow to pydantic, remove core API-specific schemas by [@khvn26](https://github.com/khvn26) in [Flagsmith/flagsmith-engine#167](https://github.com/Flagsmith/flagsmith-engine/pull/167) +- feat: migrate from marshmallow to pydantic, remove core API-specific schemas by [@khvn26](https://github.com/khvn26) + in [Flagsmith/flagsmith-engine#167](https://github.com/Flagsmith/flagsmith-engine/pull/167) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v3.6.0...v4.0.0 [Changes][v4.0.0] - + ## [Version 3.6.0 (v3.6.0)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v3.6.0) - 2023-06-29 ## What's Changed -* Ensure percentage split evaluations are consistent in Core API and Local Evaluation by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#171](https://github.com/Flagsmith/flagsmith-engine/pull/171) +- Ensure percentage split evaluations are consistent in Core API and Local Evaluation by + [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#171](https://github.com/Flagsmith/flagsmith-engine/pull/171) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v3.5.1...v3.6.0 [Changes][v3.6.0] - + ## [v3.5.1](https://github.com/flagsmith/flagsmith-engine/releases/tag/v3.5.1) - 2023-06-26 ## What's Changed -* feat: add Rudderstack support by [@khvn26](https://github.com/khvn26) in [Flagsmith/flagsmith-engine#169](https://github.com/Flagsmith/flagsmith-engine/pull/169) + +- feat: add Rudderstack support by [@khvn26](https://github.com/khvn26) in + [Flagsmith/flagsmith-engine#169](https://github.com/Flagsmith/flagsmith-engine/pull/169) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v3.5.0...v3.5.1 [Changes][v3.5.1] - + ## [v3.5.0](https://github.com/flagsmith/flagsmith-engine/releases/tag/v3.5.0) - 2023-05-19 ## What's Changed -* feat: add `Project.server_key_only_feature_ids` by [@khvn26](https://github.com/khvn26) in [Flagsmith/flagsmith-engine#164](https://github.com/Flagsmith/flagsmith-engine/pull/164) +- feat: add `Project.server_key_only_feature_ids` by [@khvn26](https://github.com/khvn26) in + [Flagsmith/flagsmith-engine#164](https://github.com/Flagsmith/flagsmith-engine/pull/164) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v3.4.0...v3.5.0 [Changes][v3.5.0] - + ## [v3.4.0](https://github.com/flagsmith/flagsmith-engine/releases/tag/v3.4.0) - 2023-04-11 ## What's Changed -* feat(environment): Add hide_sensitive_data field by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#161](https://github.com/Flagsmith/flagsmith-engine/pull/161) +- feat(environment): Add hide_sensitive_data field by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#161](https://github.com/Flagsmith/flagsmith-engine/pull/161) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v3.3.2...v3.4.0 [Changes][v3.4.0] - + ## [Version 3.3.2 (v3.3.2)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v3.3.2) - 2023-03-29 ## What's Changed -* Update feature state version logic by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#159](https://github.com/Flagsmith/flagsmith-engine/pull/159) +- Update feature state version logic by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#159](https://github.com/Flagsmith/flagsmith-engine/pull/159) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v3.3.1...v3.3.2 [Changes][v3.3.2] - + ## [Version 3.3.1 (v3.3.1)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v3.3.1) - 2023-03-16 ## What's Changed -* Fix regex evaluations for non string trait values by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#157](https://github.com/Flagsmith/flagsmith-engine/pull/157) +- Fix regex evaluations for non string trait values by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#157](https://github.com/Flagsmith/flagsmith-engine/pull/157) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v3.3.0...v3.3.1 [Changes][v3.3.1] - + ## [v3.3.0](https://github.com/flagsmith/flagsmith-engine/releases/tag/v3.3.0) - 2023-03-03 ## What's Changed -* feat(environment): Add name by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#154](https://github.com/Flagsmith/flagsmith-engine/pull/154) -* Release 3.3.0 by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#155](https://github.com/Flagsmith/flagsmith-engine/pull/155) +- feat(environment): Add name by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#154](https://github.com/Flagsmith/flagsmith-engine/pull/154) +- Release 3.3.0 by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#155](https://github.com/Flagsmith/flagsmith-engine/pull/155) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/3.2.0...v3.3.0 [Changes][v3.3.0] - + ## [3.2.0](https://github.com/flagsmith/flagsmith-engine/releases/tag/3.2.0) - 2023-02-02 ## What's Changed -* Feat(identity/get_hash_key): Add method to help generate consistent mv values by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#152](https://github.com/Flagsmith/flagsmith-engine/pull/152) -* Release 3.2.0 by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#153](https://github.com/Flagsmith/flagsmith-engine/pull/153) +- Feat(identity/get_hash_key): Add method to help generate consistent mv values by + [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#152](https://github.com/Flagsmith/flagsmith-engine/pull/152) +- Release 3.2.0 by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#153](https://github.com/Flagsmith/flagsmith-engine/pull/153) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v3.1.0...3.2.0 [Changes][3.2.0] - + ## [v3.1.0](https://github.com/flagsmith/flagsmith-engine/releases/tag/v3.1.0) - 2023-01-16 ## What's Changed -* In segment operator added by [@EdsnLoor](https://github.com/EdsnLoor) in [Flagsmith/flagsmith-engine#149](https://github.com/Flagsmith/flagsmith-engine/pull/149) -* feat(env/hide_disabled_flags): Add hide_disabled flags to environment by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#150](https://github.com/Flagsmith/flagsmith-engine/pull/150) + +- In segment operator added by [@EdsnLoor](https://github.com/EdsnLoor) in + [Flagsmith/flagsmith-engine#149](https://github.com/Flagsmith/flagsmith-engine/pull/149) +- feat(env/hide_disabled_flags): Add hide_disabled flags to environment by + [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#150](https://github.com/Flagsmith/flagsmith-engine/pull/150) ## New Contributors -* [@EdsnLoor](https://github.com/EdsnLoor) made their first contribution in [Flagsmith/flagsmith-engine#149](https://github.com/Flagsmith/flagsmith-engine/pull/149) + +- [@EdsnLoor](https://github.com/EdsnLoor) made their first contribution in + [Flagsmith/flagsmith-engine#149](https://github.com/Flagsmith/flagsmith-engine/pull/149) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v3.0.0...v3.1.0 [Changes][v3.1.0] - + ## [v3.0.0](https://github.com/flagsmith/flagsmith-engine/releases/tag/v3.0.0) - 2022-11-11 ## What's Changed -* feat(identity/update_traits): update return type by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#146](https://github.com/Flagsmith/flagsmith-engine/pull/146) -* feat(project/models): Add enable_realtime_updates field by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#147](https://github.com/Flagsmith/flagsmith-engine/pull/147) -* feat(enviroment): add updated_at field by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#148](https://github.com/Flagsmith/flagsmith-engine/pull/148) -* Release 3.0.0 by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#116](https://github.com/Flagsmith/flagsmith-engine/pull/116) +- feat(identity/update_traits): update return type by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#146](https://github.com/Flagsmith/flagsmith-engine/pull/146) +- feat(project/models): Add enable_realtime_updates field by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#147](https://github.com/Flagsmith/flagsmith-engine/pull/147) +- feat(enviroment): add updated_at field by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#148](https://github.com/Flagsmith/flagsmith-engine/pull/148) +- Release 3.0.0 by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#116](https://github.com/Flagsmith/flagsmith-engine/pull/116) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v2.3.0...v3.0.0 [Changes][v3.0.0] - + ## [v2.3.0](https://github.com/flagsmith/flagsmith-engine/releases/tag/v2.3.0) - 2022-10-13 ## What's Changed -* feat(modulo): Add support for modulo operator by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#144](https://github.com/Flagsmith/flagsmith-engine/pull/144) -* feat(segment): Add IS_SET and IS_NOT_SET operator by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#145](https://github.com/Flagsmith/flagsmith-engine/pull/145) -* Release v2.3.0 by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#143](https://github.com/Flagsmith/flagsmith-engine/pull/143) +- feat(modulo): Add support for modulo operator by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#144](https://github.com/Flagsmith/flagsmith-engine/pull/144) +- feat(segment): Add IS_SET and IS_NOT_SET operator by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#145](https://github.com/Flagsmith/flagsmith-engine/pull/145) +- Release v2.3.0 by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#143](https://github.com/Flagsmith/flagsmith-engine/pull/143) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v2.2.0...v2.3.0 [Changes][v2.3.0] - + ## [v2.2.0](https://github.com/flagsmith/flagsmith-engine/releases/tag/v2.2.0) - 2022-09-13 ## What's Changed -* Release v2.2.0 by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#142](https://github.com/Flagsmith/flagsmith-engine/pull/142) +- Release v2.2.0 by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#142](https://github.com/Flagsmith/flagsmith-engine/pull/142) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v2.1.2...v2.2.0 [Changes][v2.2.0] - + ## [v2.1.2](https://github.com/flagsmith/flagsmith-engine/releases/tag/v2.1.2) - 2022-09-13 ## What's Changed -* Add pip-tools for managing dev requirements by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#138](https://github.com/Flagsmith/flagsmith-engine/pull/138) -* Update engine test data by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#140](https://github.com/Flagsmith/flagsmith-engine/pull/140) -* Release 2.1.2 by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#139](https://github.com/Flagsmith/flagsmith-engine/pull/139) +- Add pip-tools for managing dev requirements by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#138](https://github.com/Flagsmith/flagsmith-engine/pull/138) +- Update engine test data by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#140](https://github.com/Flagsmith/flagsmith-engine/pull/140) +- Release 2.1.2 by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#139](https://github.com/Flagsmith/flagsmith-engine/pull/139) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v2.1.1...v2.1.2 [Changes][v2.1.2] - + ## [Version 2.1.1 (v2.1.1)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v2.1.1) - 2022-07-01 ## What's Changed -* Add allow_client_traits field to EnvironmentModel and schema by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#137](https://github.com/Flagsmith/flagsmith-engine/pull/137) -* Release 2.1.1 by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#136](https://github.com/Flagsmith/flagsmith-engine/pull/136) +- Add allow_client_traits field to EnvironmentModel and schema by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#137](https://github.com/Flagsmith/flagsmith-engine/pull/137) +- Release 2.1.1 by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#136](https://github.com/Flagsmith/flagsmith-engine/pull/136) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v2.1.0...v2.1.1 [Changes][v2.1.1] - + ## [Version 2.1.0 (v2.1.0)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v2.1.0) - 2022-06-29 ## What's Changed -* Replace environment webhooks with webhook config by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#134](https://github.com/Flagsmith/flagsmith-engine/pull/134) -* fix(ValueError/for-invalid-trait-value): catch and return False by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#132](https://github.com/Flagsmith/flagsmith-engine/pull/132) -* Release 2.1.0 by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#135](https://github.com/Flagsmith/flagsmith-engine/pull/135) +- Replace environment webhooks with webhook config by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#134](https://github.com/Flagsmith/flagsmith-engine/pull/134) +- fix(ValueError/for-invalid-trait-value): catch and return False by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#132](https://github.com/Flagsmith/flagsmith-engine/pull/132) +- Release 2.1.0 by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#135](https://github.com/Flagsmith/flagsmith-engine/pull/135) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v2.0.7...v2.1.0 [Changes][v2.1.0] - + ## [Version 2.0.7 (v2.0.7)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v2.0.7) - 2022-05-27 ## What's Changed -* Remove webhooks from _INTEGRATION_ATTS by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#130](https://github.com/Flagsmith/flagsmith-engine/pull/130) -* Bump version 2.0.7 by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#131](https://github.com/Flagsmith/flagsmith-engine/pull/131) +- Remove webhooks from \_INTEGRATION_ATTS by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#130](https://github.com/Flagsmith/flagsmith-engine/pull/130) +- Bump version 2.0.7 by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#131](https://github.com/Flagsmith/flagsmith-engine/pull/131) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v2.0.6...v2.0.7 [Changes][v2.0.7] - + ## [Version 2.0.6 (v2.0.6)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v2.0.6) - 2022-05-24 ## What's Changed -* fix(segment-priority): use priority on evaluation by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#128](https://github.com/Flagsmith/flagsmith-engine/pull/128) -* Release 2.0.6 by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#129](https://github.com/Flagsmith/flagsmith-engine/pull/129) +- fix(segment-priority): use priority on evaluation by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#128](https://github.com/Flagsmith/flagsmith-engine/pull/128) +- Release 2.0.6 by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#129](https://github.com/Flagsmith/flagsmith-engine/pull/129) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v2.0.5...v2.0.6 [Changes][v2.0.6] - + ## [Version 2.0.5 (v2.0.5)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v2.0.5) - 2022-05-12 ## What's Changed -* Return updated traits when updating by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#126](https://github.com/Flagsmith/flagsmith-engine/pull/126) -* Release 2.0.5 by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#125](https://github.com/Flagsmith/flagsmith-engine/pull/125) +- Return updated traits when updating by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#126](https://github.com/Flagsmith/flagsmith-engine/pull/126) +- Release 2.0.5 by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#125](https://github.com/Flagsmith/flagsmith-engine/pull/125) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v2.0.4...v2.0.5 [Changes][v2.0.5] - + ## [v2.0.4](https://github.com/flagsmith/flagsmith-engine/releases/tag/v2.0.4) - 2022-05-12 ## What's Changed -* Add webhooks -* Add `entity_selector` to integration model/schema -* Release 2.0.4 by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#122](https://github.com/Flagsmith/flagsmith-engine/pull/122) +- Add webhooks +- Add `entity_selector` to integration model/schema +- Release 2.0.4 by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#122](https://github.com/Flagsmith/flagsmith-engine/pull/122) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v2.0.3...v2.0.4 [Changes][v2.0.4] - + ## [v2.0.3](https://github.com/flagsmith/flagsmith-engine/releases/tag/v2.0.3) - 2022-05-09 ## What's Changed -* Fix missing `feature_state_value` field on dump using engine models -* Release 2.0.3 by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#120](https://github.com/Flagsmith/flagsmith-engine/pull/120) +- Fix missing `feature_state_value` field on dump using engine models +- Release 2.0.3 by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#120](https://github.com/Flagsmith/flagsmith-engine/pull/120) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v2.0.2...v2.0.3 [Changes][v2.0.3] - + ## [v2.0.2](https://github.com/flagsmith/flagsmith-engine/releases/tag/v2.0.2) - 2022-04-25 ## What's Changed -* fix(traits/float_value): Add custom field to serialize/deserialize trait_value -* Release 2.0.2 by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#115](https://github.com/Flagsmith/flagsmith-engine/pull/115) +- fix(traits/float_value): Add custom field to serialize/deserialize trait_value +- Release 2.0.2 by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#115](https://github.com/Flagsmith/flagsmith-engine/pull/115) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v2.0.1...v2.0.2 [Changes][v2.0.2] - + ## [Version 2.0.1 (v2.0.1)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v2.0.1) - 2022-04-21 ## What's Changed -* Add semver to install_requires by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#113](https://github.com/Flagsmith/flagsmith-engine/pull/113) -* Release 2.0.1 by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#112](https://github.com/Flagsmith/flagsmith-engine/pull/112) +- Add semver to install_requires by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#113](https://github.com/Flagsmith/flagsmith-engine/pull/113) +- Release 2.0.1 by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#112](https://github.com/Flagsmith/flagsmith-engine/pull/112) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v2.0.0...v2.0.1 [Changes][v2.0.1] - -## [Version 2.0.0 - alpha 1 (v2.0.0-alpha.1)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v2.0.0-alpha.1) - 2022-04-21 - +## [Version 2.0.0 - alpha 1 (v2.0.0-alpha.1)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v2.0.0-alpha.1) - 2022-04-21 [Changes][v2.0.0-alpha.1] - + ## [Version 2.0.0 (v2.0.0)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v2.0.0) - 2022-04-21 ## What's Changed -* Use feature state is_live by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#111](https://github.com/Flagsmith/flagsmith-engine/pull/111) -* major version update by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#108](https://github.com/Flagsmith/flagsmith-engine/pull/108) +- Use feature state is_live by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#111](https://github.com/Flagsmith/flagsmith-engine/pull/111) +- major version update by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#108](https://github.com/Flagsmith/flagsmith-engine/pull/108) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v1.6.6...v2.0.0 [Changes][v2.0.0] - + ## [Version 1.6.6 (v1.6.6)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v1.6.6) - 2022-04-21 ## What's Changed -* Use timezone aware datetimes by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#110](https://github.com/Flagsmith/flagsmith-engine/pull/110) -* Release 1.6.6 by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#109](https://github.com/Flagsmith/flagsmith-engine/pull/109) +- Use timezone aware datetimes by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#110](https://github.com/Flagsmith/flagsmith-engine/pull/110) +- Release 1.6.6 by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#109](https://github.com/Flagsmith/flagsmith-engine/pull/109) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v1.6.5...v1.6.6 [Changes][v1.6.6] - + ## [Version 1.6.5 (v1.6.5)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v1.6.5) - 2022-04-20 ## What's Changed -* Update comments by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#98](https://github.com/Flagsmith/flagsmith-engine/pull/98) -* Update engine test data by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#99](https://github.com/Flagsmith/flagsmith-engine/pull/99) -* fix(segment_evaluation): use django_id if present by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#101](https://github.com/Flagsmith/flagsmith-engine/pull/101) -* chore(tests): update engine test-data by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#105](https://github.com/Flagsmith/flagsmith-engine/pull/105) -* Handle feature state versioning by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#100](https://github.com/Flagsmith/flagsmith-engine/pull/100) -* Feature/edge api 29/add integrations data property by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#104](https://github.com/Flagsmith/flagsmith-engine/pull/104) -* fix(datetime): use tz(utc) aware datetime by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#103](https://github.com/Flagsmith/flagsmith-engine/pull/103) -* remove get_feature_state_value method by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#102](https://github.com/Flagsmith/flagsmith-engine/pull/102) -* Release 1.6.5 by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#97](https://github.com/Flagsmith/flagsmith-engine/pull/97) +- Update comments by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#98](https://github.com/Flagsmith/flagsmith-engine/pull/98) +- Update engine test data by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#99](https://github.com/Flagsmith/flagsmith-engine/pull/99) +- fix(segment_evaluation): use django_id if present by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#101](https://github.com/Flagsmith/flagsmith-engine/pull/101) +- chore(tests): update engine test-data by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#105](https://github.com/Flagsmith/flagsmith-engine/pull/105) +- Handle feature state versioning by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#100](https://github.com/Flagsmith/flagsmith-engine/pull/100) +- Feature/edge api 29/add integrations data property by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#104](https://github.com/Flagsmith/flagsmith-engine/pull/104) +- fix(datetime): use tz(utc) aware datetime by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#103](https://github.com/Flagsmith/flagsmith-engine/pull/103) +- remove get_feature_state_value method by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#102](https://github.com/Flagsmith/flagsmith-engine/pull/102) +- Release 1.6.5 by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#97](https://github.com/Flagsmith/flagsmith-engine/pull/97) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v1.6.4...v1.6.5 [Changes][v1.6.5] - + ## [v1.6.4](https://github.com/flagsmith/flagsmith-engine/releases/tag/v1.6.4) - 2022-02-10 ## What's Changed -* Fix build_environment_api_key_model by adding correct parent class to schema by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#95](https://github.com/Flagsmith/flagsmith-engine/pull/95) +- Fix build_environment_api_key_model by adding correct parent class to schema by + [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#95](https://github.com/Flagsmith/flagsmith-engine/pull/95) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v1.6.3...v1.6.4 [Changes][v1.6.4] - + ## [v1.6.3](https://github.com/flagsmith/flagsmith-engine/releases/tag/v1.6.3) - 2022-02-04 ## What's Changed -* Fix(feature/schema): only run validation if field the is present by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#94](https://github.com/Flagsmith/flagsmith-engine/pull/94) +- Fix(feature/schema): only run validation if field the is present by [@gagantrivedi](https://github.com/gagantrivedi) + in [Flagsmith/flagsmith-engine#94](https://github.com/Flagsmith/flagsmith-engine/pull/94) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v1.6.2...v1.6.3 [Changes][v1.6.3] - + ## [Version 1.6.2 (v1.6.2)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v1.6.2) - 2022-02-03 ## What's Changed -* Fix type error when sorting feature segments by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#91](https://github.com/Flagsmith/flagsmith-engine/pull/91) +- Fix type error when sorting feature segments by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#91](https://github.com/Flagsmith/flagsmith-engine/pull/91) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v1.6.1...v1.6.2 [Changes][v1.6.2] - + ## [Version 1.6.1 (v1.6.1)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v1.6.1) - 2022-02-02 ## What's Changed -* Refactor django_transform module to allow for better query optimisation by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#89](https://github.com/Flagsmith/flagsmith-engine/pull/89) +- Refactor django_transform module to allow for better query optimisation by + [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#89](https://github.com/Flagsmith/flagsmith-engine/pull/89) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v1.6.0...v1.6.1 [Changes][v1.6.1] - + ## [Version 1.6.0 (v1.6.0)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v1.6.0) - 2022-01-27 ## What's Changed -* Feat(environment-api-key): Add environment api key model by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#86](https://github.com/Flagsmith/flagsmith-engine/pull/86) -* Update get_value typehints and add docstring by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#85](https://github.com/Flagsmith/flagsmith-engine/pull/85) -* Version bump (1.6.0) by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#88](https://github.com/Flagsmith/flagsmith-engine/pull/88) +- Feat(environment-api-key): Add environment api key model by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#86](https://github.com/Flagsmith/flagsmith-engine/pull/86) +- Update get_value typehints and add docstring by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#85](https://github.com/Flagsmith/flagsmith-engine/pull/85) +- Version bump (1.6.0) by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#88](https://github.com/Flagsmith/flagsmith-engine/pull/88) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v1.5.1...v1.6.0 [Changes][v1.6.0] - + ## [Version 1.5.1 (v1.5.1)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v1.5.1) - 2022-01-07 ## What's Changed -* fix(multivariate_feature_option): Add id by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#74](https://github.com/Flagsmith/flagsmith-engine/pull/74) -* Add django_id to feature state schema by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#78](https://github.com/Flagsmith/flagsmith-engine/pull/78) -* fix(mv_fs_value):uuid field by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#76](https://github.com/Flagsmith/flagsmith-engine/pull/76) -* Add engine tests by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#77](https://github.com/Flagsmith/flagsmith-engine/pull/77) -* fix(identity): dump identity features in a custom class by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#81](https://github.com/Flagsmith/flagsmith-engine/pull/81) -* Fix/mv schema/allow none for id field by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#80](https://github.com/Flagsmith/flagsmith-engine/pull/80) -* improve(fs/schema): Add validation for percentage allocation by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#82](https://github.com/Flagsmith/flagsmith-engine/pull/82) -* release 1.5.1 by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#75](https://github.com/Flagsmith/flagsmith-engine/pull/75) +- fix(multivariate_feature_option): Add id by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#74](https://github.com/Flagsmith/flagsmith-engine/pull/74) +- Add django_id to feature state schema by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#78](https://github.com/Flagsmith/flagsmith-engine/pull/78) +- fix(mv_fs_value):uuid field by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#76](https://github.com/Flagsmith/flagsmith-engine/pull/76) +- Add engine tests by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#77](https://github.com/Flagsmith/flagsmith-engine/pull/77) +- fix(identity): dump identity features in a custom class by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#81](https://github.com/Flagsmith/flagsmith-engine/pull/81) +- Fix/mv schema/allow none for id field by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#80](https://github.com/Flagsmith/flagsmith-engine/pull/80) +- improve(fs/schema): Add validation for percentage allocation by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#82](https://github.com/Flagsmith/flagsmith-engine/pull/82) +- release 1.5.1 by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#75](https://github.com/Flagsmith/flagsmith-engine/pull/75) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v1.5.0...v1.5.1 [Changes][v1.5.1] - + ## [Version 1.5.0 (v1.5.0)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v1.5.0) - 2021-12-15 ## What's Changed -* feat(engine): move public environment function to engine (BREAKING CHANGE) -* feat(engine): Add support for hide_disabled_flags + +- feat(engine): move public environment function to engine (BREAKING CHANGE) +- feat(engine): Add support for hide_disabled_flags **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v1.4.3...v1.5.0 [Changes][v1.5.0] - + ## [Version 1.4.3 (v1.4.3)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v1.4.3) - 2021-12-15 ## What's Changed -* fix(identity/schema): use dump_default instead of default by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#65](https://github.com/Flagsmith/flagsmith-engine/pull/65) -* Allow custom identity schema by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#67](https://github.com/Flagsmith/flagsmith-engine/pull/67) -* feat(identity/model): Create custom class to hold identiy_features to basic checks by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#69](https://github.com/Flagsmith/flagsmith-engine/pull/69) +- fix(identity/schema): use dump_default instead of default by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#65](https://github.com/Flagsmith/flagsmith-engine/pull/65) +- Allow custom identity schema by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#67](https://github.com/Flagsmith/flagsmith-engine/pull/67) +- feat(identity/model): Create custom class to hold identiy_features to basic checks by + [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#69](https://github.com/Flagsmith/flagsmith-engine/pull/69) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v1.4.2...v1.4.3 [Changes][v1.4.3] - + ## [Version 1.4.2 (v1.4.2)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v1.4.2) - 2021-12-07 ## What's Changed -* Add integer IDs back to engine models by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#63](https://github.com/Flagsmith/flagsmith-engine/pull/63) +- Add integer IDs back to engine models by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#63](https://github.com/Flagsmith/flagsmith-engine/pull/63) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v1.4.1...v1.4.2 [Changes][v1.4.2] - + ## [Version 1.4.1 (v1.4.1)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v1.4.1) - 2021-12-07 ## What's Changed -* Upgrade marshmallow and pin in setup.py by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#60](https://github.com/Flagsmith/flagsmith-engine/pull/60) -* fix(ident/schema): allow none for django_id by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#59](https://github.com/Flagsmith/flagsmith-engine/pull/59) +- Upgrade marshmallow and pin in setup.py by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#60](https://github.com/Flagsmith/flagsmith-engine/pull/60) +- fix(ident/schema): allow none for django_id by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#59](https://github.com/Flagsmith/flagsmith-engine/pull/59) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v1.4.0...v1.4.1 [Changes][v1.4.1] - + ## [Version 1.4.0 (v1.4.0)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v1.4.0) - 2021-12-06 ## What's Changed -* Refactor django transformation logic to location outside of the core engine by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#57](https://github.com/Flagsmith/flagsmith-engine/pull/57) +- Refactor django transformation logic to location outside of the core engine by + [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#57](https://github.com/Flagsmith/flagsmith-engine/pull/57) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v1.3.4...v1.4.0 [Changes][v1.4.0] - + ## [Version 1.3.4 (v1.3.4)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v1.3.4) - 2021-12-02 ## What's Changed -* Fix json decimal encoder by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#54](https://github.com/Flagsmith/flagsmith-engine/pull/54) -* Fix feature states serialization for segments by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#51](https://github.com/Flagsmith/flagsmith-engine/pull/51) +- Fix json decimal encoder by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#54](https://github.com/Flagsmith/flagsmith-engine/pull/54) +- Fix feature states serialization for segments by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#51](https://github.com/Flagsmith/flagsmith-engine/pull/51) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v1.3.3...v1.3.4 [Changes][v1.3.4] - + ## [Version 1.3.3 (v1.3.3)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v1.3.3) - 2021-11-30 ## What's Changed -* feat(identity): Add uuid to identity model/schema by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#46](https://github.com/Flagsmith/flagsmith-engine/pull/46) -* Fix segment evaluation by casting condition value appropriately by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#48](https://github.com/Flagsmith/flagsmith-engine/pull/48) +- feat(identity): Add uuid to identity model/schema by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#46](https://github.com/Flagsmith/flagsmith-engine/pull/46) +- Fix segment evaluation by casting condition value appropriately by [@matthewelwell](https://github.com/matthewelwell) + in [Flagsmith/flagsmith-engine#48](https://github.com/Flagsmith/flagsmith-engine/pull/48) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v1.3.2...v1.3.3 [Changes][v1.3.3] - + ## [Version 1.3.2 (v1.3.2)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v1.3.2) - 2021-11-30 ## What's Changed -* Fix segment condition deserialization when property is None by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#44](https://github.com/Flagsmith/flagsmith-engine/pull/44) -* Add some end to end tests by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#40](https://github.com/Flagsmith/flagsmith-engine/pull/40) +- Fix segment condition deserialization when property is None by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#44](https://github.com/Flagsmith/flagsmith-engine/pull/44) +- Add some end to end tests by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#40](https://github.com/Flagsmith/flagsmith-engine/pull/40) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v1.3.1...v1.3.2 [Changes][v1.3.2] - + ## [Version 1.3.1 (v1.3.1)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v1.3.1) - 2021-11-29 ## What's Changed -* Fix segment condition serialization when `property` is None by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#42](https://github.com/Flagsmith/flagsmith-engine/pull/42) -* Improve GitHub workflows by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#43](https://github.com/Flagsmith/flagsmith-engine/pull/43) +- Fix segment condition serialization when `property` is None by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#42](https://github.com/Flagsmith/flagsmith-engine/pull/42) +- Improve GitHub workflows by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#43](https://github.com/Flagsmith/flagsmith-engine/pull/43) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v1.3.0...v1.3.1 [Changes][v1.3.1] - + ## [Version 1.3.0 (v1.3.0)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v1.3.0) - 2021-11-26 ## What's Changed -* fix(ident/models): Allow trait value to support multiple type by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#39](https://github.com/Flagsmith/flagsmith-engine/pull/39) -* fix(schema/load_to_model): allow model_class to be none by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#38](https://github.com/Flagsmith/flagsmith-engine/pull/38) +- fix(ident/models): Allow trait value to support multiple type by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#39](https://github.com/Flagsmith/flagsmith-engine/pull/39) +- fix(schema/load_to_model): allow model_class to be none by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#38](https://github.com/Flagsmith/flagsmith-engine/pull/38) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v1.2.0...v1.3.0 [Changes][v1.3.0] - + ## [Version 1.2.0 (v1.2.0)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v1.2.0) - 2021-11-25 ## What's Changed -* Rename value -> feature_state_value for consistency by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#36](https://github.com/Flagsmith/flagsmith-engine/pull/36) -* feat(org/models): Add `get_unique_slug` used for tracking by [@gagantrivedi](https://github.com/gagantrivedi) in [Flagsmith/flagsmith-engine#29](https://github.com/Flagsmith/flagsmith-engine/pull/29) +- Rename value -> feature_state_value for consistency by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#36](https://github.com/Flagsmith/flagsmith-engine/pull/36) +- feat(org/models): Add `get_unique_slug` used for tracking by [@gagantrivedi](https://github.com/gagantrivedi) in + [Flagsmith/flagsmith-engine#29](https://github.com/Flagsmith/flagsmith-engine/pull/29) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v1.1.0...v1.2.0 [Changes][v1.2.0] - + ## [Version 1.1.0 (v1.1.0)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v1.1.0) - 2021-11-25 ## What's Changed -* Add update traits functionality by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#34](https://github.com/Flagsmith/flagsmith-engine/pull/34) +- Add update traits functionality by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#34](https://github.com/Flagsmith/flagsmith-engine/pull/34) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v1.0.0...v1.1.0 [Changes][v1.1.0] - + ## [Version 1.0.0 (v1.0.0)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v1.0.0) - 2021-11-25 ## What's Changed -* Add django_id attribute to identity document by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#27](https://github.com/Flagsmith/flagsmith-engine/pull/27) -* Remove dump from build model by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#31](https://github.com/Flagsmith/flagsmith-engine/pull/31) -* Move segment overrides to segment model by [@matthewelwell](https://github.com/matthewelwell) in [Flagsmith/flagsmith-engine#32](https://github.com/Flagsmith/flagsmith-engine/pull/32) +- Add django_id attribute to identity document by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#27](https://github.com/Flagsmith/flagsmith-engine/pull/27) +- Remove dump from build model by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#31](https://github.com/Flagsmith/flagsmith-engine/pull/31) +- Move segment overrides to segment model by [@matthewelwell](https://github.com/matthewelwell) in + [Flagsmith/flagsmith-engine#32](https://github.com/Flagsmith/flagsmith-engine/pull/32) **Full Changelog**: https://github.com/Flagsmith/flagsmith-engine/compare/v0.1.2...v1.0.0 [Changes][v1.0.0] - + ## [Version 0.1.2 (v0.1.2)](https://github.com/flagsmith/flagsmith-engine/releases/tag/v0.1.2) - 2021-11-24 ## Release Notes - * Restrict dataclasses dependency to python<3.7 +- Restrict dataclasses dependency to python<3.7 [Changes][v0.1.2] - [v5.3.0]: https://github.com/flagsmith/flagsmith-engine/compare/v5.2.0...v5.3.0 [v5.2.0]: https://github.com/flagsmith/flagsmith-engine/compare/v5.1.1...v5.2.0 [v5.1.1]: https://github.com/flagsmith/flagsmith-engine/compare/v5.1.0...v5.1.1 diff --git a/flag_engine/segments/evaluator.py b/flag_engine/segments/evaluator.py index f277bb3a..3f15b3ce 100644 --- a/flag_engine/segments/evaluator.py +++ b/flag_engine/segments/evaluator.py @@ -228,25 +228,57 @@ def context_matches_condition( condition: SegmentCondition, segment_key: SupportsStr, ) -> bool: - context_value = ( - get_context_value(context, condition_property) - if (condition_property := condition.get("property")) - else None - ) - - if condition["operator"] == constants.PERCENTAGE_SPLIT: - if context_value is not None: - object_ids = [segment_key, context_value] + context_value: ContextValue + condition_property = condition["property"] + condition_operator = condition["operator"] + + if condition_operator == constants.PERCENTAGE_SPLIT and (not condition_property): + # Currently, the only supported condition with a blank property + # is percentage split. + # In this case, we use the identity key as context value. + # This is mainly to support legacy segments created before + # we introduced JSONPath support. + context_value = _get_identity_key(context) + else: + context_value = get_context_value(context, condition_property) + + if condition_operator == constants.IN: + if isinstance(segment_value := condition["value"], list): + in_values = segment_value else: - object_ids = [segment_key, get_context_value(context, "$.identity.key")] + try: + in_values = json.loads(segment_value) + # Only accept JSON lists. + # Ideally, we should use something like pydantic.TypeAdapter[list[str]], + # but we aim to ditch the pydantic dependency in the future. + if not isinstance(in_values, list): + raise ValueError + except ValueError: + in_values = segment_value.split(",") + in_values = [str(value) for value in in_values] + # Guard against comparing boolean values to numeric strings. + if isinstance(context_value, int) and not ( + context_value is True or context_value is False + ): + context_value = str(context_value) + return context_value in in_values - float_value = float(condition["value"]) + if condition_operator == constants.PERCENTAGE_SPLIT: + if context_value is None: + return False + + object_ids = [segment_key, context_value] + + try: + float_value = float(condition["value"]) + except ValueError: + return False return get_hashed_percentage_for_object_ids(object_ids) <= float_value - if condition["operator"] == constants.IS_NOT_SET: + if condition_operator == constants.IS_NOT_SET: return context_value is None - if condition["operator"] == constants.IS_SET: + if condition_operator == constants.IS_SET: return context_value is not None return ( @@ -368,6 +400,14 @@ def inner( return inner +def _get_identity_key( + context: EvaluationContext, +) -> typing.Optional[str]: + if identity_context := context.get("identity"): + return identity_context.get("key") + return None + + MATCHERS_BY_OPERATOR: typing.Dict[ ConditionOperator, typing.Callable[[typing.Optional[str], ContextValue], bool] ] = { diff --git a/setup.py b/setup.py index 709ce28b..6bf74d7c 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ setup( name="flagsmith-flag-engine", - version="6.1.0", + version="6.1.1", author="Flagsmith", author_email="support@flagsmith.com", packages=find_packages(include=["flag_engine", "flag_engine.*"]),