PowerShell Community Call - April 16, 2020
- Update on PowerShell 7.0
- Microsoft 1st Party Conference
- 7.1 Plans
- Minimal PowerShell
- PSScriptAnalyzer 2.0
- Community pages on Docs
- Q&A
- 7.0 GA is going great so far!
- ~10-15% of PS Core sessions are already 7.0
- https://aka.ms/PSGitHubBI will be updated soon with 7.0 numbers and additional telemetry
- Microsoft (internal) 1st Party Conference
- Goal was to evangelize and understand blockers around PS 7.0 with internal Microsoft teams
- ~250 attendees
- Potentially able to share a limited set of the presentations with the public
- 7.1 Roadmap Blog
- Trying to snap closer to .NET releases (for both support reasons and to stay on the latest-and-greatest)
master
branch already moved to .NET Preview 2
- Working to simultaneously ship with PowerShell 7.1
- More info on features and experiences to come in issues and RFCs
- Minimal PowerShell
- Very long-term investment
- very likely that we won't have interesting work to show until after the 7.1 release
- Originally wanted to maximize back-compat with Windows PowerShell
- We believe this has been accomplished
- Goal: remove features of PowerShell that aren't necessary in embedded, minimal, and non-interactive environments
- How can we turn aspects of PS into plugins that can be excised?
- E.g. help system, PSReadline, IntelliSense, interactive-only "utility" cmdlets
- Shell improvements
- Delighters that make you more productive at the interactive command-line
- Predictive IntelliSense providing more contextual completions
- Starting based on history, but eventually working to incorporate more "intelligent" completers (e.g. ML)
- Filling gaps where native binaries and basic Bash invocations don't work
- E.g. incorporating non-zero exit codes into
$ErrorActionPreference
(in a non-breaking way!)
- Keeping our breaking changes to an absolute minimum on this effort
- Secrets Management
- Goal of early previews is to gather feedback and make major adjustments before it's too late
- Dev preview already driving a large set of breaking changes
- PSScriptAnalyzer 2.0
- Goals
- Improve performance and stability (especially with formatting rules)
- This is going to improve perf and stability of VS Code PowerShell extension
- Simplify usage of the compatibility rules
- These are the ones that allow you target specific versions of PowerShell and specific OSes
- Simplify rule authoring experience
- If you have feature requests or feedback, hop into the PSSA issues
- Can also reach out to Sydney, Rob, or Jim
- platyPS 2.0 / doc authoring pipeline
- platyPS is the module that converts to Markdown-based help into XML-based help that can be used with Get-Help
- "I want up-to-date help in Update/Get-Help"
- Working with internal teams to make sure they're "doing help correctly"
- Community updates in docs
- Q&A
- Joel Sallow asking for update on Dispose RFC
- Tension between long-running disposals and user desire to cancel commands
- New FileSystem provider? (or improvements?)
- Fundamental issues there today, we don't think we can fix them without major breaking changes
- Would have to be a v2 model where they're side-by-side for some period of time
- We're not investing here now, but it'd be okay if a community member wanted to start brainstorming in issues
- Local Accounts module updates?
- Something we can look into but not a top-priority right now. Open to community contributions here
- Always happy to make improvements to the engineering systems
- but we're working with a high volume of contributions, and we're trying to figure out better ways to scale
- Exchange Server module
- Exchange Online team is making efforts to bring their newer v2 module to compat with PS 7
- Today, you can already use just the implicit remoting method (
New-PSSession
against an ExO endpoint)
- On-prem Exchange Server is not making major investements right now, and will likely not get ported to PS 7
- Will have to rely on Windows PS compatibility layer (
Import-Module -UseWindowsPowerShell ExchangeServer
)
- ETA for MSIX?
- No ETA today because we're currently blocked on some other Microsoft teams who are helping us with signing
- Not trying to productize the pure MSIX package; only doing this work to enable install from the Microsoft Store
- May be a scenario with Windows Virtual Desktop (WVD)?
- When you install 7.1 Preview 1, it will install over the existing 7.0 preview.
- Same is true for LTS channels and stable channels
- If you want absolute side-by-side, use the ZIP
- When they're posted, videos and notes are available at https://aka.ms/PSCommunityCall
- We'll do a better job of posting these
- IntelliSense speed in VS Code
- Big performance improvements on the latest major release
- Even more IntelliSense improvements since then have been released in our preview
- Which VS Code extension should I use?
- Significantly increased frequency of updating preview release
- You can install them side-by-side, just make sure to only enable one at a time
- Dot-sourcing batch files in order to pull in environment variables?
- We hadn't thought of this scenario, but there's possible solutions
- Please file an issue, Travis believes we might have something in our CI that might be able to do this
- Visual Studio vars batch file is the real-world scenario
- Lee Holmes already has an
Invoke-BatchFile
cmdlet, we can look at that
- platyPS depends on YAML.NET and the version is conflicting with other modules folks want to use