Because:
* Life cycle events in experiments created via load_dummy_experiments
appear to happen all within the same minute
This commit:
* Spreads the life cycle events out over a much longer random timespan
similar to legacy experimenter
Because
* We'd like to be able to push to kinto immediately after approving a launch/change/end
* We need to be able to evaluate a timeout separately from the time since the last push happened
This commit
* Uses the time since the last change was made to determine whether a kinto change should time out
* Pushes to kinto immediately after approving instead of waiting for the next scheduled task run
* Introduces published_dto_changed to NimbusChangeLog to be able to distinguish live updates from live rejections
* Removes the 0170 data migration tests because they only pass if 0170 is the most recent migration
Because:
* old_status needs to be ble to be None for creation changelogs
* String representation change would allow for easier debugging
This commit:
* allows old_status to be None
* Changes the str rep of ReportLog object to something more descriptive
Because:
* We want to display the feature config ready for review error
* Since feature configs are now required, we no longer want "+ Feature config" and "X" for removal
This commit:
* Displays feature config review readiness error in reference branch
* Displays feature config review readiness error in treatment branch if that branch has previously been saved or shows other errors
* Removes the "+ Feature configuration" button, "X" removal, and related UI elements/tests to always show this drawer as open
* Adds missing label for feature config
Because
* We neglected to reset the isEndRequested flag when rejecting from the nimbus UI
* Experiment gets stuck if it's rejected
This commit
* Resets isEndRequested to false when rejecting from nimbus ui
Because
* We expect an experiment to only launch or end once and only have single launch/end changelogs
* Real data is muddy and messy
* We should elegantly handle the case where there's multiple starts/ends
This commit
* Uses the most recent launch or end changelog to compute the start/end dates
Because
* We recently fixed a bug with pausing and added a new test
* Just noticed that it's intermittent
This commit
* Adds additional filters to prevent intermittency
Because
* While working on a recent bug I discovered that one of our lifecycle states was malformed
* Tests were passing becuase the same lifecycle state was used as part of logic and part of tests
* Using separate state definitions for logic and tests can help catch future bugs
This commit
* Moves the lifecycles over to the test factory and hard codes definitions in the model filters
Because
* We recently refactored everything to use these handy declarative lifecycles
* We accidentally used the wrong one when considering experiments to update their pause state
This commit
* Renames some of the lifecycles to be more consistent
* Adds the necessary lifecycle for experiments waiting to be paused
* Updates tasks/tests
Because
* We noticed test_404 was failing locally in make bash pytest but passing in make check
* It's passing in manage.py test in either context
* So what is happening?
This commit
* Figured out that pytest and django both set DEBUG=False when running tests, overriding whatever your local DEBUG is set to
* But they do it differently, django sets it globally from startup, whereas pytest will use the environment DEBUG and only set it to False within individual test runs
* We have a urlpattern for /404/ when DEBUG is True
* When pytest starts on a local environment with DEBUG=True, that path will get registered
* If /404/ is a registered path then attempting to resolve /404 will trigger a redirect to append the slash to hit /404/ which happens when pytest is run in an environment with DEBUG=True in .env
* If /404/ is NOT a registered path, ie when DEBUG is globally False or when using manage.py test, then /404 will result in an expected 404
* Woof.
Because:
* The server-generated messages weren't user friendly for all fields
* We have a bunch of server-side messaging scattered in Storybook that could be stuck together for consistent/easy reference
This commit:
* Adjusts ready for review error messaging in the serializer
* Creates a new SERVER_ERRORS const in the FE for Storybook and tests
Because
- The integration tests run against make up_prod
- The integration tests will need to interact with kinto
This commit
- Exposes kinto to make up_prod
Because:
* a partial upgrade of dependencies caused broken Storybook builds
This commit:
* completes upgrades of other dependencies, which appears to fix things