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

RFC: v2021.2.0 Release Goals #3178

Closed
4 tasks done
andyleejordan opened this issue Feb 11, 2021 · 44 comments · Fixed by #3207
Closed
4 tasks done

RFC: v2021.2.0 Release Goals #3178

andyleejordan opened this issue Feb 11, 2021 · 44 comments · Fixed by #3207
Assignees
Labels

Comments

@andyleejordan
Copy link
Member

andyleejordan commented Feb 11, 2021

Hi all,

As the new maintainer of the Visual Studio Code PowerShell Extension and PowerShell Editor Services, I am planning to make a new stable release this (or potentially next) month! The last stable release was June, 2020, or almost 9 months ago, with preview releases in July and September. Here are my specific goals for doing so:

Goals

  • Establish a baseline. As a new maintainer, I need to draw a line (i.e. version) between changes from the last stable release up to now for both the extension and the LSP server. This line needs to be drawn before I can safely make significant changes in order to facilitate isolating and debugging any reported issues.
  • Provide users a long-awaited update to reduce dependence on the preview releases. My hope is that telemetry data supports my hypothesis that the latest preview release has been sufficiently tested in the wild, and so is safe to move forward with quickly.
  • Learn and document our release process. By doing this upfront, I intend to empower myself to make more frequent releases with additional improvements.

Non-goals

  • Further alter the codebase before releasing, including underlying dependencies (except the LSP server, which I now maintain as well). I'd prefer to include major dependency updates in the first release after this one so that we can test it thoroughly.
  • Include prototype/experimental features, such as the VS Code Notebook APIs. With respect to the Notebook API in particular, per Remove Notebook API support #3176 we are unable to maintain it currently as it was unfinished, and so cannot be shipped in a stable release.
  • Maintain concurrent releases, such as a "preview" release alongside this stable release. I'd like to ship a single stable release, with previews as simply beta versions of upcoming releases.

Tasks

  • Ship latest preview as new stable (i.e., release off master)
  • Update incorrect extension metadata which indicates the stable release to be a preview build in the VS Code marketplace
  • Ship with PSScriptAnalyzer version 1.19.1 (free by shipping off master)
  • Release last preview at v2021.2.0-preview with PSES at v2.3.0-preview.3

RC

These are simply my first draft of goals, and they are open for discussion! Thanks ahead of time for your input.

@andyleejordan andyleejordan added this to the Committed-vNext milestone Feb 11, 2021
@andyleejordan andyleejordan self-assigned this Feb 11, 2021
@andyleejordan andyleejordan changed the title WIP: v2021.2.0 Release Goals RFC: v2021.2.0 Release Goals Feb 11, 2021
@andyleejordan
Copy link
Member Author

To this end my tentative plan is to simply release off the tip of master after reviewing as well as I can the changes made since v2020.6.0.

@SydneyhSmith
Copy link
Collaborator

Thanks for putting this together, really helpful for drawing clarity! One minor goal I'd like to add for this stable release is to update incorrect extension metadata which indicates the stable release to be a preview build in the VSCode marketplace

@rjmholt
Copy link
Contributor

rjmholt commented Feb 11, 2021

/cc @bergmeister @JamesWTruher @daxian-dbw

@bergmeister
Copy link
Contributor

bergmeister commented Feb 11, 2021

Just some useful information around the PSScriptAnalyzer version:
The stable version still ships with 1.19.0 but the preview version has shipped with 1.19.1 and proved many times that nearly all new issues (mostly formatting bugs) that were raised in the past months were already fixed in 1.19.1 (which is currently the latest version) and people confirmed by either switching to preview or installing the latest PSSA version locally (which always trumps the shipped version due to PSModulePath order). As of right now, I am not aware of any bug report that would show a regression from 1.19.0 to 1.19.1.
Therefore I feel strong about the next stable version to ship with PSSA 1.19.1, no matter if you base it off the last release branch or the last preview/master, in the latter case nothing needs to be done but in the former, you'd need to cherry-pick those PRs:

@ghost ghost added the Needs: Maintainer Attention Maintainer attention needed! label Feb 11, 2021
@JustinGrote
Copy link
Collaborator

@andschwa Welcome! And this looks like a reasonable forward plan to me, thank you for providing a roadmap.

@SeeminglyScience
Copy link
Collaborator

@andschwa Welcome to the project! 🙂

If you have any questions about the code base or project history feel free to tag me or reach out on the PowerShell discord.

@pcgeek86
Copy link
Contributor

I've been regularly checking to see if any new releases have been planned. Glad to finally see that someone is picking this up and taking ownership. I imagine that there are tons of people out there using vscode-powershell who would enjoy an improved user experience.

@andyleejordan
Copy link
Member Author

Thanks all for the warm welcome! I agree with including PSScriptAnalyzer version 1.19.1, and I wanted to release off the tip of master anyway so that works out. I've added a list of tasks to the issue description (by no means exhaustive, just as reminders).

@SydneyhSmith SydneyhSmith removed the Needs: Maintainer Attention Maintainer attention needed! label Feb 16, 2021
@andyleejordan andyleejordan pinned this issue Feb 19, 2021
@andyleejordan
Copy link
Member Author

Hey folks, I just published the last preview release to GitHub (and probably won't publish it to the marketplace since I'm going to roll it into a proper stable release early next week). I'm a bit new to this whole process, and learning as I go, so would you kindly please test it and let me know if you find any unexpected issues?

Check it out: v2021.2.0-preview (and the editor services at v2.3.0-preview.3)

@pcgeek86
Copy link
Contributor

Ohhhhh you bet I'll be checking out this preview build. Thanks for the heads up! 💪🏻

Question: you called out the Editor Services package separately, but my understanding is that it's included in the vscode-powershell extension, right? Just wanted to make sure this wasn't a two-step install process.

@ghost ghost added the Needs: Maintainer Attention Maintainer attention needed! label Feb 20, 2021
@PrzemyslawKlys
Copy link
Contributor

PrzemyslawKlys commented Feb 20, 2021

Thanks. I'm really hoping to get a more agile release process now.

  • The upgrade process went ok on Windows 10
  • Formatting/Intellisense seems to work
  • Upgrade process of PowerShell for Preview/7 went ok as well

If I hit any problems (that aren't already known), I'll let you know.

@andyleejordan
Copy link
Member Author

Question: you called out the Editor Services package separately, but my understanding is that it's included in the vscode-powershell extension, right? Just wanted to make sure this wasn't a two-step install process.

That is correct, it's bundled in the VSIX. I just called it out so you can see which code was built into the extension.

Thanks for testing!

@pcgeek86
Copy link
Contributor

I'm not sure if this is a regression or not, but when the extension starts up, my PowerShell profile script is not running. In Windows Terminal and the default terminal (non-integrated terminal) in VSCode all run my profile script as expected. @andschwa

@PrzemyslawKlys
Copy link
Contributor

As far as I know $Profile is different in VSCode, PowerShell 5.1, PowerShell 7 and so on. If you type $profile it will show totally different path.

@JustinGrote
Copy link
Collaborator

JustinGrote commented Feb 22, 2021

@pcgeek86 @PrzemyslawKlys this appears to be happening to me too with my CurrentUserAllHosts profile as well using the latest preview above. Doesn't happen on my other machine running normal preview.

Left is integrated console (profile not loading), right is normal terminal (profile loaded)

image

@PrzemyslawKlys
Copy link
Contributor

I've reverted to PowerShell Extension and it acts the same. To me it's behaving as it always was. Are you confirming my version or @pcgeek86's version @JustinGrote ? :-)

@JustinGrote
Copy link
Collaborator

@PrzemyslawKlys confirming @pcgeek86 that it is "not working". I just reverted to 2020.9.0 Preview and it works as expected again, so definitely something in the new vsix preview.
image

@PrzemyslawKlys
Copy link
Contributor

I see, the profile is different, but it's not getting executed either.

@andyleejordan
Copy link
Member Author

Ok, so I believe the prompt about changing environment variables didn't matter, other than that it loaded something old that worked, and then after I allowed it to proceed, loaded the new stuff which doesn't work.

The profile not loading has repro'd for me on:

  • Windows 10 with PowerShell 5 and VS Code 1.53.2
  • macOS with PowerShell 7 and VS Code Insiders

So I am looking at the commits between the last preview and this preview to see what may have changed.

@andyleejordan
Copy link
Member Author

andyleejordan commented Feb 22, 2021

Ok, @rjmholt and I tracked it down. There are more changes to the PowerShellEditorServices between preview.2 and preview.3 than I would have liked to see (as that means more untested code). In PowerShell/PowerShellEditorServices@d7c8ddc, the default value for EnableProfileLoading was changed from false to true in the server, causing this condition to stop evaluating as true (since that boolean required that the value change from false to true when the client's value of "true" was sent).

Rob has opened PowerShell/PowerShellEditorServices#1415 to fix this, and we're deciding if we want to move forward with PowerShellEditorServices based off master still (plus this fix).

@SydneyhSmith SydneyhSmith removed the Needs: Maintainer Attention Maintainer attention needed! label Feb 23, 2021
@andyleejordan
Copy link
Member Author

So just FYI, I am planning to release yet another preview today, and upload it to the marketplace. If (and only if) that goes well, we'll update the stable with it...probably tomorrow.

@pcgeek86
Copy link
Contributor

Nice work -- looking forward to it, Andy!

@ghost ghost added the Needs: Maintainer Attention Maintainer attention needed! label Feb 23, 2021
@pcgeek86
Copy link
Contributor

Oh, by the way, I should probably mention that I've had an ongoing issue where .NET namespaces and class names are not auto-completing in Intellisense results. That has been hard to work without ... does anyone else still have this issue with this preview build?

@pcgeek86
Copy link
Contributor

I just tried to create a video demonstrating the issue, but was able to replicate the problem in both VSCode as well as Windows Terminal. So, it's not specific to the VSCode PowerShell extension. Feel free to ignore (for now).

I can't post the video here due to size, so I'll put it up on YouTube.

@PrzemyslawKlys
Copy link
Contributor

@pcgeek86 I do. It may be related to other modules tho. Check this:

In my case Azure AD module was/is causing this in most cases, but it can be anything for PowerShell 5.1. In PS 7 it's supposedly fixed (at least in reference to my problem with types)

@SydneyhSmith SydneyhSmith removed the Needs: Maintainer Attention Maintainer attention needed! label Feb 23, 2021
@andyleejordan
Copy link
Member Author

@pcgeek86 @PrzemyslawKlys Preview up on GitHub! Posting to marketplace after some quick vetting...

@pcgeek86
Copy link
Contributor

Downloading and testing

@ghost ghost added the Needs: Maintainer Attention Maintainer attention needed! label Feb 24, 2021
@andyleejordan
Copy link
Member Author

It's up on the marketplace! @rjmholt and I gave it a quick spin on Windows with a few different PowerShells. Profile loading bug is fixed 🥳

@pcgeek86
Copy link
Contributor

Looks good. If we could get some fixes for the .NET namespace and type completion, that would be hugely helpful. I tried it again, and I'm pretty sure it's just broken in PowerShell Core 7.1.2, nothing specifically to do with the VSCode extension.

image

@pcgeek86
Copy link
Contributor

Here's a video showing .NET Namespace and Type completion failing in both VSCode and Terminal. 👉🏻 https://youtu.be/GKWemjqlZVA

@andyleejordan
Copy link
Member Author

Thanks @pcgeek86! Could you helpfully open a separate issue for that?

@pcgeek86
Copy link
Contributor

Of course! I'm guessing it belongs under powershell/powershell, not this repo, right?

@rkeithhill
Copy link
Contributor

rkeithhill commented Feb 24, 2021

FWIW I'd be willing to give up just about every other feature in order to get reliable auto-completion. That is obviously a bit of an overstatement but ... I can't help but wonder that as more & more features got added to the extension, we forgot to take care of job # 1 - auto-completion. Put another way, I'd love to see way more investment in "fixing" the extension and way less investment in adding more features. :-)

@pcgeek86
Copy link
Contributor

What Keith said. I don't care about new features. I am interested in reliability of the "core" feature set. One of the things that has consistent set PowerShell apart from other languages, over the last ~16 years is the metadata around modules, commands, .NET types, parameters, and so on. I've been consistently promoting PowerShell in my professional training content at CBT Nuggets as well as on my YouTube channel, for these reasons. We really need to get things back to a reliable working state. I wish I had the engineering know-how (and time) to contribute, but alas I must leave this task to the professional software engineers.

I really respect and appreciate the attitude from @rjmholt in one of the threads that @PrzemyslawKlys linked to earlier, in which he proactively accepted responsibility for the reliability of the VSCode PowerShell extension, regardless of the reliability of the PowerShell engine itself.

Granted, the PowerShell engine needs to work, in order to provide data back to the VSCode extension, but the "can do" attitude goes a long way.

@SeeminglyScience
Copy link
Collaborator

PSES definitely needs a hefty amount of stability work.

Just to be clear though, the issue @pcgeek86 is talking about isn't something the extension can fix since the results are the same outside of it.

@pcgeek86
Copy link
Contributor

Just to be clear though, the issue @pcgeek86 is talking about isn't something the extension can fix since the results are the same outside of it.

Yep, I understand and have proven, in my video capture, that this is an issue with the PowerShell engine. That being said, I'm sure the individuals working on vscode-powershell have a fair amount of communication with the PowerShell Core team (at least, I'd hope so). So, the overall message should be universally understood in this audience.

@SeeminglyScience
Copy link
Collaborator

Yeah it's the same team. If you wouldn't mind could you create an issue for that over on PowerShell/PowerShell? If not I can open one, just want to make sure it's tracked.

@pcgeek86
Copy link
Contributor

@SeeminglyScience Just posted a new issue with repro steps. Feel free to chime in.

PowerShell/PowerShell#14894

@andyleejordan
Copy link
Member Author

I'd love to see way more investment in "fixing" the extension and way less investment in adding more features.

I'm glad to hear that, as that's exactly our plan!

@JustinGrote
Copy link
Collaborator

Yep, the ol' three step process would be great:

  1. Make it work
  2. Make it stable
  3. Make it fast

IN THAT ORDER

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants