Skip to content

Normalize nested installer paths - #6552

Open
Kaleb Luedtke (Trenly) wants to merge 13 commits into
microsoft:masterfrom
Trenly:fix/6551-normalize-nested-installer-paths
Open

Kaleb Luedtke (Trenly) wants to merge 13 commits into
microsoft:masterfrom
Trenly:fix/6551-normalize-nested-installer-paths

Conversation

@Trenly

@Trenly Kaleb Luedtke (Trenly) commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

📖 Description

Store nested installer RelativeFilePath values in a lightweight wrapper around std::filesystem::path. The wrapper normalizes preferred separators when values are assigned and exposes UTF-8, UTF-16, and path accessors. Update validation, serialization, installer workflows, and tests to use the normalized path representation.

🔗 References

Resolves #6551

🔍 Validation

  • Passed: git diff --cached --check.
  • Build attempted with msbuild src\AppInstallerCLITests\AppInstallerCLITests.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:SolutionDir=E:\winget-cli\src\ /m:1 /nodeReuse:false /nologo /v:minimal; SharedLib and CommonCore built, but the build failed in AppInstallerRepositoryCore because the Visual Studio process held src\AppInstallerRepositoryCore\x64\Debug\pch.pch open (C1083: permission denied).
  • The AppInstallerCLITests binary was not built or run. Tests were added/updated for normalized UTF-8 and UTF-16 paths, emoji paths, workflow path normalization, REST deserialization, and YAML parsing.

✅ Checklist

🤖 AI Assistance

  • AI assistance was used and has been disclosed in this PR
  • No AI assistance was used

📋 Issue Type

  • Bug fix
  • Feature
  • Task

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

@Trenly
Kaleb Luedtke (Trenly) marked this pull request as ready for review September 22, 2026 13:22
@Trenly
Kaleb Luedtke (Trenly) requested a review from a team as a code owner September 22, 2026 13:22
@Trenly
Kaleb Luedtke (Trenly) marked this pull request as draft September 22, 2026 13:23
@Trenly
Kaleb Luedtke (Trenly) marked this pull request as ready for review September 22, 2026 13:23
@github-actions

This comment has been minimized.

Comment thread src/AppInstallerCLICore/Workflows/ArchiveFlow.cpp Outdated
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Kaleb Luedtke (Trenly) and others added 4 commits October 9, 2026 17:24
Store nested installer file paths in a wrapper that normalizes separators on assignment and exposes UTF-8/UTF-16 path accessors. Update validation, serialization, workflow consumers, and tests for the wrapped path type.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Rename normalized path accessors to string and wstring and update their consumers. Correct Unicode test literals and cover overlong UTF-8 separator sequences.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Cover Unicode paths, normalized duplicate paths, and traversal rejection through WinGetUtil manifest creation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

This comment has been minimized.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment thread src/AppInstallerSharedLib/Public/winget/Filesystem.h Outdated
Comment thread src/AppInstallerCLICore/Workflows/FontFlow.cpp Outdated
@JohnMcPMS

Copy link
Copy Markdown
Member

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
JohnMcPMS
JohnMcPMS previously approved these changes Oct 22, 2026
@JohnMcPMS

Copy link
Copy Markdown
Member

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

Copilot AI and others added 3 commits October 23, 2026 22:12
…est-winget-cli

# Conflicts:
#	doc/ReleaseNotes.md

Co-authored-by: Trenly <12611259+Trenly@users.noreply.github.com>
Co-authored-by: Trenly <12611259+Trenly@users.noreply.github.com>
Copilot/merge latest winget cli
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Nested installer path is built with the manifest's forward slashes, MsiInstallProduct fails with error 2

3 participants