Keep xUnit focused on pure three-scope merge and union behavior. Move the real LocalMachine write, removal, and ACL checks into the existing elevated execution-policy Pester suite, where the test runs only with MSIX package identity.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ab738c1b-4d18-491b-a40f-0515b586857b
Remove the trivial path-composition overload and unit tests. Expose package identity through InternalTestHooks and add an elevated MSIX-gated Pester test that verifies the real LocalMachine ProgramData write and inherited ACL boundaries.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ab738c1b-4d18-491b-a40f-0515b586857b
Store package-family configuration directly beneath the PowerShell ProgramData directory. Keep the PowerShell and PFN directories as protected ACL boundaries while allowing the configuration file and future children to inherit the PFN permissions.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ab738c1b-4d18-491b-a40f-0515b586857b
Resolve an explicit MachineFolder write to the legacy AllUsers scope on Unix before selecting a path or cache entry. Compile MachineFolder directory provisioning only for Windows and cover the Unix fallback with a configuration test.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ab738c1b-4d18-491b-a40f-0515b586857b
Keep PSHOME as immutable product defaults while resolving the writable PFN-isolated ProgramData path in Utils. Redirect AllUsers writes, preserve policy and preference merge semantics, and secure the manually provisioned hierarchy without changing non-MSIX or experimental-feature behavior.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ab738c1b-4d18-491b-a40f-0515b586857b
Keep Enable-ExperimentalFeature and Disable-ExperimentalFeature aligned with master while retaining the MSIX configuration changes.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ab738c1b-4d18-491b-a40f-0515b586857b
Keep immutable product defaults in PSHOME while resolving writable machine configuration from ProgramData, isolated by package family for MSIX. Apply secure Windows ACLs, preserve policy and preference merge semantics, and remove Get-PowerShellConfiguration.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ab738c1b-4d18-491b-a40f-0515b586857b
This PR essentially reverts https://github.com/PowerShell/PowerShell/pull/3331, which updated all W3C URIs in the `.resx` files from `http` to `https`.
That change turned out to be wrong. Those W3C URIs are namespace identifiers, not fetchable URLs -- they must be byte‑exact. Changing them to use `https` corrupted them, and thus `ManagedParser` in the localization pipeline can't recognize the schema, which resulted in the `BL1024 "child table to itself"` error.
- This PR makes pure, mechanical 2-line substitution in every `.resx` file: `https://www.w3.org → http://www.w3.org`.
- The `ClipboardResources.resx` was using Schema version 1.3, and it's changed to version 2.0 as the rest `.resx` files in this PR.
`Test-Bom` was only used in `New-MSIPackage`, which was removed in https://github.com/PowerShell/PowerShell/pull/27213 as we are not building MSI packages for v7.7 and onward.
`Test-Bom` is no longer used anywhere in PowerShell repo, so removing it and its helpers, as well as the boms JSON files, in this PR.
1. Create the `LocProject.json` file for PowerShell localization.
2. Remove the unused `.resx` resource files and source files.
3. Update the `ResourceValidation` tests.