winget-cli icon indicating copy to clipboard operation
winget-cli copied to clipboard

Add setting for installer log file names

Open Trenly opened this issue 2 months ago • 1 comments

  • [x] I have signed the Contributor License Agreement.
  • [x] I have updated the Release Notes.
    • Waiting for bump of version to 1.28
  • [x] This pull request is related to an issue.
    • Related to #2036

Sometimes the Manifest name is just too long. While I would love to be able to give users the ability to control the format directly using token replacement and all sorts of other cool stuff, that's a bit much for right now.

To help alleviate the issue, I've added a setting that controls how installer file names are generated. With this change, instead of being forced into the Package ID and version with timestamp, it is now possible to have the default installer log name be shorter. While this doesn't actually resolve the issue, it does make it possible to at least mitigate

  • Manifest - Default, matches current behavior
  • Timestamp - Includes just the timestamp as the installer log name
  • GUID - Creates a new GUID and uses that as the installer log name
  • ShortGuid - Creates a new GUID and uses the first 8 characters as the installer log name

Note that this only affects the installer log name, not the WinGet log name, and only for installers which support passing of the log name. This PR does not affect the behavior of --log <location>


Microsoft Reviewers: Open in CodeFlow

Trenly avatar Oct 14 '25 04:10 Trenly

@check-spelling-bot Report

:red_circle: Please review

See the :open_file_folder: files view, the :scroll:action log, or :memo: job summary for details.

Unrecognized words (1)

shortguid

These words are not needed and should be removed AAD ABCD abi acl AMap Amd appdata ARMNT asan Baz bitmask bluetooth brk Buf certs cgi CMSG codepage commandline constexpr Cov cswinrt CTL Dbg decompressor dedupe DEFT devhome Dns dsc ERANGE errcode errmsg errstr filemode Finalizers FULLWIDTH fuzzer GES github HINSTANCE hlocal hmac Hyperlink ICONDIR icu idx img inet Intelli iwr JDK LCID lhs LONGLONG LPBYTE LPCWSTR LPDWORD LPSTR LPVOID LPWSTR MAJORVERSION MAXLENGTH MDs MINORVERSION nlohmann NONAME NOUPDATE NTFS ofile oid oop OPTOUT outfile OUTOFMEMORY pdb PDWORD pid PKCS pkix placeholders positionals posix pseudocode PSHOST publickey qword redirector regexes remoting reparse REQS rhs rowid RTTI runspace runtimes SARL savepoint sid sqlite subdir subkey ttl typedef uninitialize uninstallation UNMARSHALING userprofile versioned Webserver website wildcards winreg workaround wsl

To accept these unrecognized words as correct and remove the previously acknowledged and now absent words, you could run the following commands

... in a clone of the [email protected]:Trenly/winget-cli.git repository on the LogName branch (:information_source: how do I use this?):

curl -s -S -L 'https://raw.githubusercontent.com/check-spelling/check-spelling/v0.0.24/apply.pl' |
perl - 'https://github.com/microsoft/winget-cli/actions/runs/18485499433/attempts/1'

If the flagged items are :exploding_head: false positives

If items relate to a ...

  • binary file (or some other file you wouldn't want to check at all).

    Please add a file path to the excludes.txt file matching the containing file.

    File paths are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your files.

    ^ refers to the file's path from the root of the repository, so ^README\.md$ would exclude README.md (on whichever branch you're using).

  • well-formed pattern.

    If you can write a pattern that would match it, try adding it to the patterns.txt file.

    Patterns are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your lines.

    Note that patterns can't match multiline strings.

github-actions[bot] avatar Oct 14 '25 04:10 github-actions[bot]