Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: microsoft/winget-cli
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.12.440
Choose a base ref
...
head repository: microsoft/winget-cli
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1.28.90-preview
Choose a head ref
  • 17 commits
  • 106 files changed
  • 3 contributors

Commits on Oct 14, 2025

  1. Configuration menu
    Copy the full SHA
    5f2d4cf View commit details
    Browse the repository at this point in the history

Commits on Oct 15, 2025

  1. Move to latest 7.4 PS SDK (#5811)

    ## Change
    Update to the latest 7.4 PowerShell SDK. Updates the SqlClient version
    as well since it is a required dependency.
    JohnMcPMS authored Oct 15, 2025
    Configuration menu
    Copy the full SHA
    7a08a8c View commit details
    Browse the repository at this point in the history

Commits on Oct 17, 2025

  1. Configuration menu
    Copy the full SHA
    cf43c6a View commit details
    Browse the repository at this point in the history

Commits on Oct 27, 2025

  1. Remove mention of WinGet Insider program from the README (#5832)

    This program has been decommissioned for a while now.
    
    Related to #5831 
    
    ###### Microsoft Reviewers: [Open in
    CodeFlow](https://microsoft.github.io/open-pr/?codeflow=https://github.com/microsoft/winget-cli/pull/5832)
    florelis authored Oct 27, 2025
    Configuration menu
    Copy the full SHA
    7d72eb3 View commit details
    Browse the repository at this point in the history

Commits on Oct 31, 2025

  1. Ignore ReleaseStatic outputs and clean intermediates (#5848)

    ## Change
    Copy the C++/WinRT method for keeping the build servers with plenty of
    space by cleaning the intermediates after building each project. The
    precompiled headers alone are several GBs.
    
    Also adds `ReleaseStatic` outputs to the .gitignore.
    JohnMcPMS authored Oct 31, 2025
    Configuration menu
    Copy the full SHA
    c49d442 View commit details
    Browse the repository at this point in the history
  2. Make Repair-WGPM a COM-aware cmdlet and rework version retrieval (#5842)

    Fixes #5826 and #5827
    
    ## Issue
    A previous change introduced a COM API to retrieve the WinGet version.
    The PowerShell methods to get the version were updated to try using it
    before invoking the existing method (run `winget --version`).
    
    This caused Repair-WGPM to use COM for the first time (IFF a version
    specifier was provided [which includes `-Latest`]). This caused the two
    linked issues:
    1. #5826 :: In .NET Framework (Windows PowerShell), the .winmd file must
    be found in order to generate the COM type information at runtime. This
    is required when jit'ing the new version API, used only when a version
    specifier is provided. This doesn't affect .NET Core (PowerShell 7)
    because exceptions are swallowed to support backward compat and the
    types are all pre-generated by CsWinRT. Only commands deriving from a
    specific type were doing the initialization required.
    2. #5827 :: Calling a COM API means that the server is active, making
    attempts to install the package fail due to an in-use error. This
    required `-Force` to be provided, again only if a version specifier was
    provided.
    
    ## Change
    The larger part of this change reworks the existing assert and repair
    state machine to better re-use the call to `winget --version` that is
    actually attempting to probe for WinGet CLI functionality. We keep that
    result around and use it when comparing to the supplied target version
    rather than attempting to retrieve the version again. If the version is
    not correct, we attach it to the exception that is thrown so that we can
    re-use it once again during the attempt to install the different
    version.
    
    Since the first attempt to call `winget --version` has to succeed in
    order to get to the code that would check the current version, we can
    successfully avoid the COM call in this path every time. Ultimately this
    means that if WinGet is already installed properly, attempting to change
    the version with Repair only gets the version once instead of the
    previous 3 times.
    
    The final portion of the change updates the base command for Repair and
    Assert to the one that provides the COM initialization. While this
    shouldn't be necessary with the other portion, it is preferable to
    supply `-Force` as a workaround than to simply wait for a resolution if
    the type cannot be loaded.
    JohnMcPMS authored Oct 31, 2025
    Configuration menu
    Copy the full SHA
    419875b View commit details
    Browse the repository at this point in the history

Commits on Nov 6, 2025

  1. Unregister signal handler (#5861)

    ## Change
    Remove the CTRL handler when we destruct.
    JohnMcPMS authored Nov 6, 2025
    Configuration menu
    Copy the full SHA
    ab52c70 View commit details
    Browse the repository at this point in the history

Commits on Nov 10, 2025

  1. Support associating export units with packages in subdirectories of i…

    …nstall location (#5859)
    
    ## Change
    The primary motivation is to support directories below the install
    location to contain configuration units that we will associate with the
    package. This is achieved by refactoring the association logic from a
    Package x Unit loop into a tree structure that is colored by package
    install locations. This also has the benefit of making a O(N^2)
    algorithm into an O(N).
    
    Units are first inserted into the tree based on their file path. Then
    the install location of each package is recorded onto that tree as well.
    Finally, during the export of each package, all resources at the install
    location and any that are descended from it but not under another
    package are included.
    JohnMcPMS authored Nov 10, 2025
    Configuration menu
    Copy the full SHA
    087ea0e View commit details
    Browse the repository at this point in the history

Commits on Nov 15, 2025

  1. Send host geo to sandbox (#5873)

    ## Change
    My sandbox was using the `World` region by default; this change gets the
    location from the host and sends/sets it into the sandbox so that we can
    still talk to the Store.
    JohnMcPMS authored Nov 15, 2025
    Configuration menu
    Copy the full SHA
    8f1d4fe View commit details
    Browse the repository at this point in the history
  2. Update C++ nuget package references using new scripts (#5877)

    ## Change
    Adds scripts to view the nuget package references in C++ projects and
    update them en-masse. Use them to update C++/WinRT and WIL to the latest
    version.
    JohnMcPMS authored Nov 15, 2025
    Configuration menu
    Copy the full SHA
    0d5b16b View commit details
    Browse the repository at this point in the history

Commits on Nov 17, 2025

  1. Update platform toolset (#5882)

    The solution does not build in VS 2026 because it defaults to using the
    v140 toolset (VS 2015), which is no longer supported.
    This PR adds the configuration to use the latest toolset v145 in VS 2026
    (v18), and removes the options for v140 (VS 2015) and v141 (VS 2017).
    I'm also setting this in the `Directory.Build.props` and removing the
    configuration from the individual projects.
    ###### Microsoft Reviewers: [Open in
    CodeFlow](https://microsoft.github.io/open-pr/?codeflow=https://github.com/microsoft/winget-cli/pull/5882)
    florelis authored Nov 17, 2025
    Configuration menu
    Copy the full SHA
    ac226ee View commit details
    Browse the repository at this point in the history

Commits on Nov 21, 2025

  1. Extract event log for potential crash info (#5807)

    ## Change
    We are seeing occasional errors during test setup that might be a crash.
    These started happening when 1.11.510 became the latest version. To
    better understand this and any future crashes that might occur, grab the
    Application event log from the pipeline.
    
    Also grabs the GA winget logs since that is what is being used during
    this potential crash.
    
    Also enables the unit tests to write a minidump if they crash, since
    that happened randomly during one of the builds for this PR.
    JohnMcPMS authored Nov 21, 2025
    Configuration menu
    Copy the full SHA
    7055f8a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0f649f3 View commit details
    Browse the repository at this point in the history

Commits on Dec 1, 2025

  1. Fixes for VS2026 (#5896)

    Follow-up to #5882 to fix some issues I saw when building with VS2026.
    
    * Add back the setting for `ReleaseStatic` configuration that I deleted
    by accident. (The build error without this says that a the binary needs
    an entrypoint. So I'm assuming that without the `ConfigurationType` it
    assumes application instead of library.)
    * Added a missing include to a header.
    * Moved a template definition to be after the definition for a type it
    references.
    * Suppressed a warning from WIL code.
    florelis authored Dec 1, 2025
    Configuration menu
    Copy the full SHA
    08b4a6a View commit details
    Browse the repository at this point in the history

Commits on Dec 2, 2025

  1. Additional logging limitations and control (#5888)

    ## Change
    Expands the limitations on log files and allows them to be user
    configurable.
    
    The existing limit was hardcoded to remove any files over 7 days old.
    This was enforced by a background thread spun up during process start.
    This same thread enforces the new limits on the aggregate logging
    directory, while additional code in the file logger enforces the
    individual file size limitation.
    
    When new log lines would exceed the maximum file size for an individual
    file, the stream is repositioned after the initialization portion of the
    log, a log line is output to indicate the wrap, and the logs continue to
    overwrite the older data.
    JohnMcPMS authored Dec 2, 2025
    Configuration menu
    Copy the full SHA
    9a65ba4 View commit details
    Browse the repository at this point in the history

Commits on Dec 12, 2025

  1. Use hybrid CRT linkage instead of full static (#5913)

    See https://aka.ms/hybridcrt for additional details.
    
    When building ReleaseStatic, use the hybrid linkage model. This produces
    a binary that is closer in size to the dynamic linkage than the full
    static, relying on the UCRT binary that ships in Windows to provide the
    core CRT functionality. As an example, the WindowsPackageManager.dll is
    ~90 KB larger as hybrid than dynamic, but is another ~160 KB larger as
    static than hybrid.
    JohnMcPMS authored Dec 12, 2025
    Configuration menu
    Copy the full SHA
    b7cc9bf View commit details
    Browse the repository at this point in the history
  2. Enable source reference to get thread globals for off-thread logging (#…

    …5780)
    
    ## Change
    Allow `ISourceReference` and `Source` to have `ThreadGlobals` provided
    so that they can use them for other-thread logging. Enable this for the
    thread async REST source so that our certificate pinning callback can
    log results.
    JohnMcPMS authored Dec 12, 2025
    Configuration menu
    Copy the full SHA
    d8dc05a View commit details
    Browse the repository at this point in the history
Loading