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

Install prepackaged extensions on Positron Desktop #6302

Closed
melissa-barca opened this issue Feb 11, 2025 · 4 comments
Closed

Install prepackaged extensions on Positron Desktop #6302

melissa-barca opened this issue Feb 11, 2025 · 4 comments
Assignees
Labels
area: core Issues related to Core category.

Comments

@melissa-barca
Copy link
Contributor

Expand the Code OSS functionality that allows user-configured preinstalled extensions to install the extensions prepackaged with Positron from #6301

This issue should cover macos, windows, and linux desktop.

@denis-or
Copy link

Hi,

If I may ask a question, is it possible to take extensions used by Positron, and only by Positron, and use them in VS Code? I ask because I use VS Code on my Windows ARM, which does not yet have a Positron version, and I would like to configure it the same way as Positron.

Thank you!

@jmcphers
Copy link
Collaborator

Which extensions in particular are you interested in?

I think you'll generally find that this is not possible because Positron's extensions call Positron APIs (which don't exist in VS Code), and many of Positron's features (e.g. the Data Explorer, Variables, Console, Plots, etc.) are part of Positron itself rather than implemented in an extension.

@denis-or
Copy link

Sorry for the delayed response.

I understood your explanation.

Well, I really liked the structure of Positron and it fits very well with my data science routine. I have a Windows ARM device with a Snapdragon chip, and I can't install Positron on it. That's why I would like to make my VSCode as close as possible to Positron, and I was wondering if it would be possible to use any of the extensions that Positron uses.

Weel, I think this isn't possible. Maybe I'm being overly optimistic 😄

melissa-barca added a commit that referenced this issue Feb 26, 2025
Addresses #6302, #6301, #6305, #5315

Introduces the concept of "bootstrapped extensions". Bundles the
following extensions as VSIX files with Positron:
- Black
- Posit Publisher
- Shiny(Workbench only)
- Quarto
- ms-toolsai.jupyter-keymap
- ms-toolsai.vscode-jupyter-cell-tags
- ms-toolsai.vscode-jupyter-slideshow
- ms-toolsai.jupyter
- ms-pyright.pyright
- ms-python.debugpy

When a user starts up Positron after first installing it or a version
change (upgrade or downgrade), Positron will install the bootstrapped
extensions for the users. Users will then be able to manage the
extensions (upgrade, downgrade, uninstall, disable) themselves. Positron
will always prefer whichever version of the extension in newer (bundled
or user). When a user downgrades the extension, Positron will attempt to
upgrade to the latest packaged version on the next upgrade, but not next
Positron launch.

I changed the approach slightly from my initial spec. The initial spec
built on top of the existing
[defaultExtensionInitializer](https://github.com/posit-dev/positron/blob/main/src/vs/code/electron-utility/sharedProcess/contrib/defaultExtensionsInitializer.ts).
This approach is heavily inspired by that class but provides the server
and desktop logic in
src/vs/platform/extensionManagement/node/positronBootstrapExtensionsInitializer.ts.

### Release Notes

#### New Features

- Packages several extensions that were previously shipped a built-in
extensions as user managed extensions that are installed on first
launch.

### QA Notes
@:web
austin3dickey pushed a commit that referenced this issue Feb 27, 2025
Addresses #6302, #6301, #6305, #5315

Introduces the concept of "bootstrapped extensions". Bundles the
following extensions as VSIX files with Positron:
- Black
- Posit Publisher
- Shiny(Workbench only)
- Quarto
- ms-toolsai.jupyter-keymap
- ms-toolsai.vscode-jupyter-cell-tags
- ms-toolsai.vscode-jupyter-slideshow
- ms-toolsai.jupyter
- ms-pyright.pyright
- ms-python.debugpy

When a user starts up Positron after first installing it or a version
change (upgrade or downgrade), Positron will install the bootstrapped
extensions for the users. Users will then be able to manage the
extensions (upgrade, downgrade, uninstall, disable) themselves. Positron
will always prefer whichever version of the extension in newer (bundled
or user). When a user downgrades the extension, Positron will attempt to
upgrade to the latest packaged version on the next upgrade, but not next
Positron launch.

I changed the approach slightly from my initial spec. The initial spec
built on top of the existing
[defaultExtensionInitializer](https://github.com/posit-dev/positron/blob/main/src/vs/code/electron-utility/sharedProcess/contrib/defaultExtensionsInitializer.ts).
This approach is heavily inspired by that class but provides the server
and desktop logic in
src/vs/platform/extensionManagement/node/positronBootstrapExtensionsInitializer.ts.

### Release Notes

#### New Features

- Packages several extensions that were previously shipped a built-in
extensions as user managed extensions that are installed on first
launch.

### QA Notes
@:web
@jonvanausdeln
Copy link
Contributor

Verified Fixed

Positron Version(s) : 2025.03.0-116
OS Version(s) : Windows 11

Test scenario(s)

Extensions are present and all tests are passing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: core Issues related to Core category.
Projects
None yet
Development

No branches or pull requests

5 participants