Граф коммитов

32 Коммитов

Автор SHA1 Сообщение Дата
Herraj Luhano 5488b455af
feat(nimbus): Firefox Labs Model and API changes (#11697)
Because

- We want to add the fields from the updated `NimbusExperiment` schema
to the `NimbusExperiment` model to be available internally.

This commit

- Updates `NimbusExperiment` model.
- Updates `NimbusBranchSerializerDesktop` model.
- Updates `v6` and `v8` serializer classes with the above fields.
- Generates new db migration for the above fields.

Fixes #11556
2024-11-07 21:31:25 +00:00
Rana Al-Khulaidi 28294f9a9d
feat(project): Add segments to v8 api (#11410)
Because
* The current v8 API does not support segments

This commit
* Adds segments to the v8 API for consumption by jetstream

Fixes #11401
2024-09-20 18:03:35 +00:00
Rana Al-Khulaidi 98f4409a43
feat(project): create v8 api for segments support (#11300)
Because

* We need to extend experiments to support segment functionality
* We want to be able to update the API for Jetstream without affecting
the clients that consume v6

This commit

* Creates a new v8 api based on the existing v6 api to support adding
segments

Fixes #11290
2024-09-10 14:49:16 +00:00
Yashika Khurana 5ab0c0d1f3
docs(cirrus): Cirrus QA strategy (#10902)
Because

- We want QA to test web applications in the production environment.

This commit

- ADR about the new strategy
Fixes #10887
2024-07-02 22:33:24 +00:00
Daniel Berry 83781b2cbf
Create 0014-desktop-randomization-unit.md (#10860)
Adds ADR version of decision brief to switch desktop experiments to
`group_id` as randomization and analysis unit.

---------

Co-authored-by: Mike Williams <102263964+mikewilli@users.noreply.github.com>
2024-06-17 16:49:28 +00:00
Barret Rennie 71fd4996e6
feat(nimbus): Include localizations field in v7 api (#10722)
Because:

- Skylight needs access to the localizations field in the v7 API

This commit:

- Adds the localizations field to the v7 API

Fixes #10719
2024-05-22 19:12:19 +00:00
Jared Lockhart 17c9425819
feat(nimbus): v7 api (#10648)
Because

* We have new consumers for Experimenter's public read only API whose
concerns diverge from those of the existing V6 consumers (ie
clients/jetstream)

This commit

* Introduces the V7 API with a schema and beahviour similar to V6 but
not intended to be sent to clients and so is not constrained by any
backwards compatibility or client constraints
* V7 is read only and cached

fixes #10638
fixes #10639
fixes #10640
2024-05-03 17:21:12 +00:00
Yashika Khurana c360da1c0e
feat(nimbus): Support Firefox accounts (#10457)
Because

- Firefox accounts want to run web experiments

This commit

- Add application support for Fxa

Fixes #10393 

<img width="766" alt="Screenshot 2024-03-22 at 10 39 42 AM"
src="https://github.com/mozilla/experimenter/assets/25848231/fa94f352-ef83-4e02-88ae-208a80ff2ac8">
2024-03-22 17:54:50 +00:00
Barret Rennie ab10071fff
feat(nimbus): Add filters to v6 Experiment API (#10448)
Because:

- the v6 API currently returns all experiments and takes a long time to
query;
- we have an increasing number of API consumers; and
- they are only intersted in specific subsets of experiments

This commit:

- adds filters to the v6 experiments APIs for application, feature
config slugs, experiment status, localization status, and first run
status (where applicable).

Fixes #10447
2024-03-21 18:31:33 +00:00
Jared Lockhart 247d2a8db5
feat(nimbus): fml errors in feature value editor (#10401)
Because

* We now have the ability to validate feature values using FML in Python
* We are using the CodeMirror JSON editor for feature values
* We can use the dynamic linter module in CodeMirror to do inline FML
validation for feature values

This commit

* Creates an API endpoint for PUTing a feature value and receiving an
array of FML errors
* Attaches that API to the feature value editor in CodeMirror

fixes #9478
<img width="1179" alt="Screenshot 2024-03-12 at 17 54 57"
src="https://github.com/mozilla/experimenter/assets/119884/b5214e7b-c1b7-4b61-b205-2693f6452330">
2024-03-14 14:54:21 +00:00
Jared Lockhart 3763d5208c
chore(legacy): add versions 121-140 (#10350)
Because

* We need to run some diagnostic launches on Normandy until it's
deprecated
* We will launch one for each new release
* We need to target current versions

This commit

* Adds versions 121-140

fixes #10349
2024-03-04 17:36:42 +00:00
Jared Lockhart a2e5061db3
chore(project): update to django 5.0 (#10317)
Because

* Django 5.0 is out now
* We should stay up to date with the latest Django

This commit

* Updates to Django 5.0

fixes #9024
2024-02-26 21:10:31 +00:00
Mike Williams 25b318bc76
docs(nimbus): adr for guardrail metric versioning (#10267)
Because

- We need a way to change guardrail metric definitions
- Guardrails are hardcoded in Experimenter (so guardrail name changes
break this functionality)

This commit

- Proposes short-term solutions for versioning guardrail metric
definitions

Fixes #10266
2024-02-23 19:09:04 +00:00
Jared Lockhart e15af1bc4d
chore(nimbus): remove v5 config serializer (#10258)
Because

* We had intended to replace graphql with django rest framework
* We started by reimplementing the config endpoint in rest framework
* We abandoned the rest framework strategy to focus instead on htmx
* The v5 config serializer still exists but was never hooked up to
anything
* It can be safely removed

This commit

* Removes the v5 config serializer

fixes #10257
2024-02-08 20:35:21 +00:00
Jared Lockhart bcd3f4cff5
feat(nimbus): add published_date field to schema (#10129)
Because

* We need a way to track the published date of a recipe so that clients
can use it as a strict ordering for evaluating recipes
* We want to set it when recipes are published to remote settings
* It should always be the most recent publish date for launching
experiments/rollouts, but not overwritten after launch

This commit

* Adds a publish date field to NimbusExperiment
* Adds it to the V6 serializer
* Sets it in the kinto tasks

fixes #9786

Co-authored-by: Charlie <chumphreys@mozilla.com>
2024-01-25 16:44:29 +00:00
Elise Richards 0435e17fa4
Fixes #9889 feat(nimbus): Add filter for qa status on homepage (#10037)
Because

- We want to be able to quickly filter by the QA status on the
homescreen

This commit

- Adds qa_status to config so that it can be filterable
- Adds the UI for the qa status filter
- Updates the pluralization for filters so that it correctly pluralizes
"QA Status" -> "QA Statuses" (instead of just adding an "s" to the end)

Fixes #9889 

----

<img width="288" alt="Screenshot 2024-01-11 at 6 11 05 PM"
src="https://github.com/mozilla/experimenter/assets/43795363/c1f8aeae-241f-4065-9fdd-b15eafd0ee71">

<img width="1663" alt="Screenshot 2024-01-11 at 6 10 43 PM"
src="https://github.com/mozilla/experimenter/assets/43795363/9b3d8020-650c-42c0-a98e-1478e254211b">

<img width="1669" alt="Screenshot 2024-01-11 at 6 10 57 PM"
src="https://github.com/mozilla/experimenter/assets/43795363/2298c8c6-8503-411a-82ad-1d1cd761186e">
2024-01-12 18:14:27 +00:00
Yashika Khurana 6bd6966a94
fix #9405 feat(cirrus): Update channels (#9407)
Because

- Monitor uses staging and production channels

This commit

- Add new channels - `staging` and `production`
- Update the monitor app to use those channels

fixes #9405
2023-09-19 21:31:33 +00:00
Mike Williams 4add05b985
fix #9128 feat(nimbus): add pop sizing data to graphql fetch (#9129)
Because

- we want to display pre-computed population sizing data on the Audience
config page

This commit

- gets the pop sizing data from graphql
2023-08-24 15:33:07 +00:00
Elise Richards a85156632c
Fixes #9268: Add takeaways to homepage filters (#9281)
Because

- #9230 and #9188 added two T/F checkboxes for QBR Learnings and Metric
Gains to the takeaways section

This commit

- Creates a filter on the homepage for these boolean values so that we
can filter the experiments based on the takeaways

----

<img width="1279" alt="image"
src="https://github.com/mozilla/experimenter/assets/43795363/259de72e-3858-4cd0-a02a-46663b4b2f7a">


https://github.com/mozilla/experimenter/assets/43795363/bf1cce7e-c499-4388-acc8-e4d59741e6fa
2023-08-16 16:25:02 +00:00
Jared Lockhart e844299b11
fix #9269 feat(nimbus): add developer channel for ios (#9270)
Because

* Local builds of IOS will report the channel as developer
* QA often uses local builds for testing
* They have been forced to manually alter recipes to channel developer
for testing

This commit

* Adds developer as a supported channel for IOS to facilitate QA testing
2023-08-11 19:59:10 +00:00
jhugman 674a24e41b
Add ADR for exposure events and coenrolling features (#9067)
Because

- Coenrolling features are about to exist
- Exposure events rely on the default behavior of feature exclusivity

This commit

- Proposes several ways forward in the form of an Architectural Decision
Record.

[Rendered
version](https://github.com/mozilla/experimenter/blob/jhugman/exp-3630-adr-for-exposure-events-of-coenrolling-features/docs/adrs/0012-exposure-events-and-coenrolling-features.md)
for easier reading.

My strong recommendation is for **Option 3: Annotate the message with
the experiment slug**


Fixes [EXP-3630](https://mozilla-hub.atlassian.net/browse/EXP-3630).
2023-07-06 18:49:56 +00:00
Charlie ed1986a2b6
fix #8979 docs: add nimbus web glean application structure adr (#8980)
Because

- Cirrus (Nimbus for the web) necessitates a deeper discussion and
decision regarding the structuring of Glean applications,

This commit

- Adds an ADR addressing those concerns.

---

[Rendered
version](https://github.com/jeddai/experimenter/blob/nimbus-web-glean-structure-adr/docs/adrs/0011-nimbus-web-glean-application-structure.md)

---------

Co-authored-by: Yashika Khurana <yashikakhuranayashika@gmail.com>
2023-06-28 17:40:16 +00:00
Barret Rennie bc6be56eec
fix #8818 feat(nimbus): Serialize recipe locales (#8820)
Becuase

- localization automation requires knowing the targeted locales for an
experiment; and
- that information is only currently available indirectly via the
`targeting` field

this commit

- adds serialization for the `locale` field.
2023-06-16 16:21:58 +00:00
Elise Richards 08a94917b3
For #8877 docs(nimbus): Adding cancel workflows to the state transition docs (#8935)
Because

- We don't have transition diagrams for the cancel states

This commit

- Adds mermaid diagrams for the following:
   - Draft -> Publish -> Cancel
   - Preview -> Publish -> Cancel
   - Live rollout -> Update -> Cancel
   - Live experiment -> End enrollment -> Cancel
   - Live -> End -> Cancel
2023-06-15 19:00:21 +00:00
Barret Rennie b4bb8f09bb
fix #8364 feat(nimbus): Add a draft experiments API (#8819)
Because

- we need to expose draft experiments for several reasons (generating
previews for jetstream, integration with automation for localized
experiments, ...)

this commit

- adds a new API endpoint to return draft experiments, optionally
filtered by the `is_localized` field.
2023-05-13 00:14:32 +00:00
Mike Williams c05a23892f
fix #8738 docs(nimbus): ADR for jetstream schema definition (#8740)
Because

- Jetstream analysis results do not have a well-defined schema
- Jetstream (export) and Experimenter (ingest) need to be in sync for
the data sent to avoid errors/bugs
- the current approach for shared schemas (typescript schema in
nimbus-shared) perpetuates fragmentation in Nimbus ecosystem (and is not
widely used)

This commit

- documents the decisions for a) defining the schema, and b) where to
put it
2023-05-10 12:52:34 +00:00
Elise Richards 5ef801a027
For #8559 docs(nimbus): Update state and sequence diagrams to use is_dirty flag (#8669)
~🚨 do not merge! waiting on #8558~ done

Because

- We want to use the `is_dirty` flag instead of Dirty publish status

This commit

- Updates the state diagrams to remove the Dirty publish status
- Removes Dirty publish status from sequence diagrams
- Adds `is_dirty` flag to sequence diagrams

<img width="1103" alt="image"
src="https://user-images.githubusercontent.com/43795363/230447688-20fa5391-d439-42d6-8a55-813ea9158ba0.png">
 

![state-diagrams-v3](https://user-images.githubusercontent.com/43795363/230447738-56e670ad-020c-4b2e-86f1-0bd010a2d595.svg)
2023-05-09 21:37:20 +00:00
Barret Rennie d25d7e96d0
feat(nimbus): Update serializers for localized experiments (#8778)
Because

- we want to support localized experiments in Nimbus

this commit

- updates our serializers to support localized experiments.

Co-authored-by: Jason Prickett <jprickett@mozilla.com>

Co-authored-by: Jason Prickett <jprickett@mozilla.com>
2023-05-05 19:47:49 +00:00
Jared Lockhart 567696eda7
Update mozilla-nimbus-shared 2.0.1 (#8691)
Because

- mozilla-nimbus-shared updated to 2.0.1

This commit

- Updates to mozilla-nimbus-shared 2.0.1
2023-04-13 14:32:18 -04:00
Elise Richards 407b3bc863
For #8623 docs(nimbus): Add new mermaid diagrams to experimenter docs (#8656)
Because...

- We are switching over to use [Mermaid]() for our sequence diagrams

These commits...

1. Adds the new sequence diagrams using Mermaid
2. Removes the old ones
3. Removes all of the old sequence files and images
4. Updates the table of contents

----

Each of the four ^ corresponds to one of the commits. It might be
easiest to look at the README in the [first
commit](2c0db7cb3a)
since it has both the old diagrams and the new ones side by side.
2023-04-05 14:38:20 -05:00
Charlie 209c5d9a7e
Fixes #8526: Add adr 0009 for nimbus web sdk architecture (#8527)
Because

- We require some large changes to the core structure of the Nimbus SDK
to support Nimbus for the web

This commit

- Adds ADR 0009

---------

Co-authored-by: Jared Lockhart <119884+jaredlockhart@users.noreply.github.com>
2023-03-31 10:21:38 -05:00
Charlie fd3e600750
Fix #8495 chore(nimbus): move docs folder to repository root (#8496)
Because
- The documentation in the `experimenter/experimenter/docs` folder
applies to Nimbus as a whole

This commit
- Moves that docs folder to the repository root
- Updates url paths in relevant docs

---------

Co-authored-by: Jared Lockhart <119884+jaredlockhart@users.noreply.github.com>
2023-03-15 13:47:32 -07:00