@@ -10,37 +10,7 @@ Releases before 2.1.0 were recorded only in the `ReleaseNotes` field of
1010
1111## [ Unreleased]
1212
13- ### Added
14-
15- - ` Test-AppxBackupCompatibility -CheckCapabilities ` is now implemented. The
16- package's declared capabilities are classified against
17- ` Config/CapabilityClassification.json ` into restricted (gated by Microsoft, and
18- the entries most likely to make a sideloaded restore behave differently from the
19- original), device (user consent at first use) and general. Restricted
20- capabilities add a warning, and the result object gains
21- ` DeclaredCapabilities ` , ` RestrictedCapabilities ` , ` DeviceCapabilities ` and
22- ` CapabilitiesChecked ` . The classification lives in configuration so it can track
23- new Windows capabilities without a code change.
24- - End-to-end packaging tests under ` tests/ ` , tagged ` E2E ` . They build a synthetic
25- but valid package through the real Windows SDK MakeAppx — including a negative
26- case asserting that a failed run surfaces the tool's own error text — and are
27- excluded from the default run. Run them with ` build.ps1 -Task Test -IncludeE2E ` ;
28- they skip cleanly without the SDK. CI runs them as a separate step on
29- windows-latest, which ships the SDK.
30-
31- ### Changed
32-
33- - The analyzer gate is now clean and CI blocks on warnings, not just errors. The
34- 22 remaining pre-existing warnings were resolved: genuinely dead variables
35- removed, discarded call results made explicit with ` $null ` , safe-fallback
36- catches given non-throwing acknowledgements, and the logger's deliberate silent
37- catches suppressed at function level with justification.
38- - Removed three private parameters that were accepted and ignored:
39- ` -ValidateSchema ` (` Get-AppxManifestData ` ), ` -CreateBundle `
40- (` New-AppxPackageInternal ` ) and ` -OutputDirectory ` (` New-AppxBackupManifest ` ).
41- No public surface change.
42-
43- ## [ 2.1.0] - 2026-07-27
13+ ## [ 2.1.0] - 2026-07-28
4414
4515A correctness release. Six defects shared one root cause: a guard compared the
4616result of a boolean-returning call against ` $null ` . Because ` [bool] ` is never
@@ -124,10 +94,25 @@ tests, a static-analysis configuration, and CI.
12494
12595### Added
12696
97+ - ` Test-AppxBackupCompatibility -CheckCapabilities ` is now implemented. The
98+ package's declared capabilities are classified against
99+ ` Config/CapabilityClassification.json ` into restricted (gated by Microsoft, and
100+ the entries most likely to make a sideloaded restore behave differently from the
101+ original), device (user consent at first use) and general. Restricted
102+ capabilities add a warning, and the result object gains
103+ ` DeclaredCapabilities ` , ` RestrictedCapabilities ` , ` DeviceCapabilities ` and
104+ ` CapabilitiesChecked ` . The classification lives in configuration so it can track
105+ new Windows capabilities without a code change.
127106- ` tests/ ` — 73 Pester tests covering path validation, external process execution,
128107 SDK discovery, configuration loading, and the manifest/loader/disk agreement that
129108 defines the public surface. Written in the subset shared by Pester 5 and 6. Every
130109 defect listed above has a regression test that fails against the old behaviour.
110+ - End-to-end packaging tests under ` tests/ ` , tagged ` E2E ` . They build a synthetic
111+ but valid package through the real Windows SDK MakeAppx — including a negative
112+ case asserting that a failed run surfaces the tool's own error text — and are
113+ excluded from the default run. Run them with ` build.ps1 -Task Test -IncludeE2E ` ;
114+ they skip cleanly without the SDK. CI runs them as a separate step on
115+ windows-latest, which ships the SDK.
131116- ` build.ps1 ` — one entry point for ` Build ` , ` Analyze ` and ` Test ` , used by both
132117 contributors and CI so that local and CI results mean the same thing. ` -CI `
133118 produces NUnit test results and a CSV of analyzer findings, and sets the exit code.
@@ -138,16 +123,18 @@ tests, a static-analysis configuration, and CI.
138123 artefacts produced by running the module in place.
139124- This changelog.
140125
126+ - Removed three private parameters that were accepted and ignored:
127+ ` -ValidateSchema ` (` Get-AppxManifestData ` ), ` -CreateBundle `
128+ (` New-AppxPackageInternal ` ) and ` -OutputDirectory ` (` New-AppxBackupManifest ` ).
129+ No public surface change.
130+ - The analyzer gate is now clean and CI blocks on warnings, not just errors. The
131+ pre-existing warnings were resolved: genuinely dead variables removed,
132+ discarded call results made explicit with ` $null ` , safe-fallback catches given
133+ non-throwing acknowledgements, and the logger's deliberate silent catches
134+ suppressed at function level with justification.
135+
141136### Known issues
142137
143- - PSScriptAnalyzer reports 35 warnings that predate this release: unused variables
144- and parameters, and deliberately silent catch blocks in the logger. CI blocks on
145- errors and reports warnings without failing. See "Recommended next steps" in
146- ` README.md ` .
147- - Four declared parameters are accepted but ignored: ` -CheckCapabilities `
148- (` Test-AppxBackupCompatibility ` ), ` -ValidateSchema ` (` Get-AppxManifestData ` ),
149- ` -CreateBundle ` (` New-AppxPackageInternal ` ) and ` -OutputDirectory `
150- (` New-AppxBackupManifest ` ). Only the first is on a public command.
151138- PSScriptAnalyzer 1.25 raises an internal ` NullReferenceException ` while inspecting
152139 ` AppxBackup.psm1 ` through an absolute path. Analysis still completes and returns
153140 the full finding set; ` build.ps1 ` reports the condition instead of failing on it.
@@ -176,8 +163,8 @@ tests, a static-analysis configuration, and CI.
176163- Initial 2.x line: ZIP-based dependency packaging (` .appxpack ` ) with installation
177164 orchestration, native certificate management, and MSIX support.
178165
179- [ Unreleased ] : https://github.com/DeltaGa/AppxBackup.Module/compare/v2.1.0...HEAD
180- [ 2.1.0 ] : https://github.com/DeltaGa/AppxBackup.Module/compare/v2.0.2...v2.1.0
181- [ 2.0.2 ] : https://github.com/DeltaGa/AppxBackup.Module/compare/v2.0.1...v2.0.2
182- [ 2.0.1 ] : https://github.com/DeltaGa/AppxBackup.Module/compare/v2.0.0...v2.0.1
166+ [ Unreleased ] : https://github.com/DeltaGa/AppxBackup.Module/compare/v2.1.0-post1 ...HEAD
167+ [ 2.1.0 ] : https://github.com/DeltaGa/AppxBackup.Module/compare/v2.0.2-post1 ...v2.1.0-post1
168+ [ 2.0.2 ] : https://github.com/DeltaGa/AppxBackup.Module/compare/v2.0.1-post2 ...v2.0.2-post1
169+ [ 2.0.1 ] : https://github.com/DeltaGa/AppxBackup.Module/compare/v2.0.0...v2.0.1-post2
183170[ 2.0.0 ] : https://github.com/DeltaGa/AppxBackup.Module/releases/tag/v2.0.0
0 commit comments