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

Enable pulling pre-release pylance into PTVS builds #7835

Closed
7 tasks done
StellaHuang95 opened this issue Feb 21, 2024 · 4 comments
Closed
7 tasks done

Enable pulling pre-release pylance into PTVS builds #7835

StellaHuang95 opened this issue Feb 21, 2024 · 4 comments
Assignees

Comments

@StellaHuang95
Copy link
Contributor

StellaHuang95 commented Feb 21, 2024

Goal:
Create vsix that uses the latest prerelease Pylance bits for CTI's non-sign off testing.

Implementation:
Set up some configurable build options that can pull pylance from the internal feed instead of the stable one, create and upload vsix as a build artifact and CTI should be able to test that way.

** Progress **

Bundling into VS

  • Create a VS bootstrapper with our payload injected (see commented step in PTVS pipeline)
  • Publish the bootstrapper as a build artifact
  • Make sure CTI can consume the bootstrapper

The bootstrapper work is complete with #7867.
It can be found in the pipeline artifact called "bootstrapper".

Getting pre-release pylance

  • Add the prerelease flag to PreBuild.ps1. This is ONLY used for tagging the build. The version is still used to download pylance.
  • Tag the build with "Pylance-Stable" for non-prerelease builds only
  • Change release pipeline trigger, add "Pylance-Stable" tag filter
  • Change pylance release.yml to launch PTVS pipeline on ALL releases, pass in pre-release flag when appropriate
@StellaHuang95
Copy link
Contributor Author

Suggestion from Erik:

"Regarding publishing Pylance prerelease builds to npm, I think you said that Adam had suggested having two separate feeds (stable and prerelease). But I think we can achieve the same thing with tags. If you look at the raw feed json (see links below), you can see a list of dist-tags at the top which point to the latest version that was published with each tag.

The DevDiv feed has "latest" (which I believe is the latest version published with no tag, aka stable), "pre", and "dev" (which seems to be old/dead), whereas the msft_consumption feed just has "latest" because we've never published prerelease builds there.

I think if we started publishing prerelease builds using the "pre" tag, PTVS could update its logic to pull either "latest" or latest "pre" and accomplish the same thing with less work. At least it would be less work on Pylance's side.

DevDiv: devdiv.pkgs.visualstudio.com/_packaging/Pylance/npm/registry/@pylance/pylance
msft_consumption: pkgs.dev.azure.com/azure-public/vside/_packaging/msft_consumption/npm/registry/@pylance/pylance"

@AdamYoblick
Copy link
Member

That would definitely be less work for everyone. Because then I'm just changing the version string being pulled, which is what we already do when overriding to an older version when specified.

@StellaHuang95
Copy link
Contributor Author

We will now start publishing and tagging prerelease pylance to the feed. See https://github.com/microsoft/pyrx/pull/4735

@AdamYoblick AdamYoblick changed the title Creating vsix with latest prerelease pylance for testing Enable pulling pre-release pylance into PTVS builds Apr 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants