Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package topgrade for openSUSE:Factory 
checked in at 2026-01-12 10:21:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/topgrade (Old)
 and      /work/SRC/openSUSE:Factory/.topgrade.new.1928 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "topgrade"

Mon Jan 12 10:21:49 2026 rev:18 rq:1326379 version:16.8.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/topgrade/topgrade.changes        2025-12-18 
18:31:59.230962086 +0100
+++ /work/SRC/openSUSE:Factory/.topgrade.new.1928/topgrade.changes      
2026-01-12 10:31:18.346163160 +0100
@@ -2 +2,42 @@
-Wed Dec 17 10:44:06 UTC 2025 - [email protected]
+Fri Jan 09 14:49:04 UTC 2026 - Gerald Chen <[email protected]>
+
+- Update to version 16.8.0:
+  * chore: release v16.8.0 (#1638)
+  * chore(deps): update lockfile (#1671)
+  * ci(release): fix OpenBSD release job (#1639)
+  * chore(pre-commit): autoupdate (#1668)
+  * chore(deps): lock file maintenance (#1666)
+  * chore(deps): update rust crate tokio to ~1.49.0 (#1663)
+  * chore(renovate): change semantic commit type to always be 'chore' (#1665)
+  * chore: fix category (os -> command-line-utlilities) in Cargo.toml (#1664)
+  * chore: remove deprecated authors field from Cargo.toml (#1661)
+  * chore: add authors and maintainers to pyproject.toml (#1662)
+  * feat(cursor): add cursor extension update support (#1659)
+  * chore(deps): update rust crate clap_complete to v4.5.64 (#1654)
+  * chore(deps): bump clap_complete (#1657)
+  * chore(pre-commit): autoupdate (#1655)
+  * chore(deps): update vmactions/openbsd-vm digest to 00753f2 (#1649)
+  * chore(deps): lock file maintenance (#1652)
+  * chore(deps): update rust crate serde_json to v1.0.148 (#1650)
+  * chore(deps): update rust crate serde_json to v1.0.147 (#1645)
+  * fix(deps): update rust crate tempfile to ~3.24.0 (#1646)
+  * chore: delete unused build-all.sh script (#1644)
+  * docs: update bug_report issue template (#1643)
+  * chore(deps): update rust crate serde_json to v1.0.146 (#1640)
+  * docs: add Discord link to Python package (#1641)
+  * chore(deps): pin vmactions/openbsd-vm action to a17ab0b (#1636)
+  * chore(deps): update actions/attest-build-provenance action to v3.1.0 
(#1637)
+  * ci(release): add OpenBSD release steps (#1630)
+  * chore(deps): lock file maintenance (#1631)
+  * chore(deps): pin async-lock to prevent MSRV bump (#1635)
+  * chore(deps): pin async-lock to prevent MSRV bump (#1633)
+  * chore(deps): pin async-lock to prevent MSRV bump (#1632)
+  * chore(deps): update actions/attest-build-provenance action to v3.1.0 
(#1629)
+  * chore(deps): update lockfile (#1628)
+  * chore(deps): update github/codeql-action action to v4.31.9 (#1620)
+  * fix(deps): update rust crate toml to v0.9.10 (#1625)
+  * ci(release): fix winget releases (#1623)
+  * ci(release): fix winget releases (#1621)
+
+-------------------------------------------------------------------
+Wed Dec 17 10:44:06 UTC 2025 - Gerald Chen <[email protected]>
@@ -24 +65 @@
-Sun Dec 07 01:23:40 UTC 2025 - [email protected]
+Sun Dec 07 01:23:40 UTC 2025 - Gerald Chen <[email protected]>
@@ -40 +81 @@
-Tue Dec 02 15:20:18 UTC 2025 - [email protected]
+Tue Dec 02 15:20:18 UTC 2025 - Gerald Chen <[email protected]>
@@ -53 +94 @@
-Wed Nov 26 14:04:57 UTC 2025 - [email protected]
+Wed Nov 26 14:04:57 UTC 2025 - Gerald Chen <[email protected]>
@@ -89 +130 @@
-Mon Nov 17 16:08:44 UTC 2025 - [email protected]
+Mon Nov 17 16:08:44 UTC 2025 - Gerald Chen <[email protected]>
@@ -121 +162 @@
-Tue Nov 11 00:35:39 UTC 2025 - [email protected]
+Tue Nov 11 00:35:39 UTC 2025 - Gerald Chen <[email protected]>
@@ -183 +224 @@
-Sat Nov 01 14:45:33 UTC 2025 - [email protected]
+Sat Nov 01 14:45:33 UTC 2025 - Gerald Chen <[email protected]>
@@ -194 +235 @@
-Sat Nov 01 09:56:40 UTC 2025 - [email protected]
+Sat Nov 01 09:56:40 UTC 2025 - Gerald Chen <[email protected]>
@@ -324 +365 @@
-Fri Jun 13 11:41:19 UTC 2025 - [email protected]
+Fri Jun 13 11:41:19 UTC 2025 - Gerald Chen <[email protected]>
@@ -354 +395 @@
-Thu Apr 03 11:16:30 UTC 2025 - [email protected]
+Thu Apr 03 11:16:30 UTC 2025 - Gerald Chen <[email protected]>
@@ -393 +434 @@
-Wed Jan 01 11:37:35 UTC 2025 - [email protected]
+Wed Jan 01 11:37:35 UTC 2025 - Gerald Chen <[email protected]>
@@ -417 +458 @@
-Fri Oct 25 02:23:33 UTC 2024 - [email protected]
+Fri Oct 25 02:23:33 UTC 2024 - Gerald Chen <[email protected]>
@@ -472 +513 @@
-Thu Jul 04 08:01:26 UTC 2024 - [email protected]
+Thu Jul 04 08:01:26 UTC 2024 - Gerald Chen <[email protected]>

Old:
----
  topgrade-16.7.0.tar.zst

New:
----
  topgrade-16.8.0.tar.zst

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ topgrade.spec ++++++
--- /var/tmp/diff_new_pack.UYiqxZ/_old  2026-01-12 10:31:19.554212726 +0100
+++ /var/tmp/diff_new_pack.UYiqxZ/_new  2026-01-12 10:31:19.558212890 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package topgrade
 #
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           topgrade
-Version:        16.7.0
+Version:        16.8.0
 Release:        0
 Summary:        Upgrade all the things
 License:        GPL-3.0-only

++++++ _service ++++++
--- /var/tmp/diff_new_pack.UYiqxZ/_old  2026-01-12 10:31:19.602214696 +0100
+++ /var/tmp/diff_new_pack.UYiqxZ/_new  2026-01-12 10:31:19.606214859 +0100
@@ -3,12 +3,11 @@
     <param name="url">https://github.com/topgrade-rs/topgrade.git</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="scm">git</param>
-    <param name="revision">v16.7.0</param>
+    <param name="revision">v16.8.0</param>
     <param name="match-tag">*</param>
     <param name="versionrewrite-pattern">v(\d+\.\d+\.\d+)</param>
     <param name="versionrewrite-replacement">\1</param>
     <param name="changesgenerate">enable</param>
-    <param name="changesauthor">[email protected]</param>
   </service>
   <service mode="disabled" name="tar"/>
   <service mode="disabled" name="recompress">

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.UYiqxZ/_old  2026-01-12 10:31:19.630215845 +0100
+++ /var/tmp/diff_new_pack.UYiqxZ/_new  2026-01-12 10:31:19.634216009 +0100
@@ -1,7 +1,7 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/topgrade-rs/topgrade.git</param>
-              <param 
name="changesrevision">db36ce79df4a693d4e7bf666c38220fb8d141d4f</param></service><service
 name="tar_scm">
+              <param 
name="changesrevision">0dfc6dd72c59d7628d6d0c8b6bcc018b729f1fc3</param></service><service
 name="tar_scm">
                 <param 
name="url">https://ghproxy.net/https://github.com/topgrade-rs/topgrade.git</param>
               <param 
name="changesrevision">ef0a0d69bbe0cb08d6c4930ee18b734e03c215fb</param></service></servicedata>
 (No newline at EOF)

++++++ topgrade-16.7.0.tar.zst -> topgrade-16.8.0.tar.zst ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/topgrade-16.7.0/.github/ISSUE_TEMPLATE/bug_report.md 
new/topgrade-16.8.0/.github/ISSUE_TEMPLATE/bug_report.md
--- old/topgrade-16.7.0/.github/ISSUE_TEMPLATE/bug_report.md    2025-12-17 
11:07:46.000000000 +0100
+++ new/topgrade-16.8.0/.github/ISSUE_TEMPLATE/bug_report.md    2026-01-09 
13:43:16.000000000 +0100
@@ -32,7 +32,7 @@
 ## Expected Behavior
 
 <!--
-Describe the expected behavior.
+Describe the expected behavior. If this bug appeared with a new version of 
Topgrade, please state the last version of Topgrade that had the expected 
behavior.
 -->
 
 ## Steps to reproduce
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/topgrade-16.7.0/.github/renovate.json5 
new/topgrade-16.8.0/.github/renovate.json5
--- old/topgrade-16.7.0/.github/renovate.json5  2025-12-17 11:07:46.000000000 
+0100
+++ new/topgrade-16.8.0/.github/renovate.json5  2026-01-09 13:43:16.000000000 
+0100
@@ -3,6 +3,7 @@
     "extends": [
         "config:best-practices",
         ":semanticCommits",
+        ":semanticCommitTypeAll(chore)",
     ],
     lockFileMaintenance: {
         enabled: true,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/topgrade-16.7.0/.github/workflows/check_security_vulnerability.yml 
new/topgrade-16.8.0/.github/workflows/check_security_vulnerability.yml
--- old/topgrade-16.7.0/.github/workflows/check_security_vulnerability.yml      
2025-12-17 11:07:46.000000000 +0100
+++ new/topgrade-16.8.0/.github/workflows/check_security_vulnerability.yml      
2026-01-09 13:43:16.000000000 +0100
@@ -32,6 +32,6 @@
         uses: 
microsoft/DevSkim-Action@4b5047945a44163b94642a1cecc0d93a3f428cc6 # v1.0.16
 
       - name: Upload DevSkim scan results to GitHub Security tab
-        uses: 
github/codeql-action/upload-sarif@1b168cd39490f61582a9beae412bb7057a6b2c4e # 
v4.31.8
+        uses: 
github/codeql-action/upload-sarif@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # 
v4.31.9
         with:
           sarif_file: devskim-results.sarif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/topgrade-16.7.0/.github/workflows/create_release_assets.yml 
new/topgrade-16.8.0/.github/workflows/create_release_assets.yml
--- old/topgrade-16.7.0/.github/workflows/create_release_assets.yml     
2025-12-17 11:07:46.000000000 +0100
+++ new/topgrade-16.8.0/.github/workflows/create_release_assets.yml     
2026-01-09 13:43:16.000000000 +0100
@@ -93,7 +93,7 @@
           FILENAME=topgrade-${tag}-$(default-target)
           mv target/release/topgrade assets
           cd assets
-          tar --format=ustar -czf $FILENAME.tar.gz topgrade
+          tar --format=ustar -czf "$FILENAME.tar.gz" topgrade
           rm topgrade
           ls .
         if: ${{ matrix.platform != 'windows-latest' }}
@@ -137,7 +137,7 @@
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 
       - name: Generate artifact attestations
-        uses: 
actions/attest-build-provenance@977bb373ede98d70efdf65b84cb5f73e068dcc2a # 
v3.0.0
+        uses: 
actions/attest-build-provenance@00014ed6ed5efc5b1ab7f7f34a39eb55d41aa4f8 # 
v3.1.0
         with:
           subject-path: assets/*
 
@@ -284,12 +284,89 @@
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 
       - name: Generate artifact attestations
-        uses: 
actions/attest-build-provenance@977bb373ede98d70efdf65b84cb5f73e068dcc2a # 
v3.0.0
+        uses: 
actions/attest-build-provenance@00014ed6ed5efc5b1ab7f7f34a39eb55d41aa4f8 # 
v3.1.0
+        with:
+          subject-path: assets/*
+
+  # Publish release files for OpenBSD
+  openbsd_build:
+    permissions:
+      id-token: write
+      contents: write
+      attestations: write
+    runs-on: ubuntu-latest
+    env:
+      tag: ${{ github.event.client_payload.tag }}
+
+    defaults:
+      run:
+        shell: openbsd {0}
+
+    steps:
+      - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # 
v6.0.1
+        with:
+          persist-credentials: false
+
+      - name: Start OpenBSD VM
+        uses: vmactions/openbsd-vm@00753f2835e62704570734312de6f212069dfef7 # 
v1
+        with:
+          arch: x86_64
+          sync: nfs
+          usesh: true
+
+      - name: Install dependencies
+        run: >
+          pkg_add -v
+          rust
+          git
+          gmake
+          bash
+
+      - name: Install Rust components
+        run: |
+          pkg_add -v rust-rustfmt rust-clippy
+
+      - name: Check format
+        run: cargo fmt --all -- --check
+
+      - name: Run clippy
+        run: cargo clippy --all-targets --locked -- -D warnings
+
+      - name: Run clippy (All features)
+        run: cargo clippy --all-targets --locked --all-features -- -D warnings
+
+      - name: Run tests
+        run: cargo test
+
+      - name: Build Release binary
+        run: cargo build --release --all-features
+
+      - name: Package OpenBSD release
+        run: |
+          cargo install default-target
+          mkdir -p assets
+          FILENAME=topgrade-${tag}-$(default-target)
+          mv target/release/topgrade assets
+          cd assets
+          tar -F ustar -czf "$FILENAME.tar.gz" topgrade
+          rm topgrade
+          ls .
+
+      - name: Upload assets
+        run: gh release upload "${tag}" assets/*
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+      - name: Generate artifact attestations
+        uses: 
actions/attest-build-provenance@00014ed6ed5efc5b1ab7f7f34a39eb55d41aa4f8 # 
v3.1.0
         with:
           subject-path: assets/*
 
   triggers:
     runs-on: ubuntu-latest
+    # Don't wait for openbsd_build, because the workflows receiving this 
trigger (aur, winget)
+    #  don't use the openbsd binary, and because we don't want to fail the 
whole pipeline
+    #  when openbsd (which is not tested in CI) fails.
     needs: [ native_build, cross_build ]
     env:
       tag: ${{ github.event.client_payload.tag }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/topgrade-16.7.0/.github/workflows/release_to_pypi.yml 
new/topgrade-16.8.0/.github/workflows/release_to_pypi.yml
--- old/topgrade-16.7.0/.github/workflows/release_to_pypi.yml   2025-12-17 
11:07:46.000000000 +0100
+++ new/topgrade-16.8.0/.github/workflows/release_to_pypi.yml   2026-01-09 
13:43:16.000000000 +0100
@@ -108,7 +108,7 @@
       - uses: 
actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
 
       - name: Generate artifact attestation
-        uses: 
actions/attest-build-provenance@977bb373ede98d70efdf65b84cb5f73e068dcc2a # 
v3.0.0
+        uses: 
actions/attest-build-provenance@00014ed6ed5efc5b1ab7f7f34a39eb55d41aa4f8 # 
v3.1.0
         with:
           subject-path: 'wheels-*/*'
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/topgrade-16.7.0/.github/workflows/release_to_winget.yml 
new/topgrade-16.8.0/.github/workflows/release_to_winget.yml
--- old/topgrade-16.7.0/.github/workflows/release_to_winget.yml 2025-12-17 
11:07:46.000000000 +0100
+++ new/topgrade-16.8.0/.github/workflows/release_to_winget.yml 2026-01-09 
13:43:16.000000000 +0100
@@ -2,18 +2,17 @@
 
 on:
   repository_dispatch:
-    types: [ release-created ]
-
-permissions:
-  contents: read
+    types: [ release-assets-built ]
+  workflow_dispatch:
 
 jobs:
   publish:
-    runs-on: windows-latest
+    runs-on: ubuntu-latest
     steps:
-      - uses: 
vedantmgoyal2009/winget-releaser@19e706d4c9121098010096f9c495a70a7518b30f # main
+      - uses: michidk/winget-updater@3045a0d80c3ac5eee06d38bbe4174df74119099c 
# v1.1.6
         with:
-          release-tag: ${{ github.event.client_payload.tag }}
+          komac-token: ${{ secrets.WINGET_TOKEN }}
           identifier: topgrade-rs.topgrade
-          max-versions-to-keep: 5 # keep only latest 5 versions
-          token: ${{ secrets.WINGET_TOKEN }}
+          repo: topgrade-rs/topgrade
+          url: 
"https://github.com/topgrade-rs/topgrade/releases/download/v{VERSION}/topgrade-v{VERSION}-x86_64-pc-windows-msvc.zip";
+          custom-fork-owner: topgrade-rs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/topgrade-16.7.0/.github/workflows/scorecards.yml 
new/topgrade-16.8.0/.github/workflows/scorecards.yml
--- old/topgrade-16.7.0/.github/workflows/scorecards.yml        2025-12-17 
11:07:46.000000000 +0100
+++ new/topgrade-16.8.0/.github/workflows/scorecards.yml        2026-01-09 
13:43:16.000000000 +0100
@@ -71,6 +71,6 @@
 
       # Upload the results to GitHub's code scanning dashboard.
       - name: "Upload to code-scanning"
-        uses: 
github/codeql-action/upload-sarif@1b168cd39490f61582a9beae412bb7057a6b2c4e # 
v4.31.8
+        uses: 
github/codeql-action/upload-sarif@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # 
v4.31.9
         with:
           sarif_file: results.sarif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/topgrade-16.7.0/.pre-commit-config.yaml 
new/topgrade-16.8.0/.pre-commit-config.yaml
--- old/topgrade-16.7.0/.pre-commit-config.yaml 2025-12-17 11:07:46.000000000 
+0100
+++ new/topgrade-16.8.0/.pre-commit-config.yaml 2026-01-09 13:43:16.000000000 
+0100
@@ -16,7 +16,7 @@
   - id: trailing-whitespace
 
 - repo: https://github.com/crate-ci/typos
-  rev: v1.40.0
+  rev: v1.41.0
   hooks:
   - id: typos
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/topgrade-16.7.0/CHANGELOG.md 
new/topgrade-16.8.0/CHANGELOG.md
--- old/topgrade-16.7.0/CHANGELOG.md    2025-12-17 11:07:46.000000000 +0100
+++ new/topgrade-16.8.0/CHANGELOG.md    2026-01-09 13:43:16.000000000 +0100
@@ -7,6 +7,51 @@
 
 ## [Unreleased]
 
+## [16.8.0](https://github.com/topgrade-rs/topgrade/compare/v16.7.0...v16.8.0) 
- 2026-01-07
+
+### Added
+
+- *(cursor)* add cursor extension update support 
([#1659](https://github.com/topgrade-rs/topgrade/pull/1659))
+
+### Fixed
+
+- *(deps)* update rust crate tempfile to ~3.24.0 
([#1646](https://github.com/topgrade-rs/topgrade/pull/1646))
+- *(deps)* update rust crate toml to v0.9.10 
([#1625](https://github.com/topgrade-rs/topgrade/pull/1625))
+
+### Other
+
+- *(deps)* update lockfile 
([#1671](https://github.com/topgrade-rs/topgrade/pull/1671))
+- *(release)* fix OpenBSD release job 
([#1639](https://github.com/topgrade-rs/topgrade/pull/1639))
+- *(pre-commit)* autoupdate 
([#1668](https://github.com/topgrade-rs/topgrade/pull/1668))
+- *(deps)* lock file maintenance 
([#1666](https://github.com/topgrade-rs/topgrade/pull/1666))
+- *(deps)* update rust crate tokio to ~1.49.0 
([#1663](https://github.com/topgrade-rs/topgrade/pull/1663))
+- *(renovate)* change semantic commit type to always be 'chore' 
([#1665](https://github.com/topgrade-rs/topgrade/pull/1665))
+- fix category (os -> command-line-utlilities) in Cargo.toml 
([#1664](https://github.com/topgrade-rs/topgrade/pull/1664))
+- remove deprecated authors field from Cargo.toml 
([#1661](https://github.com/topgrade-rs/topgrade/pull/1661))
+- add authors and maintainers to pyproject.toml 
([#1662](https://github.com/topgrade-rs/topgrade/pull/1662))
+- *(deps)* update rust crate clap_complete to v4.5.64 
([#1654](https://github.com/topgrade-rs/topgrade/pull/1654))
+- *(deps)* bump clap_complete 
([#1657](https://github.com/topgrade-rs/topgrade/pull/1657))
+- *(pre-commit)* autoupdate 
([#1655](https://github.com/topgrade-rs/topgrade/pull/1655))
+- *(deps)* update vmactions/openbsd-vm digest to 00753f2 
([#1649](https://github.com/topgrade-rs/topgrade/pull/1649))
+- *(deps)* lock file maintenance 
([#1652](https://github.com/topgrade-rs/topgrade/pull/1652))
+- *(deps)* update rust crate serde_json to v1.0.148 
([#1650](https://github.com/topgrade-rs/topgrade/pull/1650))
+- *(deps)* update rust crate serde_json to v1.0.147 
([#1645](https://github.com/topgrade-rs/topgrade/pull/1645))
+- update bug_report issue template 
([#1643](https://github.com/topgrade-rs/topgrade/pull/1643))
+- *(deps)* update rust crate serde_json to v1.0.146 
([#1640](https://github.com/topgrade-rs/topgrade/pull/1640))
+- add Discord link to Python package 
([#1641](https://github.com/topgrade-rs/topgrade/pull/1641))
+- *(deps)* pin vmactions/openbsd-vm action to a17ab0b 
([#1636](https://github.com/topgrade-rs/topgrade/pull/1636))
+- *(deps)* update actions/attest-build-provenance action to v3.1.0 
([#1637](https://github.com/topgrade-rs/topgrade/pull/1637))
+- *(release)* add OpenBSD release steps 
([#1630](https://github.com/topgrade-rs/topgrade/pull/1630))
+- *(deps)* lock file maintenance 
([#1631](https://github.com/topgrade-rs/topgrade/pull/1631))
+- *(deps)* pin async-lock to prevent MSRV bump 
([#1635](https://github.com/topgrade-rs/topgrade/pull/1635))
+- *(deps)* pin async-lock to prevent MSRV bump 
([#1633](https://github.com/topgrade-rs/topgrade/pull/1633))
+- *(deps)* pin async-lock to prevent MSRV bump 
([#1632](https://github.com/topgrade-rs/topgrade/pull/1632))
+- *(deps)* update actions/attest-build-provenance action to v3.1.0 
([#1629](https://github.com/topgrade-rs/topgrade/pull/1629))
+- *(deps)* update lockfile 
([#1628](https://github.com/topgrade-rs/topgrade/pull/1628))
+- *(deps)* update github/codeql-action action to v4.31.9 
([#1620](https://github.com/topgrade-rs/topgrade/pull/1620))
+- *(release)* fix winget releases 
([#1623](https://github.com/topgrade-rs/topgrade/pull/1623))
+- *(release)* fix winget releases 
([#1621](https://github.com/topgrade-rs/topgrade/pull/1621))
+
 ## [16.7.0](https://github.com/topgrade-rs/topgrade/compare/v16.6.1...v16.7.0) 
- 2025-12-17
 
 ### Added
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/topgrade-16.7.0/Cargo.lock 
new/topgrade-16.8.0/Cargo.lock
--- old/topgrade-16.7.0/Cargo.lock      2025-12-17 11:07:46.000000000 +0100
+++ new/topgrade-16.8.0/Cargo.lock      2026-01-09 13:43:16.000000000 +0100
@@ -96,9 +96,12 @@
 
 [[package]]
 name = "arc-swap"
-version = "1.7.1"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"
+checksum = "51d03449bb8ca2cc2ef70869af31463d1ae5ccc8fa3e334b307203fbf815207e"
+dependencies = [
+ "rustversion",
+]
 
 [[package]]
 name = "async-broadcast"
@@ -193,7 +196,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -228,7 +231,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -332,9 +335,9 @@
 
 [[package]]
 name = "bumpalo"
-version = "3.19.0"
+version = "3.19.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43"
+checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510"
 
 [[package]]
 name = "byteorder"
@@ -350,9 +353,9 @@
 
 [[package]]
 name = "cc"
-version = "1.2.49"
+version = "1.2.51"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "90583009037521a116abf44494efecd645ba48b6622457080f080b85544e2215"
+checksum = "7a0aeaff4ff1a90589618835a598e545176939b97874f7abc7851caa0618f203"
 dependencies = [
  "find-msvc-tools",
  "shlex",
@@ -385,9 +388,9 @@
 
 [[package]]
 name = "clap"
-version = "4.5.53"
+version = "4.5.54"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8"
+checksum = "c6e6ff9dcd79cff5cd969a17a545d79e84ab086e444102a591e288a8aa3ce394"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -405,9 +408,9 @@
 
 [[package]]
 name = "clap_builder"
-version = "4.5.53"
+version = "4.5.54"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00"
+checksum = "fa42cf4d2b7a41bc8f663a7cab4031ebafa1bf3875705bfaf8466dc60ab52c00"
 dependencies = [
  "anstream",
  "anstyle",
@@ -417,9 +420,9 @@
 
 [[package]]
 name = "clap_complete"
-version = "4.5.61"
+version = "4.5.65"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "39615915e2ece2550c0149addac32fb5bd312c657f43845bb9088cb9c8a7c992"
+checksum = "430b4dc2b5e3861848de79627b2bedc9f3342c7da5173a14eaa5d0f8dc18ae5d"
 dependencies = [
  "clap",
 ]
@@ -433,7 +436,7 @@
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -509,9 +512,9 @@
 
 [[package]]
 name = "console"
-version = "0.16.1"
+version = "0.16.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "b430743a6eb14e9764d4260d4c0d8123087d504eeb9c48f2b2a5e810dd369df4"
+checksum = "03e45a4a8926227e4197636ba97a9fc9b00477e9f4bd711395687c5f0734bec4"
 dependencies = [
  "encode_unicode",
  "libc",
@@ -635,7 +638,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -665,7 +668,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -717,7 +720,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -790,7 +793,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -883,9 +886,9 @@
 
 [[package]]
 name = "find-msvc-tools"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844"
+checksum = "645cbb3a84e60b7531617d5ae4e57f7e27308f6445f5abf653209ea76dec8dff"
 
 [[package]]
 name = "flate2"
@@ -995,7 +998,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -1103,9 +1106,9 @@
 
 [[package]]
 name = "h2"
-version = "0.4.12"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386"
+checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54"
 dependencies = [
  "atomic-waker",
  "bytes",
@@ -1411,9 +1414,9 @@
 
 [[package]]
 name = "indexmap"
-version = "2.12.1"
+version = "2.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2"
+checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017"
 dependencies = [
  "equivalent",
  "hashbrown 0.16.1",
@@ -1442,9 +1445,9 @@
 
 [[package]]
 name = "iri-string"
-version = "0.7.9"
+version = "0.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397"
+checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a"
 dependencies = [
  "memchr",
  "serde",
@@ -1485,9 +1488,9 @@
 
 [[package]]
 name = "itoa"
-version = "1.0.15"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
+checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
 
 [[package]]
 name = "jetbrains-toolbox-updater"
@@ -1520,15 +1523,15 @@
 
 [[package]]
 name = "libc"
-version = "0.2.178"
+version = "0.2.179"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091"
+checksum = "c5a2d376baa530d1238d133232d15e239abad80d05838b4b59354e5268af431f"
 
 [[package]]
 name = "libredox"
-version = "0.1.10"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb"
+checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616"
 dependencies = [
  "bitflags 2.10.0",
  "libc",
@@ -1676,9 +1679,9 @@
 
 [[package]]
 name = "ntapi"
-version = "0.4.1"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4"
+checksum = "c70f219e21142367c70c0b30c6a9e3a14d55b4d12a204d897fbec83a0363f081"
 dependencies = [
  "winapi",
 ]
@@ -1889,9 +1892,9 @@
 
 [[package]]
 name = "portable-atomic"
-version = "1.11.1"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483"
+checksum = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950"
 
 [[package]]
 name = "potential_utf"
@@ -1923,7 +1926,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983"
 dependencies = [
- "toml_edit 0.23.9",
+ "toml_edit 0.23.10+spec-1.0.0",
 ]
 
 [[package]]
@@ -1952,9 +1955,9 @@
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.103"
+version = "1.0.105"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8"
+checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7"
 dependencies = [
  "unicode-ident",
 ]
@@ -2025,9 +2028,9 @@
 
 [[package]]
 name = "quote"
-version = "1.0.42"
+version = "1.0.43"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f"
+checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a"
 dependencies = [
  "proc-macro2",
 ]
@@ -2078,9 +2081,9 @@
 
 [[package]]
 name = "redox_syscall"
-version = "0.5.18"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
+checksum = "49f3fe0889e69e2ae9e41f4d6c4c0181701d00e4697b356fb1f74173a5e0ee27"
 dependencies = [
  "bitflags 2.10.0",
 ]
@@ -2136,9 +2139,9 @@
 
 [[package]]
 name = "reqwest"
-version = "0.12.25"
+version = "0.12.28"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "b6eff9328d40131d43bd911d42d79eb6a47312002a4daefc9e37f17e74a7701a"
+checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147"
 dependencies = [
  "base64",
  "bytes",
@@ -2223,7 +2226,7 @@
  "serde",
  "serde_json",
  "serde_yaml",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -2282,9 +2285,9 @@
 
 [[package]]
 name = "rustix"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e"
+checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34"
 dependencies = [
  "bitflags 2.10.0",
  "errno",
@@ -2295,9 +2298,9 @@
 
 [[package]]
 name = "rustls"
-version = "0.23.35"
+version = "0.23.36"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f"
+checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b"
 dependencies = [
  "once_cell",
  "ring",
@@ -2309,9 +2312,9 @@
 
 [[package]]
 name = "rustls-pki-types"
-version = "1.13.1"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "708c0f9d5f54ba0272468c1d306a52c495b31fa155e91bc25371e6df7996908c"
+checksum = "21e6f2ab2928ca4291b86736a8bd920a277a399bba1589409d72154ff87c1282"
 dependencies = [
  "web-time",
  "zeroize",
@@ -2336,9 +2339,9 @@
 
 [[package]]
 name = "ryu"
-version = "1.0.20"
+version = "1.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
+checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984"
 
 [[package]]
 name = "same-file"
@@ -2417,20 +2420,20 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.145"
+version = "1.0.149"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"
+checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
 dependencies = [
  "itoa",
  "memchr",
- "ryu",
  "serde",
  "serde_core",
+ "zmij",
 ]
 
 [[package]]
@@ -2441,7 +2444,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -2455,9 +2458,9 @@
 
 [[package]]
 name = "serde_spanned"
-version = "1.0.3"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392"
+checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776"
 dependencies = [
  "serde_core",
 ]
@@ -2530,10 +2533,11 @@
 
 [[package]]
 name = "signal-hook-registry"
-version = "1.4.7"
+version = "1.4.8"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "7664a098b8e616bdfcc2dc0e9ac44eb231eedf41db4e9fe95d8d32ec728dedad"
+checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b"
 dependencies = [
+ "errno",
  "libc",
 ]
 
@@ -2627,7 +2631,7 @@
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -2649,9 +2653,9 @@
 
 [[package]]
 name = "syn"
-version = "2.0.111"
+version = "2.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87"
+checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2675,7 +2679,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -2726,9 +2730,9 @@
 
 [[package]]
 name = "tempfile"
-version = "3.23.0"
+version = "3.24.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16"
+checksum = "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c"
 dependencies = [
  "fastrand",
  "getrandom 0.3.4",
@@ -2763,7 +2767,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -2774,7 +2778,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -2853,9 +2857,9 @@
 
 [[package]]
 name = "tokio"
-version = "1.48.0"
+version = "1.49.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408"
+checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86"
 dependencies = [
  "bytes",
  "libc",
@@ -2878,9 +2882,9 @@
 
 [[package]]
 name = "tokio-util"
-version = "0.7.17"
+version = "0.7.18"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594"
+checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098"
 dependencies = [
  "bytes",
  "futures-core",
@@ -2903,14 +2907,14 @@
 
 [[package]]
 name = "toml"
-version = "0.9.8"
+version = "0.9.10+spec-1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8"
+checksum = "0825052159284a1a8b4d6c0c86cbc801f2da5afd2b225fa548c72f2e74002f48"
 dependencies = [
  "indexmap",
  "serde_core",
- "serde_spanned 1.0.3",
- "toml_datetime 0.7.3",
+ "serde_spanned 1.0.4",
+ "toml_datetime 0.7.5+spec-1.1.0",
  "toml_parser",
  "toml_writer",
  "winnow",
@@ -2927,9 +2931,9 @@
 
 [[package]]
 name = "toml_datetime"
-version = "0.7.3"
+version = "0.7.5+spec-1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533"
+checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347"
 dependencies = [
  "serde_core",
 ]
@@ -2950,21 +2954,21 @@
 
 [[package]]
 name = "toml_edit"
-version = "0.23.9"
+version = "0.23.10+spec-1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "5d7cbc3b4b49633d57a0509303158ca50de80ae32c265093b24c414705807832"
+checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269"
 dependencies = [
  "indexmap",
- "toml_datetime 0.7.3",
+ "toml_datetime 0.7.5+spec-1.1.0",
  "toml_parser",
  "winnow",
 ]
 
 [[package]]
 name = "toml_parser"
-version = "1.0.4"
+version = "1.0.6+spec-1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e"
+checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44"
 dependencies = [
  "winnow",
 ]
@@ -2977,14 +2981,15 @@
 
 [[package]]
 name = "toml_writer"
-version = "1.0.4"
+version = "1.0.6+spec-1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2"
+checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607"
 
 [[package]]
 name = "topgrade"
-version = "16.7.0"
+version = "16.8.0"
 dependencies = [
+ "async-lock",
  "base64ct",
  "chrono",
  "clap",
@@ -2992,7 +2997,7 @@
  "clap_complete",
  "clap_mangen",
  "color-eyre",
- "console 0.16.1",
+ "console 0.16.2",
  "etcetera",
  "futures",
  "glob",
@@ -3022,7 +3027,7 @@
  "tempfile",
  "thiserror 2.0.17",
  "tokio",
- "toml 0.9.8",
+ "toml 0.9.10+spec-1.1.0",
  "tracing",
  "tracing-subscriber",
  "walkdir",
@@ -3079,9 +3084,9 @@
 
 [[package]]
 name = "tracing"
-version = "0.1.43"
+version = "0.1.44"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "2d15d90a0b5c19378952d479dc858407149d7bb45a14de0142f6c534b16fc647"
+checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100"
 dependencies = [
  "log",
  "pin-project-lite",
@@ -3097,14 +3102,14 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
 name = "tracing-core"
-version = "0.1.35"
+version = "0.1.36"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "7a04e24fab5c89c6a36eb8558c9656f30d81de51dfa4d3b45f26b21d61fa0a6c"
+checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a"
 dependencies = [
  "once_cell",
  "valuable",
@@ -3186,9 +3191,9 @@
 
 [[package]]
 name = "unicase"
-version = "2.8.1"
+version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539"
+checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142"
 
 [[package]]
 name = "unicode-ident"
@@ -3216,9 +3221,9 @@
 
 [[package]]
 name = "url"
-version = "2.5.7"
+version = "2.5.8"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b"
+checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed"
 dependencies = [
  "form_urlencoded",
  "idna",
@@ -3346,7 +3351,7 @@
  "bumpalo",
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
  "wasm-bindgen-shared",
 ]
 
@@ -3381,9 +3386,9 @@
 
 [[package]]
 name = "webpki-roots"
-version = "1.0.4"
+version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "b2878ef029c47c6e8cf779119f20fcf52bde7ad42a731b2a304bc221df17571e"
+checksum = "12bed680863276c63889429bfd6cab3b99943659923822de1c8a39c49e4d722c"
 dependencies = [
  "rustls-pki-types",
 ]
@@ -3541,7 +3546,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -3552,7 +3557,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -3888,7 +3893,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
  "synstructure",
 ]
 
@@ -3935,7 +3940,7 @@
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
  "zbus_names",
  "zvariant",
  "zvariant_utils",
@@ -3955,22 +3960,22 @@
 
 [[package]]
 name = "zerocopy"
-version = "0.8.31"
+version = "0.8.33"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3"
+checksum = "668f5168d10b9ee831de31933dc111a459c97ec93225beb307aed970d1372dfd"
 dependencies = [
  "zerocopy-derive",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.8.31"
+version = "0.8.33"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a"
+checksum = "2c7962b26b0a8685668b671ee4b54d007a67d4eaf05fda79ac0ecf41e32270f1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -3990,7 +3995,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
  "synstructure",
 ]
 
@@ -4030,7 +4035,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -4063,6 +4068,12 @@
 ]
 
 [[package]]
+name = "zmij"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "2fc5a66a20078bf1251bde995aa2fdcc4b800c70b5d92dd2c62abc5c60f679f8"
+
+[[package]]
 name = "zopfli"
 version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -4097,7 +4108,7 @@
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
  "zvariant_utils",
 ]
 
@@ -4110,6 +4121,6 @@
  "proc-macro2",
  "quote",
  "serde",
- "syn 2.0.111",
+ "syn 2.0.114",
  "winnow",
 ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/topgrade-16.7.0/Cargo.toml 
new/topgrade-16.8.0/Cargo.toml
--- old/topgrade-16.7.0/Cargo.toml      2025-12-17 11:07:46.000000000 +0100
+++ new/topgrade-16.8.0/Cargo.toml      2026-01-09 13:43:16.000000000 +0100
@@ -1,13 +1,12 @@
 [package]
 name = "topgrade"
 description = "Upgrade all the things"
-categories = ["os"]
+categories = ["command-line-utilities"]
 keywords = ["upgrade", "update"]
 license = "GPL-3.0-or-later"
 repository = "https://github.com/topgrade-rs/topgrade";
 rust-version = "1.84.1"
-version = "16.7.0"
-authors = ["Roey Darwish Dror <[email protected]>", "Thomas Schönauer 
<[email protected]>"]
+version = "16.8.0"
 exclude = ["doc/screenshot.gif", "BREAKINGCHANGES_dev.md"]
 edition = "2021"
 
@@ -17,7 +16,7 @@
 home = "=0.5.11"
 etcetera = "=0.10.0"
 serde = { version = "~1.0", features = ["derive"] }
-toml = { version = "=0.9.8", features = ["preserve_order"] }
+toml = { version = "=0.9.10", features = ["preserve_order"] }
 which_crate = { version = "~8.0", package = "which" }
 shellexpand = "~3.1"
 clap = { version = "~4.5", features = ["cargo", "derive"] }
@@ -29,8 +28,8 @@
 glob = "~0.3"
 strum = { version = "~0.27", features = ["derive"] }
 thiserror = "~2.0"
-tempfile = "~3.23"
-tokio = { version = "~1.48", features = ["process", "rt-multi-thread"] }
+tempfile = "~3.24.0"
+tokio = { version = "~1.49.0", features = ["process", "rt-multi-thread"] }
 futures = "~0.3"
 regex = "~1.12"
 semver = "~1.0"
@@ -52,6 +51,7 @@
 ignore = "=0.4.23"
 globset = "=0.4.16"
 base64ct = "<1.8.0"
+async-lock = "=3.4.1"
 clap-cargo = "0.15.2"
 
 [package.metadata.generate-rpm]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/topgrade-16.7.0/build-all.sh 
new/topgrade-16.8.0/build-all.sh
--- old/topgrade-16.7.0/build-all.sh    2025-12-17 11:07:46.000000000 +0100
+++ new/topgrade-16.8.0/build-all.sh    1970-01-01 01:00:00.000000000 +0100
@@ -1,95 +0,0 @@
-#!/usr/bin/env bash
-
-build_function() {
-    rustup update
-    cargo install cross
-
-
-    echo -n "Building x86_64-linux-gnu"
-    cross build --release --target x86_64-unknown-linux-gnu
-    echo -n "Building x86_64-linux-musl"
-    cross build --release --target x86_64-unknown-linux-musl
-    echo -n "Building x86_64-freebsd"
-    cross build --release --target x86_64-unknown-freebsd
-    echo -n "Building aarch64-linux-gnu"
-    cross build --release --target aarch64-unknown-linux-gnu
-    echo -n "Building aarch64-linux-musl"
-    cross build --release --target aarch64-unknown-linux-musl
-    echo -n "Building x86_64-windows-gnu"
-    cross build --release --target x86_64-pc-windows-gnu
-}
-
-package_function() {
-
-    cd build || exit 1
-    mkdir x86_64-unknown-linux-gnu/
-    mkdir x86_64-unknown-linux-musl/
-    mkdir x86_64-unknown-freebsd/
-    mkdir x86_64-pc-windows-gnu/
-    mkdir aarch64-unknown-linux-gnu/
-    mkdir aarch64-unknown-linux-musl/
-
-    cp ../target/x86_64-unknown-linux-gnu/release/topgrade      
x86_64-unknown-linux-gnu/
-    cp ../target/x86_64-unknown-linux-musl/release/topgrade     
x86_64-unknown-linux-musl/
-    cp ../target/x86_64-unknown-freebsd/release/topgrade        
x86_64-unknown-freebsd/topgrade
-    cp ../target/aarch64-unknown-linux-gnu/release/topgrade     
aarch64-unknown-linux-gnu/topgrade
-    cp ../target/aarch64-unknown-linux-musl/release/topgrade    
aarch64-unknown-linux-musl/topgrade
-    cp ../target/x86_64-pc-windows-gnu/release/topgrade.exe     
x86_64-pc-windows-gnu/topgrade.exe
-
-    cd x86_64-unknown-linux-gnu/ || exit 1
-    tar -czf "../topgrade-${ans}-x86_64-linux-gnu.tar.gz" topgrade
-    cd ..
-
-    cd x86_64-unknown-linux-musl/ || exit 1
-    tar -czf "../topgrade-${ans}-x86_64-linux-musl.tar.gz"  topgrade
-    cd ..
-
-    cd x86_64-unknown-freebsd/ || exit 1
-    tar -czf "../topgrade-${ans}-x86_64-freebsd.tar.gz"     topgrade
-    cd ..
-
-    cd aarch64-unknown-linux-gnu/ || exit 1
-    tar -czf "../topgrade-${ans}-aarch64-linux-gnu.tar.gz"  topgrade
-    cd ..
-
-    cd aarch64-unknown-linux-musl/ || exit 1
-    tar -czf "../topgrade-${ans}-aarch64-linux-musl.tar.gz" topgrade
-    cd ..
-
-    cd x86_64-pc-windows-gnu/ || exit 1
-    zip -q "../topgrade-${ans}-x86_64-windows.zip"           topgrade.exe
-    cd ..
-    cd ..
-
-}
-
-print_checksums() {
-
-
-    cd build/ || exit 1
-    sha256sum topgrade-"${ans}"-*
-    cd ../
-}
-
-while true; do
-
-echo "You should always have a look on scripts you download from the internet."
-# shellcheck disable=SC2162
-read -p "Do you still want to proceed? (y/n) " yn
-
-echo -n "Input version number: "
-# shellcheck disable=SC2162
-read ans
-mkdir build
-
-case $yn in
-       y ) build_function
-        package_function
-        print_checksums
-               break;;
-       n ) echo exiting...;
-               exit;;
-       * ) echo invalid response;;
-esac
-
-done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/topgrade-16.7.0/pyproject.toml 
new/topgrade-16.8.0/pyproject.toml
--- old/topgrade-16.7.0/pyproject.toml  2025-12-17 11:07:46.000000000 +0100
+++ new/topgrade-16.8.0/pyproject.toml  2026-01-09 13:43:16.000000000 +0100
@@ -8,6 +8,13 @@
 description = "Upgrade all the things"
 readme = "README.md"
 license = "GPL-3.0-or-later"
+authors = [
+    { name = "Roey Darwish Dror", email = "[email protected]" },
+    { name = "Thomas Schönauer", email = "[email protected]" },
+]
+maintainers = [
+    { name = "GideonBear", email = "[email protected]" },
+]
 requires-python = ">=3.7"
 classifiers = [
     "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
@@ -18,6 +25,7 @@
 
 urls.bugs = "https://github.com/topgrade-rs/topgrade/issues";
 urls.homepage = "https://github.com/topgrade-rs/topgrade";
+urls.discord = "https://discord.gg/Q8HGGWundY";
 
 
 [tool.maturin]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/topgrade-16.7.0/src/step.rs 
new/topgrade-16.8.0/src/step.rs
--- old/topgrade-16.7.0/src/step.rs     2025-12-17 11:07:46.000000000 +0100
+++ new/topgrade-16.8.0/src/step.rs     2026-01-09 13:43:16.000000000 +0100
@@ -45,6 +45,7 @@
     Conda,
     ConfigUpdate,
     Containers,
+    Cursor,
     CustomCommands,
     DebGet,
     Deno,
@@ -277,6 +278,9 @@
                 runner.execute(*self, "config-update", || 
linux::run_config_update(ctx))?
             }
             Containers => runner.execute(*self, "Containers", || 
containers::run_containers(ctx))?,
+            Cursor => runner.execute(*self, "Cursor extensions", || {
+                generic::run_cursor_extensions_update(ctx)
+            })?,
             CustomCommands => {
                 if let Some(commands) = ctx.config().commands() {
                     for (name, command) in commands
@@ -801,6 +805,7 @@
         Dotnet,
         Choosenim,
         Cargo,
+        Cursor,
         Flutter,
         Go,
         Emacs,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/topgrade-16.7.0/src/steps/generic.rs 
new/topgrade-16.8.0/src/steps/generic.rs
--- old/topgrade-16.7.0/src/steps/generic.rs    2025-12-17 11:07:46.000000000 
+0100
+++ new/topgrade-16.8.0/src/steps/generic.rs    2026-01-09 13:43:16.000000000 
+0100
@@ -469,6 +469,7 @@
     CodeInsiders,
     Codium,
     CodiumInsiders,
+    Cursor,
 }
 
 impl VSCodeVariant {
@@ -478,6 +479,7 @@
             VSCodeVariant::CodeInsiders => "VSCode Insiders",
             VSCodeVariant::Codium => "VSCodium",
             VSCodeVariant::CodiumInsiders => "VSCodium Insiders",
+            VSCodeVariant::Cursor => "Cursor",
         }
     }
 
@@ -487,6 +489,7 @@
             VSCodeVariant::CodeInsiders => "code-insiders",
             VSCodeVariant::Codium => "codium",
             VSCodeVariant::CodiumInsiders => "codium-insiders",
+            VSCodeVariant::Cursor => "cursor",
         }
     }
 
@@ -496,12 +499,13 @@
             VSCodeVariant::CodeInsiders => "Visual Studio Code Insiders 
extensions",
             VSCodeVariant::Codium => "VSCodium extensions",
             VSCodeVariant::CodiumInsiders => "VSCodium Insiders extensions",
+            VSCodeVariant::Cursor => "Cursor extensions",
         }
     }
 
     fn supports_profiles(&self) -> bool {
         match self {
-            VSCodeVariant::Code | VSCodeVariant::CodeInsiders => true,
+            VSCodeVariant::Code | VSCodeVariant::CodeInsiders | 
VSCodeVariant::Cursor => true,
             VSCodeVariant::Codium | VSCodeVariant::CodiumInsiders => false,
         }
     }
@@ -608,6 +612,10 @@
     run_vscode_compatible(VSCodeVariant::CodiumInsiders, ctx)
 }
 
+pub fn run_cursor_extensions_update(ctx: &ExecutionContext) -> Result<()> {
+    run_vscode_compatible(VSCodeVariant::Cursor, ctx)
+}
+
 pub fn run_pipx_update(ctx: &ExecutionContext) -> Result<()> {
     let pipx = require("pipx")?;
     print_separator("pipx");

++++++ vendor.tar.zst ++++++
/work/SRC/openSUSE:Factory/topgrade/vendor.tar.zst 
/work/SRC/openSUSE:Factory/.topgrade.new.1928/vendor.tar.zst differ: char 7, 
line 1

Reply via email to