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

Bundle the Publisher extension #5315

Closed
jthomasmock opened this issue Nov 8, 2024 · 4 comments
Closed

Bundle the Publisher extension #5315

jthomasmock opened this issue Nov 8, 2024 · 4 comments
Assignees
Labels
area: builds Issues related to Builds category. area: core Issues related to Core category.

Comments

@jthomasmock
Copy link
Contributor

Now that the Posit Publisher is out of preview, we should bundle the extension in Positron.

@juliasilge juliasilge added area: builds Issues related to Builds category. area: core Issues related to Core category. labels Nov 14, 2024
@petetronic petetronic added this to the 2025.02.0 Pre-Release milestone Nov 18, 2024
@jthomasmock
Copy link
Contributor Author

Putting this into 2025.02 -- we'll likely want to have "included" but not really bundled extensions feature. Namely we'll want to have Publisher be easily updated by the user.

@petetronic
Copy link
Collaborator

Let's wait until bundled extension investigation given that is happening this milestone

@juliasilge
Copy link
Contributor

We have gotten a fair amount of internal feedback that people don't even know this extension exists. Folks have said they reopen their project in RStudio to publish it to Connect.

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
@midleman
Copy link
Contributor

midleman commented Mar 3, 2025

Verified Fixed

Positron Version(s) : 2025.03.0-116
OS Version(s) : MacOS

Test scenario(s)

Confirmed that Posit Publisher was bundled and installed as expected with build... Also noted it was mentioned on the Welcome screen as well. Note: I cleared out extensions rm -rf ~/.positron/extensions prior to install to confirm behavior.

Link(s) to test cases run or created:

n/a

@midleman midleman closed this as completed Mar 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: builds Issues related to Builds category. area: core Issues related to Core category.
Projects
None yet
Development

No branches or pull requests

5 participants