major reorganization of the sidebar (#208)

* major reorganization of the sidebar

* update caniuse-list per instructions

* fix broken links to a few docs
This commit is contained in:
Janet Dragojevic 2022-05-10 15:59:32 -04:00 коммит произвёл GitHub
Родитель eddd706d69
Коммит a099f6481e
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
44 изменённых файлов: 436 добавлений и 227 удалений

Просмотреть файл

@ -44,7 +44,7 @@ Each experiment begins with an enrollment period with fixed start and end dates
For each client, experiment metrics are analyzed over a defined period of time from enrollment. We report results for an analysis period (e.g. the first day after enrollment) after all clients have had a chance to experience the treatment for that duration. The [Jetstream overview](jetstream/jetstream.md#analysis-paradigm) describes the analysis paradigm in more depth and how it relates to the length of an experiment.
For more nuances about sampling, enrollment and exposure (whether or not the client actually saw the treatment or control), see [the experiment lifecycle overview](client-sdk-states-and-lifecycle.mdx).
For more nuances about sampling, enrollment and exposure (whether or not the client actually saw the treatment or control), see [the experiment lifecycle overview](deep-dives/specifications/client-sdk-states-and-lifecycle.mdx).
## Sample size recommendations

Просмотреть файл

@ -1,7 +1,7 @@
---
id: bucketing
title: Bucketing
slug: /Bucketing
slug: /bucketing
---
**Bucketing** is the process of randomly assigning users to experiment branches. When a user is “bucketed” into an experiment, it means that the configuration in one of its branches (such as a change to part of the UI) can be activated, and that any interactions we record from that moment on can be associated with the experiment and branch identifier.

Просмотреть файл

@ -1,3 +1,9 @@
---
id: mobile-feature-api
title: Mobile Feature API
slug: /mobile-feature-api
---
# Feature Variables and Me
## About this document

Просмотреть файл

@ -1,3 +1,8 @@
---
id: fm-unimplemented-spec
title: Proposed changes for Feature Manifest Language
slug: /fm-unimplemented-spec
---
## Future specifications
This document houses a number of proposals not ready for comment. They are not linked to from the spec.

Просмотреть файл

Просмотреть файл

@ -42,7 +42,7 @@ The "Feature Manifest Language" is definition language for writing feature manif
Features are configured remotely by sending JSON objects to the Nimbus SDK on each device. It is the job of the `nimbus-fml`, and the code that it generates to unpack that JSON, validate it, coerce it into values usable by the app and recover if anything goes wrong.
[feature-api]: feature-variables-and-me.md
[feature-api]: mobile-feature-api
### JSON Merge Patch

Просмотреть файл

@ -1,38 +0,0 @@
---
id: fenix-experiments-getting-started
title: Implementing an experiment
slug: /fenix-engineers
---
## Client configuration prechecks
✅ Get a copy of the experiment brief for your experiment from the [Experiments Repository](https://mana.mozilla.org/wiki/x/FaXNBw) mana page.
✅ Assure that your experiment brief contains values for:
- experiment name
- featureID
- branch names (for a basic a/b experiment, prefer _control_ and _treatment_)
✅ Confirm the **featureID** is added to the experimenter list of console values.
> NOTE: featureID setup access is controlled via experimenter Django admin.
>
> Please ask for help in the `#ask-experimenter` channel
## Fenix setup
Preparing your app for experimentation is now about getting your app features to get its configuration from the Nimbus Feature API.
1. [Instrument your application feature with the Feature API][feature-api].
1. Once your feature is instrumented, you should add the feature-id to Experimenter.
1. Now Experimenter knows about the feature, you can configure your application features with an experiment.
[feature-api]: feature-variables-and-me
## Local Testing
1. Setup your local Fenix build to point to the experimenter
[staging url](https://github.com/mozilla-mobile/fenix#using-nimbus-servers-during-local-development).
1. Build Fenix with the updated remote-settings configuration.
1. Configure your experiment in the [experimenter nimbus staging site](https://stage.experimenter.nonprod.dataops.mozgcp.net/nimbus/).
1. Run Fenix and check you are able to see your expected behavior.

Просмотреть файл

@ -1,5 +1,4 @@
---
id: access
title: Getting Access
slug: /access
---

Просмотреть файл

@ -1,6 +1,6 @@
---
id: desktop-feature-api
title: Nimbus Feature API (JS and C++)
title: Desktop Feature API (JS and C++)
slug: /desktop-feature-api
---

Просмотреть файл

@ -1,9 +1,10 @@
---
id: desktop-migration-guide
title: Migration Guide (JS)
title: Desktop Migration Guide (JS)
slug: /desktop-migration-guide
---
## To migrate front-end normandy prefs to Nimbus controlled experiments or rollouts
This guide will help you migrate your Desktop front-end code to run experiments with Nimbus, while still being able to use preferences for default and user-override values
Prerequisites:

Просмотреть файл

@ -0,0 +1,14 @@
---
id: for-engineers
title: Engineers
slug: /for-engineers
---
Engineers are typically tasked with implementing an experiment on a new surface with an experiment that has been designed by their product manager in partnership with a data scientist.
## To get started with implementation
* Review the experiment design document.
* Determine if you need to implement any additional telemetry collection
* Check if you need to implement a custom audience
* Confirm the name of the feature and follow the guide to [adding a new feature to the manifest](http://localhost:3000/feature-definition#to-define-your-feature-in-the-feature-manifest-file)

Просмотреть файл

@ -0,0 +1,7 @@
---
id: for-leadership
title: Leaders
slug: /for-leadership
---
## How to start implementing an experiment

Просмотреть файл

@ -0,0 +1,7 @@
---
id: for-product
title: Product Managers
slug: /for-product
---
## How to start implementing an experiment

Просмотреть файл

@ -1,32 +0,0 @@
---
id: intro
title: Getting Started
sidebar_label: Introduction
slug: /
---
:::tip
Need help? Reach out in [`#ask-experimenter`](https://mozilla.slack.com/archives/CF94YGE03) on Slack or join a [lightning advisory session](https://docs.google.com/document/d/1fj4BqG0N-cN_Fx5sq-AozdiOdKO7asaDWR4B7sH88F0).
:::
Welcome to the [Experimenter](https://experimenter.services.mozilla.com/nimbus/) documentation hub, your central resource for A/B experiments in Firefox Mobile and Desktop. Whether you are an engineer working on a feature, a product manager with a hypothesis, or a data scientist helping design and interpret results, we want to give you the tools to get started!
## Experimentation Workflow
To view a recorded training for the Experimentation Workflow, [click here](https://mozilla.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=4d337632-a0bd-4be7-bee8-ae5b017134ae&start=0)
<div class="miro-container">
<iframe class="responsive-iframe" src="https://miro.com/app/live-embed/uXjVOJ3IYRA=/?moveToViewport=-2130,380,5949,3025&embedAutoplay=true" frameBorder="0" scrolling="no"></iframe>
</div>
## Find an existing experiment
If the experiment was run with Nimbus, check out the [directory of live and completed experiments](https://experimenter.services.mozilla.com/nimbus/). Normandy experiments can be found [here](https://experimenter.services.mozilla.com/).
If the experiment is not yet live, you will probably be able to find a relevant Jira ticket on this [Data Science Experimentation Collaboration Board](https://mozilla-hub.atlassian.net/jira/software/c/projects/DS/boards/258)
## About these docs
This website is built using [Docusaurus](https://v2.docusaurus.io/).
Want to edit one of these docs, add a new one, or modify the sidebar? Check out the [Contributing](/contributing) page.

Просмотреть файл

@ -0,0 +1,52 @@
---
id: capabilities
title: Nimbus Features
sidebar_label: Features
slug: /capabilities
---
Nimbus is a full-featured experimentation platform that provides configuration, analysis and client libraries for both experiments and rollouts.
## Experimenter Console
- Simple experiment configuration UI
- Pre-launch testing support
- Multifeature experiments
- Simple targeting
- Advanced customizable targeting
- Remote settings integration
- Experiment Review / Approval Workflow
- Dashboards
- Monitoring and Analysis
## Experiment Types
- A/A validation
- A/B experiments
- Holdback experiments
- Messaging experiments
- Feature Rollouts
- Winning branch promotion
## Multiple langauage Client integrations
- Android (Kotlin)
- iOS (Swift)
- Firefox Desktop Frontend (JS)
- Firefox Platform (C++)
## Client-side functionality
- Consumer opt-out
- Integration with console preview testing
- View experiments (about:studies)
## Current client integrations
- Firefox Desktop
- Frontend via JS SDK
- Platform
- Windows installer
- Firefox Mobile via nimbus Rust Component
- Fenix
- Firefox iOS
- Focus Andriod
-Focus iOS
## Requesting feature support
If you aren't sure we have what you need, pop into #ask-experimenter with your questions or [file an issue](https://mozilla-hub.atlassian.net/secure/CreateIssueDetails!init.jspa?pid=10203&issuetype=10097)

Просмотреть файл

@ -0,0 +1,11 @@
---
id: finding-help
title: Finding Help
sidebar_label: Finding Help
slug: /help
---
:::tip
Need help? Not sure where to start?
Reach out in [`#ask-experimenter`](https://mozilla.slack.com/archives/CF94YGE03) on Slack or join a [lightning advisory session](https://docs.google.com/document/d/1fj4BqG0N-cN_Fx5sq-AozdiOdKO7asaDWR4B7sH88F0).
:::

35
docs/homepage/intro.md Normal file
Просмотреть файл

@ -0,0 +1,35 @@
---
id: intro
title: Welcome
sidebar_label: Introduction
slug: /
---
Welcome to the [Experimenter](https://experimenter.services.mozilla.com/nimbus/) documentation hub, your central resource for A/B experiments and feature rollouts in Firefox Mobile and Desktop. You should find these documents helpful if you are:
* A **product manager** and you have a hypothesis you want to test or a feature you'd like to safely release.
* An **engineer** who needs to implement an experiment or feature rollout in your client
* A **data scientist** helping to design and interpret experiment results
* A **Mozilla leader** who would like insight into completed and ongoing experiments and rollouts.
## What is covered here?
These documents are specific to the Mozilla experimentation program know as **Nimbus**. Nimbus experimentation and support is currently available for our Firefox Desktop and Mobile browser applications.
Our platform code is all open-source however, we do not offer support or services to 3rd party consumers. Some documentation links may only be available to Mozilla employees and NDA contributors.
## What other tools exist
The following projects have bespoke tools for experimentation. These are not included as part of this documentation with the exception of a migration guide from Normandy to Nimbus for engineers.
* Firefox Desktop (legacy experimentation): [Normandy](https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout)
* Mozilla Websites (a/b experiments): [Bedrock](https://github.com/mozilla/bedrock)
* Firefox Accounts (limited content server): [Fxa docs](https://mozilla.github.io/ecosystem-platform/reference/experiments-ab-testing)
## About these docs
This website is built using [Docusaurus](https://v2.docusaurus.io/). If you'd like to edit or add to them, check out the [Contributing](/contributing) page.

Просмотреть файл

@ -391,4 +391,4 @@ window_end = "analysis_window_end"
Results for exposure based metrics are currently not visualized in Experimenter. To access results, the BigQuery tables need to be queried directly.
[Nimbus exposure event]: feature-variables-and-me.md#recording-exposure-events
[Nimbus exposure event]: ../mobile-feature-api#recording-exposure-events

Просмотреть файл

@ -80,7 +80,7 @@ Any telemetry collection can be used as an exposure event, though events are oft
Many Nimbus features will send a [Nimbus exposure event] automatically when the feature configuration is consulted;
these are `normandy#expose` events on desktop and `nimbus_events.exposure` events in Glean.
[Nimbus exposure event]: feature-variables-and-me.md#recording-exposure-events
[Nimbus exposure event]: ../mobile-feature-api#recording-exposure-events
## Analysis steps

Просмотреть файл

@ -1,6 +1,6 @@
---
id: mobile-messaging
title: Using the Experimenter to send messages to Mobile clients
title: Mobile Messaging
slug: /mobile-messaging
---

Просмотреть файл

@ -0,0 +1,24 @@
---
title: A/B Experiments
slug: /a-b-experiments
---
## To implement an A/A or A/B experiment on Desktop
## To implement an A/A or A/B experiment on Mobile
## To implement a holdback experiment
* Desktop
* Mobile
## To implement custom telemetry collection
If you need telemetry beyond what is already specfied for your mobile client as part of your implementation process you will need to add the additional telemetry to your client.
* Desktop
* Mobile
## To locally validate your changes
* Desktop
* Mobile

Просмотреть файл

@ -0,0 +1,6 @@
---
id: analyzing
title: Experiment Analysis
sidebar_label: Analyzing
slug: /analyzing
---

Просмотреть файл

@ -4,7 +4,7 @@ title: Adding new targeting attributes to Android
---
# Adding new targeting attributes to Android
This page demonstrates how to add new targeting attributes to Android, enabling experiment creators more specific targeting.
For more general documentation on targeting custom audiences, check out [the custom audiences docs](experiment-owners/custom-audiences.md)
For more general documentation on targeting custom audiences, check out [the custom audiences docs](custom-audiences)
## Adding the attribute to the application
The Nimbus SDK exposes a new `customTargetingAttributes` parameter in its initializer that is a `Map<String, String>` map. We can take advantage of this parameter to pass in new targeting attributes without modifying the Nimbus SDK at all.
@ -28,7 +28,7 @@ val appInfo = NimbusAppInfo(
Note that since we need to add the targeting attributes on the client code, the attribute changes will have to ride the trains before they are available for targeting.
## Adding the attribute on experimenter
After the targeting attribute is ready on the app, you will need to modify experimenter to allow creating experiments that target the attribute you created. Follow the instructions on [the custom audiences page](experiment-owners/custom-audiences.md#how-to-add-a-new-custom-audience) to add the new targeting on experimenter.
After the targeting attribute is ready on the app, you will need to modify experimenter to allow creating experiments that target the attribute you created. Follow the instructions on [the custom audiences page](custom-audiences#how-to-add-a-new-custom-audience) to add the new targeting on experimenter.
:::warning
The targeting `JEXL` expression on experimenter **must** use the same name as the key given to the SDK. For example, if the app defines a key-value pair, with key `isFirstRun`. experimenter expression must use the same name (i.e `isFirstRun`).
:::

Просмотреть файл

@ -0,0 +1,6 @@
---
id: configuring
title: Experiment Configuration
sidebar_label: Configuring
slug: /configuring
---

Просмотреть файл

@ -0,0 +1,27 @@
---
id: designing
title: Designing Your Experiment
sidebar_label: Designing
slug: /designing
---
**Draft content**
In the designing phase of the experimentation workflow it is important to consult with a data scientist in order to:
* do this
* do that
* something something audience
* determine targeting needs (custom or default)
## Types of experiments
| | Branches | Control | Co-existence / Avoidance | Enrollment | Analysis | Good for? | Permanent Change |
|--------------------------------------------|---------------------------------------------------------------------------|--------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|
| Experiment | A/B - equal sizes. Size fixed at launch - cannot grow. | Y | One per feature at a time. Avoids other live experiments on a specific feature. Keep as small as possible to learn. | Fixed timeframe. 7 day typically. Analysis only AFTER enrollment ends | Automated for default metrics. Can select outcomes or create new custom | Stat sig differences from control + absolute counts. | No - all changes delivered through nimbus reverted. |
| Message experiment | Same AND each branch is given a messageID that the messaging system uses. | Same as experiment | Same as experiment AND message system throttles max # per time frame | Same as experiment | Same as experiment | Same as experiment | N Same as experiment |
| Multi-feature experiment | Same as experiment | Same as experiment | Avoids other live experiment with EITHER FEATURE - **restricted audience | Same as experiment | Same as experiment | Same as experiment | N Same as experiment |
| Holdback Experiment | Go right to end stage of rollout - 90% treatment | Y - 10% | Same as experiment AND no other feature can be tested in this feature for the duration. | Same as experiment | Same as experiment | Decision made to deploy quickly - but want data. A brief step before shipping as default in tree. | No - all changes delivered through nimbus reverted. Fast follow shipping in tree. |
| Rollout Today | Size increases 5%, 25%, 50%, 100% | N | Unrestricted co-existence Does not avoid other rollouts or experiments. | N/A | None - teams can make and monitor their own dashboards - but no “stat sig analysis” offered. | Risk mitigation for explosive failures (looking for crash, bugs, media issues) | Yes. Changes do not revert on targeted versions. Teams ship as default in tree in the release at 100%. |
| Branch Promotion | 1 - 100% | N | On an experiment with a winning branch - you can select “promote to rollout” which clones the ticket with the winning configuration filled in | N | N | Get winning branch to users quicker than trains | Same as Rollout Today |
| Do No Harm Monitoring Platform Experiment | Same as experiment | Same as experiment | Same as experiment. | No fixed timeframe means there is no automatic analysis trigger. | Not automated. Requires OpMon configured or team using their own custom dashboards. | Code changing/fixes landing during. Risk mitigation for quick major breaking stability / perf changes. Looking at adding search metrics as well. | N Same as experiment |

7
docs/workflow/ending.md Normal file
Просмотреть файл

@ -0,0 +1,7 @@
---
id: ending
title: Ending Your Experiment
sidebar_label: Ending
slug: /ending
---

Просмотреть файл

@ -0,0 +1,18 @@
---
title: Feature Definition
sidebar_label: Feature Definition
slug: /feature-definition
---
In the experimentation ecosystem, experiment surfaces are described as features. A feature is an area of code instrumented with telemetry and accessible for remote configuration. It can be as small as a single function or as complex as a whole page. Some examples:
aboutwelcome: The about:welcome page in Desktop
homescreen: The homescreen page in Fenix
tabTrayFeature: The tab tray in Firefox iOS
Features are defined in a Feature Manifest file for the application, and the client code uses the Nimbus SDK to access variables associated with those features.
## To define your feature in the feature manifest file
* Desktop
* Mobile

Просмотреть файл

@ -4,7 +4,7 @@ title: Adding new targeting attributes to iOS
---
# Adding new targeting attributes to iOS
This page demonstrates how to add new targeting attributes to iOS, enabling experiment creators more specific targeting.
For more general documentation on targeting custom audiences, check out [the custom audiences docs](experiment-owners/custom-audiences.md)
For more general documentation on targeting custom audiences, check out [the custom audiences docs](custom-audiences)
## Adding the attribute to the application
The Nimbus SDK exposes a new `customTargetingAttributes` parameter in its initializer that is a `[String:String]` map. We can take advantage of this parameter to pass in new targeting attributes without modifying the Nimbus SDK at all.
@ -22,7 +22,7 @@ Experiments.customTargetingAttributes = ["isFirstRun": "\(isFirstRun)", "newTar
```
## Adding the attribute on experimenter
After the targeting attribute is ready on the app, you will need to modify experimenter to allow creating experiments that target the attribute you created. Follow the instructions on [the custom audiences page](experiment-owners/custom-audiences.md#how-to-add-a-new-custom-audience) to add the new targeting on experimenter.
After the targeting attribute is ready on the app, you will need to modify experimenter to allow creating experiments that target the attribute you created. Follow the instructions on [the custom audiences page](custom-audiences#how-to-add-a-new-custom-audience) to add the new targeting on experimenter.
:::warning
The targeting `JEXL` expression on experimenter **must** use the same name as the key given to the SDK. For example, for targeting users on their first run, the app defines a key-value pair, with key `isFirstRun`. The experimenter expression must use the same name (i.e `isFirstRun`)
:::

Просмотреть файл

@ -11,7 +11,7 @@ slug: /ios-preview-testing
The first step to testing the preview flow is to launch an experiment
to preview on the stage nimbus server (we should not using the production server for testing). Go to the [stage experimenter](https://stage.experimenter.nonprod.dataops.mozgcp.net/nimbus/) and create your experiment there.
Follow the first few instructions on [the preview docs](experiment-owners/preview.md) to get an experiment to preview. (note that the experiment should be set to target iOS, look at the [FAQ](#faq) section at the bottom)
Follow the first few instructions on [the preview docs](preview.md) to get an experiment to preview. (note that the experiment should be set to target iOS, look at the [FAQ](#faq) section at the bottom)
## Pointing a local iOS build to the stage server

Просмотреть файл

@ -0,0 +1,6 @@
---
id: launching
title: Launching Your Experiment
sidebar_label: Launching
slug: /launching
---

Просмотреть файл

@ -0,0 +1,6 @@
---
id: monitoring
title: Monitoring Your Experiment
sidebar_label: Monitoring
slug: /monitoring
---

20
docs/workflow/overview.md Normal file
Просмотреть файл

@ -0,0 +1,20 @@
---
id: overview
title: Workflow
sidebar_label: Overview
slug: overview
---
## Experimentation Workflow
To view a recorded training for the Experimentation Workflow, [click here](https://mozilla.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=4d337632-a0bd-4be7-bee8-ae5b017134ae&start=0)
<div class="miro-container">
<iframe class="responsive-iframe" src="https://miro.com/app/live-embed/uXjVOJ3IYRA=/?moveToViewport=-2130,380,5949,3025&embedAutoplay=true" frameBorder="0" scrolling="no"></iframe>
</div>
## Find an existing experiment
If the experiment was run with Nimbus, check out the [directory of live and completed experiments](https://experimenter.services.mozilla.com/nimbus/). Normandy experiments can be found [here](https://experimenter.services.mozilla.com/).
If the experiment is not yet live, you will probably be able to find a relevant Jira ticket on this [Data Science Experimentation Collaboration Board](https://mozilla-hub.atlassian.net/jira/software/c/projects/DS/boards/258)

Просмотреть файл

Просмотреть файл

@ -1,10 +1,10 @@
---
id: desktop-rollouts
title: Desktop Rollouts
slug: /desktop-rollouts
id: rollouts
title: Rollouts
slug: /rollouts
---
If you want to set configurations for a feature remotely _for non-experiment users_, you can do so with Nimbus Rollouts.
If you want to set configurations for a feature remotely _for non-experiment users_, you can do so with a **Rollout**.
## FAQS

6
docs/workflow/testing.md Normal file
Просмотреть файл

@ -0,0 +1,6 @@
---
id: testing
title: Testing Experiments
sidebar_label: Testing
slug: /testing
---

Просмотреть файл

@ -1,6 +1,6 @@
module.exports = {
title: "Experimenter Docs",
tagline: "Documentation hub for Experimenter",
title: "Experimenter Docs",
tagline: "Documentation souce for Data scientists, Product Managers and Engineers",
url: "https://experimenter.info",
baseUrl: "/",
onBrokenLinks: "throw",
@ -19,7 +19,7 @@ module.exports = {
respectPrefersColorScheme: true,
},
navbar: {
title: "Experimenter Docs",
title: "Mozilla Experimentation and Feature Delivery",
logo: {
alt: "Experimenter Logo",
src: "img/logo.svg",

Просмотреть файл

@ -1,117 +1,168 @@
module.exports = {
sidebar: [
{
type: "category",
label: "Getting Started",
items: ["getting-started/intro", "getting-started/contributing"],
},
{
type: "category",
label: "Experiment Owners",
items: [
"experiment-owners/access",
"experiment-owners/custom-audiences",
"experiment-owners/preview",
],
},
{
type: "category",
label: "The Nimbus Cookbook",
items: [
{
type: "link",
label: "Feature Manifest Language Specification",
href: "/fml-spec",
},
"cookbook/fml/index",
],
},
{
{
type: "category",
label: "Welcome",
items: [
"homepage/intro",
"homepage/finding-help",
"homepage/capabilities",
]
},
{
"Getting Started":
[
"getting-started/access",
{
type: "category",
label: "Data Scientists",
items: [
"data-scientists/data-scientists-root",
"data-scientists/telemetry",
"data-scientists/bucketing",
"data-scientists/validating-experiments",
],
},
{
type: "category",
label: "Firefox for Android",
label: "Engineers",
items: [
"fenix-experiments-getting-started",
{
type: "link",
label: "Feature Variables API",
href: "/feature-variables-and-me",
},
"android-frontend-testing",
{
type: "link",
label: "Adding custom targeting attributes",
href: "/android-custom-targeting",
},
{
type: "link",
label: "Feature Manifest Language Specification",
href: "/fml-spec",
},
"getting-started/for-engineers",
"getting-started/desktop-migration-guide",
"getting-started/desktop-feature-api",
"deep-dives/mobile/mobile-feature-api"
],
},
"getting-started/for-product",
"getting-started/for-leadership"
]
},
{
"Experimentation Workflow": [
"workflow/overview",
"workflow/designing",
{
"type": "category",
"label": "Implementing",
"items": [
"workflow/feature-definition",
"workflow/a-b-experiments",
"workflow/custom-audiences",
"workflow/android-custom-targeting",
"workflow/ios-custom-targeting",
{
"type": "category",
"label": "Messaging Experiments",
items: [
"messaging/messaging-surfaces",
"messaging/display-logic",
{
type: "link",
label: "Triggers & User Actions",
href: "https://firefox-source-docs.mozilla.org/toolkit/components/messaging-system/docs/",
},
"messaging/frequency-cap",
{
type: "link",
label: "Available Targeting",
href: "https://firefox-source-docs.mozilla.org/browser/components/newtab/content-src/asrouter/docs/targeting-attributes.html",
},
"messaging/mobile-messaging"
]
},
],
},
"workflow/configuring",
{
"type": "category",
"label": "Testing",
"items": [
"workflow/testing",
"workflow/preview",
"workflow/ios-preview-testing",
"workflow/android-frontend-testing",
"workflow/desktop-feature-api-testing"
]
},
"workflow/launching",
"workflow/monitoring",
"workflow/analyzing",
"workflow/ending"
]
},
{
"Deep Dives": [
{
type: "category",
label: "Jetstream",
items: [
"jetstream/jetstream",
"jetstream/metrics",
"jetstream/statistics",
"jetstream/outcomes",
"jetstream/configuration",
"jetstream/data-products",
"jetstream/operations",
"jetstream/troubleshooting",
{
type: "link",
label: "GitHub Repo",
href: "https://github.com/mozilla/jetstream",
},
],
},
{
"type": "category",
"label": "Data topics",
"items": [
{
type: 'autogenerated',
dirName: "deep-dives/data", // Source folder to generate the sidebar slice from (relative to docs)
}
]
},
{
"type": "category",
"label": "Desktop topics",
"items": [
{
type: 'autogenerated',
dirName: "deep-dives/desktop", // Source folder to generate the sidebar slice from (relative to docs)
}
]
},
{
"type": "category",
"label": "Mobile topics",
"items": [
{
type: 'autogenerated',
dirName: "deep-dives/mobile", // Source folder to generate the sidebar slice from (relative to docs)
}
]
},
{
"type": "category",
"label": "Specifications",
"items": [
{
type: 'autogenerated',
dirName: "deep-dives/specifications", // Source folder to generate the sidebar slice from (relative to docs)
}
]
}
]
},
{
type: "category",
label: "Experimentation Cookbook",
items: [
"cookbook/fml/index",
],
},
{
type: "category",
label: "Firefox for iOS",
label: "Additional Links",
items: [
{
type: "link",
label: "Feature Variables API",
href: "/feature-variables-and-me",
},
{
type: "link",
label: "Adding custom targeting attributes",
href: "/ios-custom-targeting",
},
"ios-preview-testing",
],
},
{
type: "category",
label: "Firefox for Desktop",
items: [
"desktop-feature-api",
"desktop-migration-guide",
"desktop-rollouts",
"desktop-feature-api-testing",
"desktop-targeting-debug",
],
},
{
type: "category",
label: "Jetstream",
items: [
"jetstream/jetstream",
"jetstream/metrics",
"jetstream/statistics",
"jetstream/outcomes",
"jetstream/configuration",
"jetstream/data-products",
"jetstream/operations",
"jetstream/troubleshooting",
{
type: "link",
label: "GitHub Repo",
href: "https://github.com/mozilla/jetstream",
},
],
},
{
type: "category",
label: "Core Nimbus Team",
items: [
"client-sdk-states-and-lifecycle",
"integration-tests",
{
type: "link",
@ -140,25 +191,5 @@ module.exports = {
},
],
},
{
type: "category",
label: "Messaging System",
items: [
"messaging/messaging-surfaces",
"messaging/display-logic",
{
type: "link",
label: "Triggers & User Actions",
href: "https://firefox-source-docs.mozilla.org/toolkit/components/messaging-system/docs/",
},
"messaging/frequency-cap",
{
type: "link",
label: "Available Targeting",
href: "https://firefox-source-docs.mozilla.org/browser/components/newtab/content-src/asrouter/docs/targeting-attributes.html",
},
"messaging/mobile-messaging"
],
},
],
]
};

Просмотреть файл

@ -2686,25 +2686,10 @@ caniuse-api@^3.0.0:
lodash.memoize "^4.1.2"
lodash.uniq "^4.5.0"
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001181:
version "1.0.30001192"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001192.tgz#b848ebc0ab230cf313d194a4775a30155d50ae40"
integrity sha512-63OrUnwJj5T1rUmoyqYTdRWBqFFxZFlyZnRRjDR8NSUQFB6A+j/uBORU/SyJ5WzDLg4SPiZH40hQCBNdZ/jmAw==
caniuse-lite@^1.0.30001125:
version "1.0.30001200"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001200.tgz#25435af6ba907c2a9c86d21ce84950d4824e6620"
integrity sha512-ic/jXfa6tgiPBAISWk16jRI2q8YfjxHnSG7ddSL1ptrIP8Uy11SayFrjXRAk3NumHpDb21fdTkbTxb/hOrFrnQ==
caniuse-lite@^1.0.30001219:
version "1.0.30001220"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001220.tgz#c080e1c8eefb99f6cc9685da6313840bdbaf4c36"
integrity sha512-pjC2T4DIDyGAKTL4dMvGUQaMUHRmhvPpAgNNTa14jaBWHu+bLQgvpFqElxh9L4829Fdx0PlKiMp3wnYldRtECA==
caniuse-lite@^1.0.30001230:
version "1.0.30001242"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001242.tgz#04201627abcd60dc89211f22cbe2347306cda46b"
integrity sha512-KvNuZ/duufelMB3w2xtf9gEWCSxJwUgoxOx5b6ScLXC4kPc9xsczUVCPrQU26j5kOsHM4pSUL54tAZt5THQKug==
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001181, caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001230:
version "1.0.30001338"
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001338.tgz"
integrity sha512-1gLHWyfVoRDsHieO+CaeYe7jSo/MT7D7lhaXUiwwbuR5BwQxORs0f1tAwUSQr3YbxRXJvxHM/PA5FfPQRnsPeQ==
ccount@^1.0.0, ccount@^1.0.3:
version "1.1.0"