Feature:
- Add optional
feature
argument tofeature_flag_on?
andwhich_variant
methods of ActorControl, to reuse an existing feature. - Add mutex to synchronise access to caches in Cache::FetchWrapper.
Bug fix:
- Fix parsing fixed determinations when the variant is an empty string
Feature:
- Add
callback
argument to Control, allowing custom logic to notice the determination.
Feature:
- When an app_version does not comply with semantic versioning specifications (e.g.: 2021.11.05 with a trailing zero instead of the correct 2021.11.5), return false.
Feature:
- When a GUID bucketed feature is misconfigured, handle the error and return false.
Feature:
- Add
before_retrieve
andafter_retrieve
hooks forDeterminator::Retrieve::HttpRetriever
Interface change:
- Constraints which are not arrays of strings are no longer accepted; if present, the library returns false and logs an error.
Interface change:
- A
feature_cache
is now required to use Determinator. See theexamples/determinator-rails/config/initializers/determinator.rb
for a quick start.
Bug fix:
- Apply app_version logic to structured request.app_version too
Bug fix:
- Avoid errors when updating the gem and using persistent cache resulting in null fixed_determinations
Feature:
- Add structured_bucket to Feature
- Add
#retrieve
method to the Control - Add optional
feature
argument tofeature_flag_on?
andwhich_variant
, to reuse an existing feature
Feature:
- Add explain functionality for determinations
Feature:
- Add fixed determinations
Bug fix:
- Count repeated determinations instead of tracking separately
Feature:
- Add Sinatra endpoint tracking
Bug fix:
- Remove endpoint tracking of PATH_INFO
Feature:
- Add endpoint information to tracking request
Bug fix:
- Make tracking request "start" attribute an actual time
Bug fix:
- Update "fake" retrievers to match behaviour introduced in
v2.3.1
when a feature is missing
Feature:
- Add tracker middleware
Feature:
- Add a flag
cache_missing[true]
to the cache wrapper to control the cache behaviour on 404
Bug fix:
- Ensure errors are not cached by the cache wrapper
Feature:
RSpec::Determinator
can applyapp_version
constraints but no longer supports multipleforced_determination
calls on the same feature. See the PR for an in-depth write-up.
Bug fix:
- Ensures the dependency to semantic is included at runtime
Feature:
- Adds support for
app_version
constraints (#60)
Feature:
- Adds HttpRetriever and cascading cache support (#58)
Breaking change:
- Removes routemaster-drain support, the gem is also no longer a dependency. (#55)
Feature:
- Adds retriever for Dynaconf. (#55)
Feature:
- Adds to how
single
bucketed features operate. Now rollouts imply random determination, though 0% rollouts and 100% rollouts remain representing no-one and everyone respectively, ensuring that this change is backward compatible. (#52)
Bug fix:
- Ensures that
Determiantor::Retrievve::File
tolerates feature names that quack#to_s
. (#50)
Bug fix:
- Ensures the
configure
method calls the correct method when a legacy error proc is given as a parameter. (#49)
RSpec::Determinator
Breaking change:
- If two
forced_determination
s are made within one rspec test case, it is now the last one that takes precedence (not the first). (#47)
Bug fix:
forced_determination
s which are called with differently typed parameters (eg. integer vs. string, boolean vs. string) will now work in the same way that real determination will. (#47)
Breaking change:
- Changes retrieval caching so that 404s are cached as well as positive feature retrievals. This means that an unconfigured feature won't result in a thundering herd of requests to Florence. (#46)
Feature:
- Changes tests to use the Determinator standard tests (#41)
- Supports the use of the 'single' bucket type for features, which allows (only) feature flags to be on or off, without any
id
orguid
specified. (#41) - Adds Determintion callbacks: trigger a block when a determination is made, allowing for experiment tracking. (#45)
Bug Fix:
- Allow
.for_actor
calls when usingRSpec::Determinator
to test code that uses determinator. (#44)
Feature:
- Adds the
Determinator.feature_details
method, which allows lookup of feature details as are currently available to Determinator. Whatever is returned here is what Determinator is acting upon. (#38)
Bug Fix:
- Upgrades a dependency of the example rails app which has a known vulnerability. (#39)
Feature:
- Allows the use of example-scoped variables for outcomes and constraints in
RSpec::Determinator
's mocks. (#36)
Bug fix:
- Ensure constraints and properties are string-keyed so that they match regardless of which are used (#33)
- Be more permissive with the situations where
Rspec::Determinator
can be used (#34) - Swallow not found errors from routemaster so determinator isn't too shouty, allow them to be tracked. (#35)
Feature:
- Determinator can now be configured to log errors with any external service (#32)
Bug fix:
- Fixes an issue where PR #27 missed one instance of syntactic sugar where
constraints
needed to be switched toproperties
. (#30)
This version of Determiantor introduces some breaking changes as we move to getting the Florence ecosystem more ready for a wider audience. A 1.0.0 release will follow shortly with few additional features, but with significantly more documentation.
Breaking changes:
- When asking for a determination, you must specify the
properties
of the given actor, not theconstraints
(asconstraints
makes less sense) (#27) - Remove siphon drain step, determinator now requires just a drain that expires caches. Also Removes the caching step for ID lookup (#24)
Features:
- Added Determinator RSpec helper (#26)
- Allows Determinator to accept both legacy and new style contraint and override specifications, for upcoming Florence API migration (#25)