When making schema changes, follow this guidance to avoid breaking changes:
Rather than modifying an existing field, consider adding a new field with a new name and later
deprecating the old field when it is no longer used
When modifying a field by adding and deprecating, document:
The expected behaviour of the old field in terms of the new
The expected behaviour when both fields are present. (e.g. in the presence of both fields, the
new old field should be ignored)
When deprecating an existing field, consider making it optional/nullable rather than removing it
altogether and then removing it entirely when all clients/active experiments no longer depend on
it
Proposing Schema Changes
[x] Assign this issue to yourself
[x] Add a comment below describing the changes at a high level, including all new/deprecated
fields, their types, and their uses
[ ] Link to any related proposal documentation
[x] Create a PR which introduces the schema changes and includes the following
[ ] Add all filed tickets/epics in a comment below
[ ] For deprecated fields, file a ticket in
Nimbus Engineering
to add a warning to the Nimbus UI that the field will be deprecated and provide guidance about
how experiment/feature owners should migrate away from their dependence on the deprecated
field
When Client Changes Are Complete
[ ] File tickets/epics for all Nimbus Clients for the new changes to be QAed by supplying the new
sample data to the relevant (desktop/mobile) client(s) and verifying the intended behaviour
Welcome Change Captain! ⛵️
When making schema changes, follow this guidance to avoid breaking changes:
Rather than modifying an existing field, consider adding a new field with a new name and later deprecating the old field when it is no longer used
When deprecating an existing field, consider making it optional/nullable rather than removing it altogether and then removing it entirely when all clients/active experiments no longer depend on it
Proposing Schema Changes
When Client Changes Are Complete
When Client QA is Complete
When Bugs Are Resolved and Clients Are Released
[ ] Comment below indicating which version of each client application includes the changes
[ ] File tickets/epics in Nimbus Engineering to implement the changes in Experimenter and add them in a comment below, including:
[ ] File tickets/epics in Jetstream to adapt it to any incoming changes that affect its analysis
When Experimenter Changes Are Complete