-
Notifications
You must be signed in to change notification settings - Fork 295
Experiments
Don Jayamanne edited this page Oct 29, 2020
·
1 revision
We have A/B testing in the extension to perform staged rollouts of new functionality. If a user belongs to an experiment group, they will see some special features which are visible only to the users of that group. This way we can test a new feature on a subset of users and making sure it's stable, before releasing it to all users. Check out Wikipedia for more details on A/B experiments.
We initially implemented our own A/B testing framework, however it turns out there is a common A/B testing framework used by other teams, for example the Docker extension. Now that we've integrated it (see implementation), we're deprecating our custom implementation.
Common key specs include but are not limited to:
- Experiment groups are logged in the beginning when the extension loads
- If the user is in an experiment, ensure that experiments are used in the first session itself
- If the user opted out of telemetry, then they are also opted out of A/B testing
- Conditional behavior depending on whether an experiment is enabled or not: for example if the user is in the “NativeNotebookEditor” experiment, then the extension uses the new VS Code Native Notebook editor to view/edit notebooks (*.ipynb files).
- Add the experiment name to the
"jupyter.experiments.optInto"
and"jupyter.experiments.optOutFrom"
keys inpackage.json
:
"jupyter.experiments.optInto": {
"type": "array",
"default": [],
"items": {
"enum": [
"NativeNotebookEditor",
- Contribution
- Source Code Organization
- Coding Standards
- Profiling
- Coding Guidelines
- Component Governance
- Writing tests
- Kernels
- Intellisense
- Debugging
- IPyWidgets
- Extensibility
- Module Dependencies
- Errors thrown
- Jupyter API
- Variable fetching
- Import / Export
- React Webviews: Variable Viewer, Data Viewer, and Plot Viewer
- FAQ
- Kernel Crashes
- Jupyter issues in the Python Interactive Window or Notebook Editor
- Finding the code that is causing high CPU load in production
- How to install extensions from VSIX when using Remote VS Code
- How to connect to a jupyter server for running code in vscode.dev
- Jupyter Kernels and the Jupyter Extension