diff --git a/CHANGELOG.md b/CHANGELOG.md index 34f521bad3..0c4690935e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,36 @@ # PowerShell Extension Release History +## v2023.3.3 +### Thursday, March 30, 2023 + +This is primarily a bug-fix focused release, and we want to say thanks to all our loyal +preview extension users! The "PowerShell Preview" extension has now been officially +deprecated, with "preview" releases now available via the "pre-release" option on the +stable "PowerShell" extension in the marketplace. While you should be migrated +automatically, feel free to just uninstall the preview and install the now one-and-only +extension, but please keep testing our pre-releases! This change makes it much simpler to +use, as you no longer have to switch between two different extensions and instead can use +VS Code's marketplace to install your choice of version! + +#### [vscode-powershell](https://github.com/PowerShell/vscode-powershell) + +- 🐛 👷 [vscode-powershell #4481](https://github.com/PowerShell/vscode-powershell/pull/4481) - Remove problematic `[RepoNames]` PowerShell class. +- ✨ 👷 [vscode-powershell #4464](https://github.com/PowerShell/vscode-powershell/pull/4464) - Remove `preview` label from marketplace. +- ✨ 👷 [vscode-powershell #3716](https://github.com/PowerShell/vscode-powershell/pull/4462) - Adopt the pre-release extension feature. +- 🐛 ✂️ [vscode-powershell #4455](https://github.com/PowerShell/vscode-powershell/pull/4455) - Fix up "Calculated Property" snippet. (Thanks @DougDyreng!) +- 🐛 📺 [vscode-powershell #4453](https://github.com/PowerShell/vscode-powershell/pull/4454) - Fix `GenerateBugReport` command to pre-fill template. +- ✨ 🙏 [vscode-powershell #4425](https://github.com/PowerShell/vscode-powershell/pull/4425) - Hide last line in folded ranges for ISE Mode. (Thanks @fflaten!) +- #️⃣ 🙏 [vscode-powershell #4417](https://github.com/PowerShell/vscode-powershell/pull/4417) - Fix up dependencies. + +#### [PowerShellEditorServices](https://github.com/PowerShell/PowerShellEditorServices) v3.8.3 + +- Documentation update and CI fix. +- 🐛 🙏 [vscode-powershell #4443](https://github.com/PowerShell/PowerShellEditorServices/pull/2006) - Fix declaration detection for variables with type constraints. +- ✨ 🙏 [vscode-powershell #3604](https://github.com/PowerShell/PowerShellEditorServices/pull/2003) - Add document symbols for `#region`. +- ✨ 🙏 [PowerShellEditorServices #2000](https://github.com/PowerShell/PowerShellEditorServices/pull/2000) - Code clean-up and fixing end-to-end tests. +- 🐛 🐢 [PowerShellEditorServices #1998](https://github.com/PowerShell/PowerShellEditorServices/pull/1998) - Support module-qualified calls for Pester keywords. (Thanks @fflaten!) +- 🐛 🙏 [vscode-powershell #3192](https://github.com/PowerShell/PowerShellEditorServices/pull/1997) - Fix New-EditorFile adding content in current file. (Thanks @fflaten!) + ## v2023.3.2-preview ### Monday, March 27, 2023 diff --git a/docs/development.md b/docs/development.md index 420be8015c..a96829a464 100644 --- a/docs/development.md +++ b/docs/development.md @@ -70,16 +70,24 @@ Microsoft. The comments are manual steps. ```powershell Import-Module ./tools/ReleaseTools.psm1 -New-Release -PsesVersion -VsceVersion +New-ReleaseBundle -PsesVersion -VsceVersion # Amend changelog as necessary # Push release branches to ADO -# Permit both pipelines to draft GitHub releases # Download and test assets # Check telemetry for stability before releasing # Publish draft releases and merge (don't squash!) branches # Permit vscode-extension pipeline to publish to marketplace ``` +If rolling from pre-release to stable, use: + +```powershell +New-Release -RepositoryName vscode-powershell -Version +``` + +This is because we do not change the version of PowerShell Editor Services between a +pre-release and the subsequent stable release, so we only need to release the extension. + ### Versioning For both our repositories we use Git tags in the form `vX.Y.Z` to mark the releases in the @@ -92,7 +100,7 @@ mark any specific release, that is the point of the tags. For PowerShellEditor Services, we simply follow semantic versioning, e.g. `vX.Y.Z`. We do not release previews frequently because this dependency is not generally used directly: it's a library consumed by other projects which -themselves use preview releases for beta testing. +themselves use pre-releases for beta testing. For the VS Code PowerShell Extension, our version follows `vYYYY.M.X`, that is: current year, current month, and patch version (not day). This is not semantic @@ -102,34 +110,40 @@ release on a chronological schedule: we release based on completed work. If the month has changed over since the last release, the patch version resets to 0. Each subsequent release that month increments the patch version. -Before releasing a "stable" release we should almost always first release a -"preview" of the same code. The exception to this is "hotfix" releases where we -need to push _only_ bug fixes out as soon as possible, and these should be built -off the last release's codebase (found from the Git tag). The preview release is -uploaded separately to the marketplace as the "PowerShell Preview" extension. It -should not significantly diverge from the stable release ("PowerShell" -extension), but is used for public beta testing. The preview version should -match the upcoming stable version, but with `-preview` appended. When multiple -previews are needed, the patch version is incremented, and the last preview's -version is used for the stable release. (So the stable version may jump a few -patch versions in between releases.) - -For example, the date is May 7, 2022. The last release was in April, and its -version was `v2022.4.3`. Some significant work has been completed and we want to -release the extension. First we create a preview release with version -`v2022.5.0-preview` (the patch reset to 0 because the month changed, and -`-preview` was appended). After publishing, some issues were identified and we -decided we needed a second preview release. Its version is `v2022.5.1-preview`. -User feedback indicates that preview is working well, so to create a stable -release we use the same code (but with an updated changelog etc.) and use -version `v2022.5.1`, the _first_ stable release for May (as `v2022.5.0` was -skipped due to those identified issues in the preview). All of these releases -may consume the same or different version of PowerShell Editor Services, say -`v3.2.4`. It may update between preview versions or stable versions (but should -not change between a preview and its associated stable release, as they should -use the same code which includes dependencies). - -### Pending Improvements - -* `Update-Changelog` should verify the version is in the correct format -* `Update-Changelog` could be faster by not downloading _every_ PR +Before releasing a stable version we should almost always first release a preview of the +same code, which is a _pre-release_. The exception to this is hotfix releases where we +need to push _only_ bug fixes out as soon as possible, and these should be built off the +last release's codebase (found from the Git tag). The pre-release is uploaded to the +marketplace using the `--pre-release` flag given to `vsce` (the CLI tool used to do so). +The previous separate "PowerShell Preview" extension has been deprecated in favor of using +the marketplace's support for [pre-releases][] on the stable and now one-and-only +extension. + +Because the marketplace does not actually understand Semantic Versioning pre-release tags +(the `-preview` suffix), the patch numbers need to increment continuously, but we append +`-preview` to _our_ version in the changelog and Git tags. When multiple pre-releases are +needed, the patch version is incremented (again because the marketplace ignores the +pre-release tag, we can't do `-alpha`, `-beta` etc.). Since migrating to a single +extension, the stable release has to increment one more after the last pre-release. So the +stable version may jump a few patch versions in between releases. Furthermore, the +`preview` field in the extension's manifest (the `package.json` file) is _always_ `false`, +even for pre-releases, because the marketplace takes the information from the latest +release inclusive of pre-releases, hence it was causing the one-and-only extension to look +like it was in preview. This is also why the icon no longer changes to the PowerShell +Preview icon for pre-releases. When they support pre-releases better (ideally that means +supporting the pre-release tags in full) we can revisit this. + +[pre-releases]: https://code.visualstudio.com/api/working-with-extensions/publishing-extension#prerelease-extensions + +For example, the date is May 7, 2022. The last release was in April, and its version was +`v2022.4.3`. Some significant work has been completed and we want to release the +extension. First we create a pre-release with version `v2022.5.0-preview` (the patch reset +to 0 because the month changed, and `-preview` was appended). After publishing, some +issues were identified and we decided we needed a second pre-release. Its version is +`v2022.5.1-preview`. User feedback indicates that pre-release is working well, so to +create a stable release we use the same code (but with an updated changelog etc.) and use +version `v2022.5.2`, the _first_ stable release for May (as `v2022.5.0` was skipped due to +those identified issues in the pre-release). All of these releases may consume the same or +different version of PowerShell Editor Services, say `v3.2.4`. It may update between +pre-release versions or stable versions, but must not change between a pre-release and the +subsequent stable release, as they should use the same code which includes dependencies. diff --git a/package.json b/package.json index 99675f4211..0b22827c2a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "powershell", "displayName": "PowerShell", - "version": "2023.3.2", + "version": "2023.3.3", "preview": false, "publisher": "ms-vscode", "description": "Develop PowerShell modules, commands and scripts in Visual Studio Code!",