Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for VS Code's experiment service #11979

Merged
merged 28 commits into from
Jun 2, 2020

Conversation

kimadeline
Copy link

@kimadeline kimadeline commented May 25, 2020

For #10790

We are not going to modify the places that are currently using IExperimentsManager, we are going to leave them as-is and let these old experiments run their course. New experiments should use IExperimentService when it's ready though. When all experiments being run with IExperimentsManager are done (no more code using it) we'll remove this class.


  • Pull request represents a single change (i.e. not fixing disparate/unrelated things in a single PR).
  • Title summarizes what is changing.
  • Has a news entry file (remember to thank yourself!).
  • Appropriate comments and documentation strings in the code.
  • Has sufficient logging.
  • Has telemetry for enhancements.
  • Unit tests & system/integration tests are added/updated.
  • Test plan is updated as appropriate.
  • package-lock.json has been regenerated by running npm install (if dependencies have changed).
  • The wiki is updated with any design decisions/details.

@kimadeline kimadeline changed the title 10790 exp service Add support for VS Code's experiment service May 26, 2020
@codecov-commenter
Copy link

Codecov Report

❗ No coverage uploaded for pull request base (master@c01683f). Click here to learn what that means.
The diff coverage is n/a.

@kimadeline kimadeline marked this pull request as ready for review May 27, 2020 23:12
Copy link
Member

@karthiknadig karthiknadig left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see that we have two things now IExperimentService and IExperimentManager. I think we need to mark the old way of working with experiments as deprecated. If possible we should do it as a part of turning on the new experiments infrastructure.

src/client/common/experiments/service.ts Outdated Show resolved Hide resolved
@kimadeline
Copy link
Author

kimadeline commented May 28, 2020

Will use the https://palantir.github.io/tslint/rules/deprecation/ tslint rule to mark things as deprecated (it will display a warning) in a separate PR:

image

src/client/common/experiments/telemetry.ts Show resolved Hide resolved
src/client/common/experiments/service.ts Show resolved Hide resolved
src/client/common/experiments/telemetry.ts Outdated Show resolved Hide resolved
src/client/common/experiments/telemetry.ts Outdated Show resolved Hide resolved
@@ -253,6 +255,7 @@ suite('Installer', () => {
ioc.serviceManager.addSingleton<ILiveShareApi>(ILiveShareApi, LiveShareApi);
ioc.serviceManager.addSingleton<ICryptoUtils>(ICryptoUtils, CryptoUtils);
ioc.serviceManager.addSingleton<IExperimentsManager>(IExperimentsManager, ExperimentsManager);
ioc.serviceManager.addSingleton<IExperimentService>(IExperimentService, ExperimentService);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wy create a duplicate class and interface when we alrady have IExperimentsManager that can be replaced?
Also don't see the purpose of having both (old & new)
Don't see this new API being used anywhere..
Also, it looks like the inExperiment method is asynchronous, where as existing code relies on this to be synchronous.

Copy link
Author

@kimadeline kimadeline May 28, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're not going to replace IExperimentsManager straight away, we'll remove it when we are done with all the experiments currently using it. As such we are going to start deprecating it without removing it.

Don't see this new API being used anywhere.

You are correct, it's not used anywhere at the moment. The step following this integration is to run an A/A experiment, and then afterwards everybody can start using it.

it looks like the inExperiment method is asynchronous, where as existing code relies on this to be synchronous.

Yup, seems like the framework's way of checking whether we are in an experiment or not is async, something to keep in mind when we start using it.

📖 I'll write down a short quickstart guide once we're ready to use it

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

write down a short quickstart guide once we're ready to use it

No i don't think thats necessary. The API is self explanatory. Just realized that this will be a breaking change in some places.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that we're planning to add a sync way of checking for experiment info in the near future.

Also, if you instantiate ExperimentationService, that's the only change you need to make in code to run an A/A experiment. Is there any reason to not do that as part of this PR?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we're planning to add a sync way of checking for experiment info in the near future.

🥳

Is there any reason to not do that as part of this PR?

What do you mean? ExprimentationService is instantiated in src/client/common/serviceRegistry.ts.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, great! I missed that.

src/client/common/experiments/service.ts Outdated Show resolved Hide resolved
src/client/common/experiments/service.ts Outdated Show resolved Hide resolved
src/test/common/experiments/service.unit.test.ts Outdated Show resolved Hide resolved
src/test/common/experiments/service.unit.test.ts Outdated Show resolved Hide resolved
kimadeline and others added 2 commits May 28, 2020 13:19
Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>
src/client/common/experiments/telemetry.ts Show resolved Hide resolved
@@ -253,6 +255,7 @@ suite('Installer', () => {
ioc.serviceManager.addSingleton<ILiveShareApi>(ILiveShareApi, LiveShareApi);
ioc.serviceManager.addSingleton<ICryptoUtils>(ICryptoUtils, CryptoUtils);
ioc.serviceManager.addSingleton<IExperimentsManager>(IExperimentsManager, ExperimentsManager);
ioc.serviceManager.addSingleton<IExperimentService>(IExperimentService, ExperimentService);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that we're planning to add a sync way of checking for experiment info in the near future.

Also, if you instantiate ExperimentationService, that's the only change you need to make in code to run an A/A experiment. Is there any reason to not do that as part of this PR?

src/client/common/experiments/service.ts Show resolved Hide resolved
src/client/common/experiments/service.ts Show resolved Hide resolved
src/client/common/experiments/service.ts Show resolved Hide resolved
@@ -123,6 +132,9 @@ export function sendTelemetryEvent<P extends IEventNamePropertyMapping, E extend
});
}

// Add shared properties to telemetry props (we may overwrite existing ones).
Object.assign(customProperties, sharedProperties);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you please clarify the purpose of sharedProperties?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's required by the telemetry library:

The setSharedProperty method is intended to add the shared property to all telemetry being sent from your extension, not just events being sent by the experimentation package.

#11979 (comment)

Copy link

@karrtikr karrtikr Jun 2, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand, but what I meant was if you have any idea why is it required, what kind of properties are those, etc.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The properties that get attached to your telemetry events just specify what flights the user is a part of - this allows you to compute A/B metrics based off of any of your telemetry events. Without this, you'd have to do some complicated joining or only compute metrics based off of events that have the flight info attached to them.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see, makes sense. Mind adding this to the property description @kimadeline ?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this would be more suited in the integration guide that I am currently writing.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's just that it's not clear when reading the code on what a "shared property" is.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would've expected this to be addressed before merging.

src/test/telemetry/index.unit.test.ts Show resolved Hide resolved
@kimadeline kimadeline requested a review from karrtikr June 2, 2020 15:33
@sonarcloud
Copy link

sonarcloud bot commented Jun 2, 2020

Kudos, SonarCloud Quality Gate passed!

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities (and Security Hotspot 0 Security Hotspots to review)
Code Smell A 0 Code Smells

No Coverage information No Coverage information
0.0% 0.0% Duplication

@kimadeline kimadeline merged commit c821c9e into microsoft:master Jun 2, 2020
@kimadeline kimadeline deleted the 10008-exp-service branch June 2, 2020 17:02
karthiknadig pushed a commit to karthiknadig/vscode-python that referenced this pull request Jun 5, 2020
* Add npm package
* News entry
* experiments.ts -> experiments/manager.ts
* Wrong issue number
* eexperimentGroups -> experiments/experimentGroups
* Move experiments.unit.tests.ts -> experiments/
* Commit new files
* Merge gone sideways
* Add types
* Add opt in/out handling
* Activation (service registry)
* Don't pin tas-client to one version
* Unit tests + fixes
* Lol forgot to remove a comment + add headers
* Forgot 'use strict' in service.ts
* Use IApplicationEnvironment instead of IExtensions
* Apply suggestions from code review
Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>
* Remove unnecessary formatted props
* n e v e r m i n d
* Aight fixed it
* flight -> experiment
* Check stub calls instead of ctor impl
* removed getExperimentService stub check
* Set shared properties for all telemetry events
* Add test for shared properties

Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>
karthiknadig added a commit that referenced this pull request Jun 5, 2020
* User cannot belong to all experiments in an experiment group (#11945)

* 10790 prep - Create an experiments/ folder  (#11980)

* experiments.ts -> experiments/manager.ts
* eexperimentGroups -> experiments/experimentGroups
* test/experiments.u.t -> test/experiments/manager.u.t
* experimentGroups -> groups
* Whoops committed one file too many

* Add support for VS Code's experiment service (#11979)

* Add npm package
* News entry
* experiments.ts -> experiments/manager.ts
* Wrong issue number
* eexperimentGroups -> experiments/experimentGroups
* Move experiments.unit.tests.ts -> experiments/
* Commit new files
* Merge gone sideways
* Add types
* Add opt in/out handling
* Activation (service registry)
* Don't pin tas-client to one version
* Unit tests + fixes
* Lol forgot to remove a comment + add headers
* Forgot 'use strict' in service.ts
* Use IApplicationEnvironment instead of IExtensions
* Apply suggestions from code review
Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>
* Remove unnecessary formatted props
* n e v e r m i n d
* Aight fixed it
* flight -> experiment
* Check stub calls instead of ctor impl
* removed getExperimentService stub check
* Set shared properties for all telemetry events
* Add test for shared properties

Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>

* Fix merge issues

* Fix index unit tests

* Revert "Fix index unit tests"

This reverts commit 2fb61fc.

* Make MPLS and vscode-extension-telemetry work together 🤝 (#11823)

* Revert "Revert vscode-extension-telemetry changes for the release (#11602)"
This reverts commit 71d1793.
* Remove entry from changelog + add new news entry
* Update LS code to use periods instead of slashes
* Revert "Update LS code to use periods instead of slashes"
This reverts commit 1356651.
* Replace slashes before sending telemetry instead
* Too fast too furious

* Fix more merge issues

Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>
Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>
karthiknadig added a commit that referenced this pull request Jun 11, 2020
* Revert vscode-extension-telemetry changes for the release (#11602) (#11656)

* Revert "Fix slashes in telemetry unit tests (#11572)"

This reverts commit 7431c9c.

* Revert "Use vscode-extension-telemetry for our exceptions & error telemetry (#11524)"

This reverts commit d5065e6.

* Remove from changelog

* Port storage fix to release branch (#11673)

* Fix storage not being used (#11649)

* Fix storage not being used

* Add disposable to storage so it won't write after shutdown

* Fix dirty title

* Hack to get tests to pass

* Another way to get run all to not interfere

* Update changelog

* Port scrolling fix to release (#11688)

* Fix scrolling (#11681)

* Fix scrolling

* Review feedback - fix scrolling on expand/collapse

* Update changelog

* Update package.json

Co-authored-by: Jim Griesmer <jimgries@microsoft.com>

* Cherry-pick pipenv changes and pythonpath prompt changes to release (#11700)

* Show the prompt again if user clicks on more info (#11664)

* Show the prompt again if user clicks on more info

* Review feedback

* Use Learn more as text for the link.

* Leave pipenv in a corner until the user decides to select an interpreter (#11654)

* add onSuggestion option
* Swap onActivation with onSuggestion
* Update unit tests
* Remove registration of IPipenvService
* Move didTriggerInterpreterSuggestions logic inside pipenv locator
* Fix existing unit tests
* Add new unit tests
* Replace typemoq any param with object
* Shorten the tests
* Fix warning
* Duplicate teardown

Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>

* Update extension version (#11730)

* Update extension version

* Update date in changelog.

* Update change log with additional notes. (#11764)

* Cherry picks and version updates for bug fix release (#11878)

* Do not execute shebang as an interpreter until user has clicked on the codelens enclosing the shebang (#11816)

* Do not execute shebang as an interpreter until user has clicked on the codelens enclosing the shebang

* Rename

* Oops

* Update src/test/providers/shebangCodeLenseProvider.unit.test.ts

Co-authored-by: Karthik Nadig <kanadig@microsoft.com>

Co-authored-by: Karthik Nadig <kanadig@microsoft.com>

* Update version and change log for bugfix release

Co-authored-by: Kartik Raj <karraj@microsoft.com>

* Cherry-pick ExP platform work from master (#12160)

* User cannot belong to all experiments in an experiment group (#11945)

* 10790 prep - Create an experiments/ folder  (#11980)

* experiments.ts -> experiments/manager.ts
* eexperimentGroups -> experiments/experimentGroups
* test/experiments.u.t -> test/experiments/manager.u.t
* experimentGroups -> groups
* Whoops committed one file too many

* Add support for VS Code's experiment service (#11979)

* Add npm package
* News entry
* experiments.ts -> experiments/manager.ts
* Wrong issue number
* eexperimentGroups -> experiments/experimentGroups
* Move experiments.unit.tests.ts -> experiments/
* Commit new files
* Merge gone sideways
* Add types
* Add opt in/out handling
* Activation (service registry)
* Don't pin tas-client to one version
* Unit tests + fixes
* Lol forgot to remove a comment + add headers
* Forgot 'use strict' in service.ts
* Use IApplicationEnvironment instead of IExtensions
* Apply suggestions from code review
Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>
* Remove unnecessary formatted props
* n e v e r m i n d
* Aight fixed it
* flight -> experiment
* Check stub calls instead of ctor impl
* removed getExperimentService stub check
* Set shared properties for all telemetry events
* Add test for shared properties

Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>

* Fix merge issues

* Fix index unit tests

* Revert "Fix index unit tests"

This reverts commit 2fb61fc.

* Make MPLS and vscode-extension-telemetry work together 🤝 (#11823)

* Revert "Revert vscode-extension-telemetry changes for the release (#11602)"
This reverts commit 71d1793.
* Remove entry from changelog + add new news entry
* Update LS code to use periods instead of slashes
* Revert "Update LS code to use periods instead of slashes"
This reverts commit 1356651.
* Replace slashes before sending telemetry instead
* Too fast too furious

* Fix more merge issues

Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>
Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>

* Update version and changelog for point release (#12171)

* Ensure extension features are started when in Deprecate PythonPath experiment and opening a file without any folder opened (#12182)

* Ensure extension features are started when in Deprecate PythonPath experiment and opening a file without any folder opened.

* Added comments

* Update change log (#12190)

* Cherry pick fix for hasInterpreters and update change log (#12198)

* Double-check for interpreters when running diagnostics (#12158)

* Get interpreters if hasInterpreters returns false
* Undo ignoreErrors()
* Add unit tests
* Fixed tests
* Newline

* Fix merge issues.

* Update change log

Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>

* Update version for point release (#12259)

Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>
Co-authored-by: Rich Chiodo <rchiodo@users.noreply.github.com>
Co-authored-by: Jim Griesmer <jimgries@microsoft.com>
Co-authored-by: Kartik Raj <karraj@microsoft.com>
Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>
karthiknadig added a commit to karthiknadig/vscode-python that referenced this pull request Jun 11, 2020
* Revert vscode-extension-telemetry changes for the release (microsoft#11602) (microsoft#11656)

* Revert "Fix slashes in telemetry unit tests (microsoft#11572)"

This reverts commit 7431c9c.

* Revert "Use vscode-extension-telemetry for our exceptions & error telemetry (microsoft#11524)"

This reverts commit d5065e6.

* Remove from changelog

* Port storage fix to release branch (microsoft#11673)

* Fix storage not being used (microsoft#11649)

* Fix storage not being used

* Add disposable to storage so it won't write after shutdown

* Fix dirty title

* Hack to get tests to pass

* Another way to get run all to not interfere

* Update changelog

* Port scrolling fix to release (microsoft#11688)

* Fix scrolling (microsoft#11681)

* Fix scrolling

* Review feedback - fix scrolling on expand/collapse

* Update changelog

* Update package.json

Co-authored-by: Jim Griesmer <jimgries@microsoft.com>

* Cherry-pick pipenv changes and pythonpath prompt changes to release (microsoft#11700)

* Show the prompt again if user clicks on more info (microsoft#11664)

* Show the prompt again if user clicks on more info

* Review feedback

* Use Learn more as text for the link.

* Leave pipenv in a corner until the user decides to select an interpreter (microsoft#11654)

* add onSuggestion option
* Swap onActivation with onSuggestion
* Update unit tests
* Remove registration of IPipenvService
* Move didTriggerInterpreterSuggestions logic inside pipenv locator
* Fix existing unit tests
* Add new unit tests
* Replace typemoq any param with object
* Shorten the tests
* Fix warning
* Duplicate teardown

Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>

* Update extension version (microsoft#11730)

* Update extension version

* Update date in changelog.

* Update change log with additional notes. (microsoft#11764)

* Cherry picks and version updates for bug fix release (microsoft#11878)

* Do not execute shebang as an interpreter until user has clicked on the codelens enclosing the shebang (microsoft#11816)

* Do not execute shebang as an interpreter until user has clicked on the codelens enclosing the shebang

* Rename

* Oops

* Update src/test/providers/shebangCodeLenseProvider.unit.test.ts

Co-authored-by: Karthik Nadig <kanadig@microsoft.com>

Co-authored-by: Karthik Nadig <kanadig@microsoft.com>

* Update version and change log for bugfix release

Co-authored-by: Kartik Raj <karraj@microsoft.com>

* Cherry-pick ExP platform work from master (microsoft#12160)

* User cannot belong to all experiments in an experiment group (microsoft#11945)

* 10790 prep - Create an experiments/ folder  (microsoft#11980)

* experiments.ts -> experiments/manager.ts
* eexperimentGroups -> experiments/experimentGroups
* test/experiments.u.t -> test/experiments/manager.u.t
* experimentGroups -> groups
* Whoops committed one file too many

* Add support for VS Code's experiment service (microsoft#11979)

* Add npm package
* News entry
* experiments.ts -> experiments/manager.ts
* Wrong issue number
* eexperimentGroups -> experiments/experimentGroups
* Move experiments.unit.tests.ts -> experiments/
* Commit new files
* Merge gone sideways
* Add types
* Add opt in/out handling
* Activation (service registry)
* Don't pin tas-client to one version
* Unit tests + fixes
* Lol forgot to remove a comment + add headers
* Forgot 'use strict' in service.ts
* Use IApplicationEnvironment instead of IExtensions
* Apply suggestions from code review
Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>
* Remove unnecessary formatted props
* n e v e r m i n d
* Aight fixed it
* flight -> experiment
* Check stub calls instead of ctor impl
* removed getExperimentService stub check
* Set shared properties for all telemetry events
* Add test for shared properties

Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>

* Fix merge issues

* Fix index unit tests

* Revert "Fix index unit tests"

This reverts commit 2fb61fc.

* Make MPLS and vscode-extension-telemetry work together 🤝 (microsoft#11823)

* Revert "Revert vscode-extension-telemetry changes for the release (microsoft#11602)"
This reverts commit 71d1793.
* Remove entry from changelog + add new news entry
* Update LS code to use periods instead of slashes
* Revert "Update LS code to use periods instead of slashes"
This reverts commit 1356651.
* Replace slashes before sending telemetry instead
* Too fast too furious

* Fix more merge issues

Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>
Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>

* Update version and changelog for point release (microsoft#12171)

* Ensure extension features are started when in Deprecate PythonPath experiment and opening a file without any folder opened (microsoft#12182)

* Ensure extension features are started when in Deprecate PythonPath experiment and opening a file without any folder opened.

* Added comments

* Update change log (microsoft#12190)

* Cherry pick fix for hasInterpreters and update change log (microsoft#12198)

* Double-check for interpreters when running diagnostics (microsoft#12158)

* Get interpreters if hasInterpreters returns false
* Undo ignoreErrors()
* Add unit tests
* Fixed tests
* Newline

* Fix merge issues.

* Update change log

Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>

* Update version for point release (microsoft#12259)

Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>
Co-authored-by: Rich Chiodo <rchiodo@users.noreply.github.com>
Co-authored-by: Jim Griesmer <jimgries@microsoft.com>
Co-authored-by: Kartik Raj <karraj@microsoft.com>
Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>
karthiknadig added a commit that referenced this pull request Jun 11, 2020
* Merge stuff from may release back into master (#12233)

* Revert vscode-extension-telemetry changes for the release (#11602) (#11656)

* Revert "Fix slashes in telemetry unit tests (#11572)"

This reverts commit 7431c9c.

* Revert "Use vscode-extension-telemetry for our exceptions & error telemetry (#11524)"

This reverts commit d5065e6.

* Remove from changelog

* Port storage fix to release branch (#11673)

* Fix storage not being used (#11649)

* Fix storage not being used

* Add disposable to storage so it won't write after shutdown

* Fix dirty title

* Hack to get tests to pass

* Another way to get run all to not interfere

* Update changelog

* Port scrolling fix to release (#11688)

* Fix scrolling (#11681)

* Fix scrolling

* Review feedback - fix scrolling on expand/collapse

* Update changelog

* Update package.json

Co-authored-by: Jim Griesmer <jimgries@microsoft.com>

* Cherry-pick pipenv changes and pythonpath prompt changes to release (#11700)

* Show the prompt again if user clicks on more info (#11664)

* Show the prompt again if user clicks on more info

* Review feedback

* Use Learn more as text for the link.

* Leave pipenv in a corner until the user decides to select an interpreter (#11654)

* add onSuggestion option
* Swap onActivation with onSuggestion
* Update unit tests
* Remove registration of IPipenvService
* Move didTriggerInterpreterSuggestions logic inside pipenv locator
* Fix existing unit tests
* Add new unit tests
* Replace typemoq any param with object
* Shorten the tests
* Fix warning
* Duplicate teardown

Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>

* Update extension version (#11730)

* Update extension version

* Update date in changelog.

* Update change log with additional notes. (#11764)

* Cherry picks and version updates for bug fix release (#11878)

* Do not execute shebang as an interpreter until user has clicked on the codelens enclosing the shebang (#11816)

* Do not execute shebang as an interpreter until user has clicked on the codelens enclosing the shebang

* Rename

* Oops

* Update src/test/providers/shebangCodeLenseProvider.unit.test.ts

Co-authored-by: Karthik Nadig <kanadig@microsoft.com>

Co-authored-by: Karthik Nadig <kanadig@microsoft.com>

* Update version and change log for bugfix release

Co-authored-by: Kartik Raj <karraj@microsoft.com>

* Cherry-pick ExP platform work from master (#12160)

* User cannot belong to all experiments in an experiment group (#11945)

* 10790 prep - Create an experiments/ folder  (#11980)

* experiments.ts -> experiments/manager.ts
* eexperimentGroups -> experiments/experimentGroups
* test/experiments.u.t -> test/experiments/manager.u.t
* experimentGroups -> groups
* Whoops committed one file too many

* Add support for VS Code's experiment service (#11979)

* Add npm package
* News entry
* experiments.ts -> experiments/manager.ts
* Wrong issue number
* eexperimentGroups -> experiments/experimentGroups
* Move experiments.unit.tests.ts -> experiments/
* Commit new files
* Merge gone sideways
* Add types
* Add opt in/out handling
* Activation (service registry)
* Don't pin tas-client to one version
* Unit tests + fixes
* Lol forgot to remove a comment + add headers
* Forgot 'use strict' in service.ts
* Use IApplicationEnvironment instead of IExtensions
* Apply suggestions from code review
Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>
* Remove unnecessary formatted props
* n e v e r m i n d
* Aight fixed it
* flight -> experiment
* Check stub calls instead of ctor impl
* removed getExperimentService stub check
* Set shared properties for all telemetry events
* Add test for shared properties

Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>

* Fix merge issues

* Fix index unit tests

* Revert "Fix index unit tests"

This reverts commit 2fb61fc.

* Make MPLS and vscode-extension-telemetry work together 🤝 (#11823)

* Revert "Revert vscode-extension-telemetry changes for the release (#11602)"
This reverts commit 71d1793.
* Remove entry from changelog + add new news entry
* Update LS code to use periods instead of slashes
* Revert "Update LS code to use periods instead of slashes"
This reverts commit 1356651.
* Replace slashes before sending telemetry instead
* Too fast too furious

* Fix more merge issues

Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>
Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>

* Update version and changelog for point release (#12171)

* Ensure extension features are started when in Deprecate PythonPath experiment and opening a file without any folder opened (#12182)

* Ensure extension features are started when in Deprecate PythonPath experiment and opening a file without any folder opened.

* Added comments

* Update change log (#12190)

* Cherry pick fix for hasInterpreters and update change log (#12198)

* Double-check for interpreters when running diagnostics (#12158)

* Get interpreters if hasInterpreters returns false
* Undo ignoreErrors()
* Add unit tests
* Fixed tests
* Newline

* Fix merge issues.

* Update change log

Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>

* Update version for point release (#12259)

Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>
Co-authored-by: Rich Chiodo <rchiodo@users.noreply.github.com>
Co-authored-by: Jim Griesmer <jimgries@microsoft.com>
Co-authored-by: Kartik Raj <karraj@microsoft.com>
Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>

* Make Jedi the default LS (#12226)

* Make Jedi the default LS

* Add news entry

* Update change log

Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>
Co-authored-by: Rich Chiodo <rchiodo@users.noreply.github.com>
Co-authored-by: Jim Griesmer <jimgries@microsoft.com>
Co-authored-by: Kartik Raj <karraj@microsoft.com>
Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>
Co-authored-by: Luciana Abud <45497113+luabud@users.noreply.github.com>
rchiodo added a commit that referenced this pull request Jun 17, 2020
* Merge stuff from may release back into master (#12233)

* Revert vscode-extension-telemetry changes for the release (#11602) (#11656)

* Revert "Fix slashes in telemetry unit tests (#11572)"

This reverts commit 7431c9c.

* Revert "Use vscode-extension-telemetry for our exceptions & error telemetry (#11524)"

This reverts commit d5065e6.

* Remove from changelog

* Port storage fix to release branch (#11673)

* Fix storage not being used (#11649)

* Fix storage not being used

* Add disposable to storage so it won't write after shutdown

* Fix dirty title

* Hack to get tests to pass

* Another way to get run all to not interfere

* Update changelog

* Port scrolling fix to release (#11688)

* Fix scrolling (#11681)

* Fix scrolling

* Review feedback - fix scrolling on expand/collapse

* Update changelog

* Update package.json

Co-authored-by: Jim Griesmer <jimgries@microsoft.com>

* Cherry-pick pipenv changes and pythonpath prompt changes to release (#11700)

* Show the prompt again if user clicks on more info (#11664)

* Show the prompt again if user clicks on more info

* Review feedback

* Use Learn more as text for the link.

* Leave pipenv in a corner until the user decides to select an interpreter (#11654)

* add onSuggestion option
* Swap onActivation with onSuggestion
* Update unit tests
* Remove registration of IPipenvService
* Move didTriggerInterpreterSuggestions logic inside pipenv locator
* Fix existing unit tests
* Add new unit tests
* Replace typemoq any param with object
* Shorten the tests
* Fix warning
* Duplicate teardown

Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>

* Update extension version (#11730)

* Update extension version

* Update date in changelog.

* Update change log with additional notes. (#11764)

* Cherry picks and version updates for bug fix release (#11878)

* Do not execute shebang as an interpreter until user has clicked on the codelens enclosing the shebang (#11816)

* Do not execute shebang as an interpreter until user has clicked on the codelens enclosing the shebang

* Rename

* Oops

* Update src/test/providers/shebangCodeLenseProvider.unit.test.ts

Co-authored-by: Karthik Nadig <kanadig@microsoft.com>

Co-authored-by: Karthik Nadig <kanadig@microsoft.com>

* Update version and change log for bugfix release

Co-authored-by: Kartik Raj <karraj@microsoft.com>

* Cherry-pick ExP platform work from master (#12160)

* User cannot belong to all experiments in an experiment group (#11945)

* 10790 prep - Create an experiments/ folder  (#11980)

* experiments.ts -> experiments/manager.ts
* eexperimentGroups -> experiments/experimentGroups
* test/experiments.u.t -> test/experiments/manager.u.t
* experimentGroups -> groups
* Whoops committed one file too many

* Add support for VS Code's experiment service (#11979)

* Add npm package
* News entry
* experiments.ts -> experiments/manager.ts
* Wrong issue number
* eexperimentGroups -> experiments/experimentGroups
* Move experiments.unit.tests.ts -> experiments/
* Commit new files
* Merge gone sideways
* Add types
* Add opt in/out handling
* Activation (service registry)
* Don't pin tas-client to one version
* Unit tests + fixes
* Lol forgot to remove a comment + add headers
* Forgot 'use strict' in service.ts
* Use IApplicationEnvironment instead of IExtensions
* Apply suggestions from code review
Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>
* Remove unnecessary formatted props
* n e v e r m i n d
* Aight fixed it
* flight -> experiment
* Check stub calls instead of ctor impl
* removed getExperimentService stub check
* Set shared properties for all telemetry events
* Add test for shared properties

Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>

* Fix merge issues

* Fix index unit tests

* Revert "Fix index unit tests"

This reverts commit 2fb61fc.

* Make MPLS and vscode-extension-telemetry work together 🤝 (#11823)

* Revert "Revert vscode-extension-telemetry changes for the release (#11602)"
This reverts commit 71d1793.
* Remove entry from changelog + add new news entry
* Update LS code to use periods instead of slashes
* Revert "Update LS code to use periods instead of slashes"
This reverts commit 1356651.
* Replace slashes before sending telemetry instead
* Too fast too furious

* Fix more merge issues

Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>
Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>

* Update version and changelog for point release (#12171)

* Ensure extension features are started when in Deprecate PythonPath experiment and opening a file without any folder opened (#12182)

* Ensure extension features are started when in Deprecate PythonPath experiment and opening a file without any folder opened.

* Added comments

* Update change log (#12190)

* Cherry pick fix for hasInterpreters and update change log (#12198)

* Double-check for interpreters when running diagnostics (#12158)

* Get interpreters if hasInterpreters returns false
* Undo ignoreErrors()
* Add unit tests
* Fixed tests
* Newline

* Fix merge issues.

* Update change log

Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>

* Update version for point release (#12259)

Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>
Co-authored-by: Rich Chiodo <rchiodo@users.noreply.github.com>
Co-authored-by: Jim Griesmer <jimgries@microsoft.com>
Co-authored-by: Kartik Raj <karraj@microsoft.com>
Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>

* Make Jedi the default LS (#12226)

* Make Jedi the default LS

* Add news entry

* Update change log

Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>
Co-authored-by: Rich Chiodo <rchiodo@users.noreply.github.com>
Co-authored-by: Jim Griesmer <jimgries@microsoft.com>
Co-authored-by: Kartik Raj <karraj@microsoft.com>
Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>
Co-authored-by: Luciana Abud <45497113+luabud@users.noreply.github.com>
rchiodo added a commit that referenced this pull request Jun 17, 2020
* Port custom editor changes to release branch (#12222)

* Implement the changes necessary to use the new custom editor (#12188)

* Turn on custom editor again

* Fix copy problem

* Fix copy problem again

* Get undo/redo to work

* Some fixes for synching more than one editor

* Fix untitled. Fix timeouts

* fix command manager to not be used. Not necessary with temp path.
fix delete/insert commands to undo properly

* Fix functional test

* Add experiment

* Since package json is enabling proposed api, turn of notebooks with experiment

* Turn off proposed api

* Upgrade VS code to 1.45 so can use new api outside of insiders

* Update package.json dynamically

* Fix merge code to handle arrays

* Fix unit tests. Backup happens at the provider level now

* Fix hygiene

* Fix untitled to work for old provider too

* Some feedback and attempt to fix URI problem on linux/mac

* Review feedback

* Update changelog

* Remove news entry

* Port run by line stepping fix to release (#12223)

* fix continue event to run cell (#12211)

Co-authored-by: Ian Huff <ianhuff@alex-x230.northamerica.corp.microsoft.com>

* update changelog and delete news file

Co-authored-by: Ian Huff <ianhuff@alex-x230.northamerica.corp.microsoft.com>

* Port run by line stop becoming interrupt to the release branch (#12271)

* Run by line changes for release (#12256)

* Run by line changes for release

* Translate step tooltip and make sure F10 works outside of already debugging

* Update changelog

* Cherry-pick fixes from master to june release (#12282)

* Merge stuff from may release back into master (#12233)

* Revert vscode-extension-telemetry changes for the release (#11602) (#11656)

* Revert "Fix slashes in telemetry unit tests (#11572)"

This reverts commit 7431c9c.

* Revert "Use vscode-extension-telemetry for our exceptions & error telemetry (#11524)"

This reverts commit d5065e6.

* Remove from changelog

* Port storage fix to release branch (#11673)

* Fix storage not being used (#11649)

* Fix storage not being used

* Add disposable to storage so it won't write after shutdown

* Fix dirty title

* Hack to get tests to pass

* Another way to get run all to not interfere

* Update changelog

* Port scrolling fix to release (#11688)

* Fix scrolling (#11681)

* Fix scrolling

* Review feedback - fix scrolling on expand/collapse

* Update changelog

* Update package.json

Co-authored-by: Jim Griesmer <jimgries@microsoft.com>

* Cherry-pick pipenv changes and pythonpath prompt changes to release (#11700)

* Show the prompt again if user clicks on more info (#11664)

* Show the prompt again if user clicks on more info

* Review feedback

* Use Learn more as text for the link.

* Leave pipenv in a corner until the user decides to select an interpreter (#11654)

* add onSuggestion option
* Swap onActivation with onSuggestion
* Update unit tests
* Remove registration of IPipenvService
* Move didTriggerInterpreterSuggestions logic inside pipenv locator
* Fix existing unit tests
* Add new unit tests
* Replace typemoq any param with object
* Shorten the tests
* Fix warning
* Duplicate teardown

Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>

* Update extension version (#11730)

* Update extension version

* Update date in changelog.

* Update change log with additional notes. (#11764)

* Cherry picks and version updates for bug fix release (#11878)

* Do not execute shebang as an interpreter until user has clicked on the codelens enclosing the shebang (#11816)

* Do not execute shebang as an interpreter until user has clicked on the codelens enclosing the shebang

* Rename

* Oops

* Update src/test/providers/shebangCodeLenseProvider.unit.test.ts

Co-authored-by: Karthik Nadig <kanadig@microsoft.com>

Co-authored-by: Karthik Nadig <kanadig@microsoft.com>

* Update version and change log for bugfix release

Co-authored-by: Kartik Raj <karraj@microsoft.com>

* Cherry-pick ExP platform work from master (#12160)

* User cannot belong to all experiments in an experiment group (#11945)

* 10790 prep - Create an experiments/ folder  (#11980)

* experiments.ts -> experiments/manager.ts
* eexperimentGroups -> experiments/experimentGroups
* test/experiments.u.t -> test/experiments/manager.u.t
* experimentGroups -> groups
* Whoops committed one file too many

* Add support for VS Code's experiment service (#11979)

* Add npm package
* News entry
* experiments.ts -> experiments/manager.ts
* Wrong issue number
* eexperimentGroups -> experiments/experimentGroups
* Move experiments.unit.tests.ts -> experiments/
* Commit new files
* Merge gone sideways
* Add types
* Add opt in/out handling
* Activation (service registry)
* Don't pin tas-client to one version
* Unit tests + fixes
* Lol forgot to remove a comment + add headers
* Forgot 'use strict' in service.ts
* Use IApplicationEnvironment instead of IExtensions
* Apply suggestions from code review
Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>
* Remove unnecessary formatted props
* n e v e r m i n d
* Aight fixed it
* flight -> experiment
* Check stub calls instead of ctor impl
* removed getExperimentService stub check
* Set shared properties for all telemetry events
* Add test for shared properties

Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>

* Fix merge issues

* Fix index unit tests

* Revert "Fix index unit tests"

This reverts commit 2fb61fc.

* Make MPLS and vscode-extension-telemetry work together 🤝 (#11823)

* Revert "Revert vscode-extension-telemetry changes for the release (#11602)"
This reverts commit 71d1793.
* Remove entry from changelog + add new news entry
* Update LS code to use periods instead of slashes
* Revert "Update LS code to use periods instead of slashes"
This reverts commit 1356651.
* Replace slashes before sending telemetry instead
* Too fast too furious

* Fix more merge issues

Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>
Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>

* Update version and changelog for point release (#12171)

* Ensure extension features are started when in Deprecate PythonPath experiment and opening a file without any folder opened (#12182)

* Ensure extension features are started when in Deprecate PythonPath experiment and opening a file without any folder opened.

* Added comments

* Update change log (#12190)

* Cherry pick fix for hasInterpreters and update change log (#12198)

* Double-check for interpreters when running diagnostics (#12158)

* Get interpreters if hasInterpreters returns false
* Undo ignoreErrors()
* Add unit tests
* Fixed tests
* Newline

* Fix merge issues.

* Update change log

Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>

* Update version for point release (#12259)

Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>
Co-authored-by: Rich Chiodo <rchiodo@users.noreply.github.com>
Co-authored-by: Jim Griesmer <jimgries@microsoft.com>
Co-authored-by: Kartik Raj <karraj@microsoft.com>
Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>

* Make Jedi the default LS (#12226)

* Make Jedi the default LS

* Add news entry

* Update change log

Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>
Co-authored-by: Rich Chiodo <rchiodo@users.noreply.github.com>
Co-authored-by: Jim Griesmer <jimgries@microsoft.com>
Co-authored-by: Kartik Raj <karraj@microsoft.com>
Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>
Co-authored-by: Luciana Abud <45497113+luabud@users.noreply.github.com>

* Port raw auto start fix to release (#12288)

* don't return a connection from the raw provider for getOnly (#12277)

Co-authored-by: Ian Huff <ianhuff@alex-x230.northamerica.corp.microsoft.com>

* update changelog and remove news entry

Co-authored-by: Ian Huff <ianhuff@alex-x230.northamerica.corp.microsoft.com>

* Rchiodo/rel june update (#12356)

* Update security problems

* Update release version

* Update 3rd party notices

* Add font awesome back to third party notices

* ExP telemetry fixes (#12358)

* Use extension channel instead of VS Code channel
* Use publisher.name extension id (not just name)
* Update vscode-tas-client

Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>

* Port start page to release (#12365)

* start page experiment and fixes (#12339)

* move EnableStartPage enum to groups.ts

* - remove the command from the experiment
- fix the start page not loading when you go back
to a priviews version and then updating again
- update some labels in the start page
- update the sample notebook to include run by line
- the sample notebook now has a title
- updated the images from the sample notebook

* oops

* oops

* -add messages to open folder and workspace
-add telemetry to measure if the webview error happens
-give space between bullet points
-add link to enable experiments to the sample notebook
-get the release notes from a different file
-fix bullet points in the sample notebook
-sample notebook now opens with a counter in the title

* fix a unit test

* final changes

* final final changes

* final^3 changes

* removed run by line from the sample notebook

* Fixup after merge

Co-authored-by: David Kutugata <dakutuga@microsoft.com>

* Fixup bad merge

* Last changes before release (#12371)

Co-authored-by: Ian Huff <ianhu@microsoft.com>
Co-authored-by: Ian Huff <ianhuff@alex-x230.northamerica.corp.microsoft.com>
Co-authored-by: Karthik Nadig <kanadig@microsoft.com>
Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>
Co-authored-by: Jim Griesmer <jimgries@microsoft.com>
Co-authored-by: Kartik Raj <karraj@microsoft.com>
Co-authored-by: Don Jayamanne <don.jayamanne@yahoo.com>
Co-authored-by: Luciana Abud <45497113+luabud@users.noreply.github.com>
Co-authored-by: David Kutugata <dakutuga@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants