Tags: Krypton-Suite/Standard-Toolkit
Tags
* Use correct NuGet versions in VS templates (#3581) ## Summary Fixes [#3566](#3566). Visual Studio **project** templates (`Krypton WinForms App`, `Krypton Ribbon WinForms App`) previously always referenced the stable aggregate package `Krypton.Standard.Toolkit`, even when templates were published from `canary` or `alpha`. Published releases should instead align with the toolkit channel: | Templates release branch | Channel | NuGet package | |--------------------------|---------|---------------| | `master` | stable | `Krypton.Standard.Toolkit` | | `canary` | canary | `Krypton.Standard.Toolkit.Canary` | | `alpha` | alpha | `Krypton.Standard.Toolkit.Nightly` | This PR adds `Scripts/CI/Apply-TemplatesNuGetPackage.ps1`, which rewrites the `PackageReference` in both project template `.csproj` files before packaging. The **Visual Studio Templates Release** workflow invokes it after channel resolution and before zip/VSIX build. Source templates in git remain on the stable package ID; only CI (or an explicit local script run) applies channel-specific IDs. Item templates are unchanged (they do not add NuGet references). ## Changes - **`Scripts/CI/Apply-TemplatesNuGetPackage.ps1`** — Shared channel → package ID mapping and `.csproj` rewrite. - **`.github/workflows/templates-release.yml`** — New CI step; workflow path filter includes the script; release notes mention channel-specific packages. - **`Templates/README.md`** — Documents local VSIX builds and channel/package mapping. ## Test plan - [ ] Run `pwsh -NoProfile -File Scripts\CI\Apply-TemplatesNuGetPackage.ps1 -Channel canary` and confirm both project template `.csproj` files reference `Krypton.Standard.Toolkit.Canary`. - [ ] Run with `-Channel alpha` and confirm `.Nightly` package ID. - [ ] Run with `-Channel stable` and confirm IDs revert to `Krypton.Standard.Toolkit`. - [ ] After merge, trigger or wait for **Visual Studio Templates Release** on `canary` / `alpha` (push under `Templates/` or workflow_dispatch). - [ ] Download the published VSIX from `templates-canary` / `templates-alpha` release, create a new project from a Krypton project template, and verify the generated `.csproj` uses the expected `PackageReference Include`.
* Fix VSIX manifest encoding for templates release (VSSDK1048) (#3524) # Fix VSIX manifest encoding for templates release (VSSDK1048) ## Summary - Resolves **VSSDK1048** during the **Visual Studio Templates Release** workflow: `source.extension.vsixmanifest` must be UTF-8 **without** a BOM so the XML declaration at line 1 is valid for VSSDK. - Updates CI to write the manifest with `UTF8Encoding($false)` instead of `Set-Content`, which could reintroduce a BOM on each release run. - Narrows the release-time version substitution to the `<Identity … Version="…">` element only (the previous regex replaced every `Version="…"` attribute, including installation targets and prerequisites). ## Problem The templates release job failed while building the VSIX package: ```text VSSDK1048: Error trying to read the VSIX manifest file "source.extension.vsixmanifest". Syntax for an XML declaration is invalid. Line 1, position ``` A UTF-8 BOM (or a leading `U+FEFF` character) before `<?xml` causes VSSDK’s XML parser to reject the declaration. The workflow also rewrote the manifest before `dotnet msbuild`, which could worsen encoding issues and had been overwriting unrelated `Version` attributes. ## Changes | File | Change | |------|--------| | `Templates/Vsix/Krypton.Templates.Vsix/source.extension.vsixmanifest` | Saved as UTF-8 without BOM (file begins with `<?xml`). | | `.github/workflows/templates-release.yml` | Read UTF-8, strip BOM if present, update Identity version only, write with `[System.IO.File]::WriteAllText` and `UTF8Encoding($false)`. | | `Templates/.editorconfig` | `charset = utf-8` for `*.vsixmanifest` so editors do not save with a signature. | ## Test plan - [ ] Confirm `source.extension.vsixmanifest` has no BOM (first bytes should be `60, 63, 120` — `<?x`). - [ ] Locally (optional): `dotnet msbuild Templates\Vsix\Krypton.Templates.Vsix\Krypton.Templates.Vsix.csproj /p:Configuration=Release /p:DeployExtension=false` - [ ] Push to a branch that triggers **Visual Studio Templates Release** (or run `workflow_dispatch`) and verify the **Build template VSIX package** step succeeds. - [ ] Confirm the published `.vsix` installs in Visual Studio 2022 and templates appear under **Add New Item** / **New Project**. ## Related - Branch: `3517-feature-request-add-visx-package-for-itemproject-templates` - Relates to #3517 (Krypton item/project template VSIX)
Bump NuGet/setup-nuget from 3.1.0 to 4 (#3358) Bumps [NuGet/setup-nuget](https://github.com/nuget/setup-nuget) from 3.1.0 to 4. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/nuget/setup-nuget/releases">NuGet/setup-nuget's releases</a>.</em></p> <blockquote> <h2>v4.0</h2> <h2>What's Changed</h2> <ul> <li>Migrate to ESM and update all npm packages to latest versions by <a href="https://github.com/jeffkl"><code>@jeffkl</code></a> in <a href="https://redirect.github.com/NuGet/setup-nuget/pull/234">NuGet/setup-nuget#234</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/NuGet/setup-nuget/compare/v3.0.1...v4.0">https://github.com/NuGet/setup-nuget/compare/v3.0.1...v4.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/NuGet/setup-nuget/commit/fd55a6f3b34392fa83fde1454582407d8c714123"><code>fd55a6f</code></a> Migrate to ESM and update all npm packages to latest versions (<a href="https://redirect.github.com/nuget/setup-nuget/issues/234">#234</a>)</li> <li>See full diff in <a href="https://github.com/nuget/setup-nuget/compare/v3.1.0...v4">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details>
Merge pull request #1841 from Krypton-Suite/gold * Version 90 - RTM