Breaking Changes
- The minimum supported version of Firefox is now 153 Nightly.
- Custom experiment collections are no longer supported. (#220)
Experimenter Integrations
nimbus-devtools now has several integrations with Experimenter:
about:messagepreviewintegration: nimbus-devtools will now inject preview links for messaging experiments into Experimenter, allowing messages to previewed directly. Messaging features are determined viaMessagingExperimentConstants.sys.mjsand supported message templates are defined inAboutMessagePreviewParent.sys.mjs(#149, #174, #184)- One click force enrollment via Experimenter: you can now opt-in to experiments and rollouts directly from Experimenter. Copying and pasting
about:studieslinks is no longer required. (#170, #178) - Debug JEXL directly from Experimenter: there is now a button to open the experiment's targeting expression in the JEXL debugger from the summary page. (#194)
- Experimenter can now detect if nimbus-devtools is out of date and a new update is available. (#185)
New Features
- Added a "Debug Targeting" action to the Experiment Browser to open the experiment's targeting expression directly in the JEXL debugger. (#192)
- Firefox Labs support: when enrolling into a Firefox Labs opt-in via any method, the Lab will now be correctly registered with
about:preferences#experimental. (#233) - Co-enrollment support: nimbus-devtools now supports enrolling in multiple experiments and rollouts for co-enrolling features. (#205)
- nimbus-devtools now has an extension icon, which is shown in the toolbar instead of a blank puzzle piece (#138)
- There is now a link to file a bug against nimbus-devtools from the extension. (#187)
- Individual actions on the Experiment browser have been redesigned as a menu that opens dialogs to improve user experience and support additional actions. (#189)
- Opt-in to complete experiments from the Experiment Browser page. (#210)
- Enrollment status is now displayed on the Experiment Browser page. (#217)
- Support unenrollment and deletion from the Experiment Browser page. (#217)
- Insert inactive (past) enrollments: it is now much easier to fake enrollment history for natural enrollment purposes. The Experiment Browser page has a new action to inject an inactive enrollment into the database with a specific unenroll reason. (#217)
- The Experiment Browser page now displays experiment slugs to make searching easier. (#219)
- The Settings page has been completely redone and is now the Experiment Loader page. All options have been thoroughly documented and nimbus-devtools will now warn if the browser needs a restart for settings to take effect. (#220)
- Highlight targeting attributes in the debugger that are not reported in telemetry. (#225)
- Report unrecorded targeting attributes and prefs used in JEXL expressions. (#225)
Bug Fixes
- JEXL expressions that evaluate to
nullare no longer coerced totrue. (#118) - Support
intersectoperator in the JEXL debugger (#156) isEnrollmentPausedis no longer inverted on the Experiment Browser page. (#157)- Experiments are always re-fetched when force enrolling. This prevents an edge case where the client force enrolls into a stale recipe. (#158)
- The "channels" field is now properly populated on the Experiment Browser page. (#221)
- Only desktop experiments are shown on the Experiment Browser page. (#221)
- Support debugging property accessors on object and array JEXL literals. (#225)
- Fix string re-quoting in the JEXL debugger. Previously some valid JEXL expressions would throw parsing errors during debugging due to using a naive string quoting algorithm. (#225)
- Evaluate expressions before debugging them. This improves error messages when JEXL expressions throw. (#225)
- Support
undefinedas a value returned from JEXL expressions. (#225)