Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package topgrade for openSUSE:Factory 
checked in at 2025-12-03 14:13:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/topgrade (Old)
 and      /work/SRC/openSUSE:Factory/.topgrade.new.14147 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "topgrade"

Wed Dec  3 14:13:17 2025 rev:15 rq:1320917 version:16.6.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/topgrade/topgrade.changes        2025-11-26 
18:51:05.160948803 +0100
+++ /work/SRC/openSUSE:Factory/.topgrade.new.14147/topgrade.changes     
2025-12-03 14:14:44.008151522 +0100
@@ -1,0 +2,13 @@
+Tue Dec 02 15:20:18 UTC 2025 - [email protected]
+
+- Update to version 16.6.0:
+  * chore: release v16.6.0 (#1565)
+  * fix(deps): downgrade mac-notifaction-sys to fix build failure (#1571)
+  * fix: Add more alternate names for Intellij IDEA (#1570)
+  * feat(git): add option to fetch instead of pull repositories (#1371)
+  * chore(deps): update http, tower-http, tracing, zerocopy (#1567)
+  * chore(deps): update swatinem/rust-cache action to v2.8.2 (#1562)
+  * ci: switch release_to_pypi.yml to trusted publishing (#1566)
+  * docs: README.md fixes (#1564)
+
+-------------------------------------------------------------------

Old:
----
  topgrade-16.5.0.tar.zst

New:
----
  topgrade-16.6.0.tar.zst

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

Other differences:
------------------
++++++ topgrade.spec ++++++
--- /var/tmp/diff_new_pack.QbCWEb/_old  2025-12-03 14:14:45.032194735 +0100
+++ /var/tmp/diff_new_pack.QbCWEb/_new  2025-12-03 14:14:45.032194735 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           topgrade
-Version:        16.5.0
+Version:        16.6.0
 Release:        0
 Summary:        Upgrade all the things
 License:        GPL-3.0-only

++++++ _service ++++++
--- /var/tmp/diff_new_pack.QbCWEb/_old  2025-12-03 14:14:45.072196423 +0100
+++ /var/tmp/diff_new_pack.QbCWEb/_new  2025-12-03 14:14:45.076196592 +0100
@@ -3,7 +3,7 @@
     <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.5.0</param>
+    <param name="revision">v16.6.0</param>
     <param name="match-tag">*</param>
     <param name="versionrewrite-pattern">v(\d+\.\d+\.\d+)</param>
     <param name="versionrewrite-replacement">\1</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.QbCWEb/_old  2025-12-03 14:14:45.100197605 +0100
+++ /var/tmp/diff_new_pack.QbCWEb/_new  2025-12-03 14:14:45.100197605 +0100
@@ -1,7 +1,7 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/topgrade-rs/topgrade.git</param>
-              <param 
name="changesrevision">eb68a2d8034364b2cba64b22aea11d3bda1a8b12</param></service><service
 name="tar_scm">
+              <param 
name="changesrevision">83e05e1fed24801b47983abce099f8b73121f3ac</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.5.0.tar.zst -> topgrade-16.6.0.tar.zst ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/topgrade-16.5.0/.github/workflows/ci.yml 
new/topgrade-16.6.0/.github/workflows/ci.yml
--- old/topgrade-16.5.0/.github/workflows/ci.yml        2025-11-26 
14:27:49.000000000 +0100
+++ new/topgrade-16.6.0/.github/workflows/ci.yml        2025-11-28 
19:54:01.000000000 +0100
@@ -140,7 +140,7 @@
           persist-credentials: false
 
       - name: Setup Rust Cache
-        uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # 
v2.8.1
+        uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # 
v2.8.2
         with:
           prefix-key: ${{ matrix.target }}
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/topgrade-16.5.0/.github/workflows/release_to_pypi.yml 
new/topgrade-16.6.0/.github/workflows/release_to_pypi.yml
--- old/topgrade-16.5.0/.github/workflows/release_to_pypi.yml   2025-11-26 
14:27:49.000000000 +0100
+++ new/topgrade-16.6.0/.github/workflows/release_to_pypi.yml   2025-11-28 
19:54:01.000000000 +0100
@@ -95,8 +95,10 @@
     name: Release
     runs-on: ubuntu-latest
     needs: [linux, windows, macos, sdist]
+    environment:
+      name: pypi
     permissions:
-      # Use to sign the release artifacts
+      # Use to sign the release artifacts, and for trusted publishing
       id-token: write
       # Used to upload release artifacts
       contents: write
@@ -112,8 +114,6 @@
 
       - name: Publish to PyPI
         uses: PyO3/maturin-action@86b9d133d34bc1b40018696f782949dac11bd380 # 
v1.49.4
-        env:
-          MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
         with:
           command: upload
           args: --non-interactive --skip-existing wheels-*/*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/topgrade-16.5.0/CHANGELOG.md 
new/topgrade-16.6.0/CHANGELOG.md
--- old/topgrade-16.5.0/CHANGELOG.md    2025-11-26 14:27:49.000000000 +0100
+++ new/topgrade-16.6.0/CHANGELOG.md    2025-11-28 19:54:01.000000000 +0100
@@ -7,6 +7,24 @@
 
 ## [Unreleased]
 
+## [16.6.0](https://github.com/topgrade-rs/topgrade/compare/v16.5.0...v16.6.0) 
- 2025-11-28
+
+### Added
+
+- *(git)* add option to fetch instead of pull repositories 
([#1371](https://github.com/topgrade-rs/topgrade/pull/1371))
+
+### Fixed
+
+- *(deps)* downgrade mac-notification-sys to fix build failure 
([#1571](https://github.com/topgrade-rs/topgrade/pull/1571))
+- Add more alternate names for Intellij IDEA 
([#1570](https://github.com/topgrade-rs/topgrade/pull/1570))
+
+### Other
+
+- *(deps)* update http, tower-http, tracing, zerocopy 
([#1567](https://github.com/topgrade-rs/topgrade/pull/1567))
+- *(deps)* update swatinem/rust-cache action to v2.8.2 
([#1562](https://github.com/topgrade-rs/topgrade/pull/1562))
+- switch release_to_pypi.yml to trusted publishing 
([#1566](https://github.com/topgrade-rs/topgrade/pull/1566))
+- README.md fixes ([#1564](https://github.com/topgrade-rs/topgrade/pull/1564))
+
 ## [16.5.0](https://github.com/topgrade-rs/topgrade/compare/v16.4.2...v16.5.0) 
- 2025-11-26
 
 ### Added
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/topgrade-16.5.0/Cargo.lock 
new/topgrade-16.6.0/Cargo.lock
--- old/topgrade-16.5.0/Cargo.lock      2025-11-26 14:27:49.000000000 +0100
+++ new/topgrade-16.6.0/Cargo.lock      2025-11-28 19:54:01.000000000 +0100
@@ -289,6 +289,12 @@
 checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3"
 
 [[package]]
+name = "block"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
+
+[[package]]
 name = "block-buffer"
 version = "0.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -298,15 +304,6 @@
 ]
 
 [[package]]
-name = "block2"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5"
-dependencies = [
- "objc2",
-]
-
-[[package]]
 name = "blocking"
 version = "1.6.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -688,6 +685,16 @@
 ]
 
 [[package]]
+name = "dirs-next"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
+dependencies = [
+ "cfg-if",
+ "dirs-sys-next",
+]
+
+[[package]]
 name = "dirs-sys"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -695,18 +702,19 @@
 dependencies = [
  "libc",
  "option-ext",
- "redox_users",
+ "redox_users 0.5.2",
  "windows-sys 0.61.2",
 ]
 
 [[package]]
-name = "dispatch2"
-version = "0.3.0"
+name = "dirs-sys-next"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec"
+checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
 dependencies = [
- "bitflags 2.10.0",
- "objc2",
+ "libc",
+ "redox_users 0.4.6",
+ "winapi",
 ]
 
 [[package]]
@@ -1161,12 +1169,11 @@
 
 [[package]]
 name = "http"
-version = "1.3.1"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565"
+checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a"
 dependencies = [
  "bytes",
- "fnv",
  "itoa",
 ]
 
@@ -1553,16 +1560,27 @@
 
 [[package]]
 name = "mac-notification-sys"
-version = "0.6.8"
-source = 
"git+https://github.com/h4llow3En/mac-notification-sys#7798ad033f3422b0fc9cdd25c17d3c400f4b7ef0";
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "dce8f34f3717aa37177e723df6c1fc5fb02b2a1087374ea3fe0ea42316dc8f91"
 dependencies = [
  "cc",
- "objc2",
- "objc2-foundation",
+ "dirs-next",
+ "objc-foundation",
+ "objc_id",
  "time",
 ]
 
 [[package]]
+name = "malloc_buf"
+version = "0.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
 name = "matchers"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -1705,42 +1723,32 @@
 checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
 
 [[package]]
-name = "objc2"
-version = "0.6.3"
+name = "objc"
+version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05"
+checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
 dependencies = [
- "objc2-encode",
+ "malloc_buf",
 ]
 
 [[package]]
-name = "objc2-core-foundation"
-version = "0.3.2"
+name = "objc-foundation"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536"
+checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
 dependencies = [
- "bitflags 2.10.0",
- "dispatch2",
- "objc2",
+ "block",
+ "objc",
+ "objc_id",
 ]
 
 [[package]]
-name = "objc2-encode"
-version = "4.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33"
-
-[[package]]
-name = "objc2-foundation"
+name = "objc2-core-foundation"
 version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272"
+checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536"
 dependencies = [
  "bitflags 2.10.0",
- "block2",
- "libc",
- "objc2",
- "objc2-core-foundation",
 ]
 
 [[package]]
@@ -1754,6 +1762,15 @@
 ]
 
 [[package]]
+name = "objc_id"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
+dependencies = [
+ "objc",
+]
+
+[[package]]
 name = "object"
 version = "0.37.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -2078,6 +2095,17 @@
 
 [[package]]
 name = "redox_users"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43"
+dependencies = [
+ "getrandom 0.2.16",
+ "libredox",
+ "thiserror 1.0.69",
+]
+
+[[package]]
+name = "redox_users"
 version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac"
@@ -2974,7 +3002,7 @@
 
 [[package]]
 name = "topgrade"
-version = "16.5.0"
+version = "16.6.0"
 dependencies = [
  "base64ct",
  "chrono",
@@ -2993,6 +3021,7 @@
  "indexmap",
  "is_elevated",
  "jetbrains-toolbox-updater",
+ "mac-notification-sys",
  "merge",
  "nix",
  "notify-rust",
@@ -3039,9 +3068,9 @@
 
 [[package]]
 name = "tower-http"
-version = "0.6.6"
+version = "0.6.7"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2"
+checksum = "9cf146f99d442e8e68e585f5d798ccd3cad9a7835b917e09728880a862706456"
 dependencies = [
  "bitflags 2.10.0",
  "bytes",
@@ -3069,9 +3098,9 @@
 
 [[package]]
 name = "tracing"
-version = "0.1.41"
+version = "0.1.42"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0"
+checksum = "8eb41cbdb933e23b7929f47bb577710643157d7602ef3a2ebd3902b13ac5eda6"
 dependencies = [
  "log",
  "pin-project-lite",
@@ -3081,9 +3110,9 @@
 
 [[package]]
 name = "tracing-attributes"
-version = "0.1.30"
+version = "0.1.31"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903"
+checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -3092,9 +3121,9 @@
 
 [[package]]
 name = "tracing-core"
-version = "0.1.34"
+version = "0.1.35"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678"
+checksum = "7a04e24fab5c89c6a36eb8558c9656f30d81de51dfa4d3b45f26b21d61fa0a6c"
 dependencies = [
  "once_cell",
  "valuable",
@@ -3123,9 +3152,9 @@
 
 [[package]]
 name = "tracing-subscriber"
-version = "0.3.20"
+version = "0.3.21"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5"
+checksum = "bee4bf13715d00789f2a099fd05d127c012bddc5c6628f2c8968374c1820c01d"
 dependencies = [
  "matchers",
  "nu-ansi-term",
@@ -3945,18 +3974,18 @@
 
 [[package]]
 name = "zerocopy"
-version = "0.8.28"
+version = "0.8.30"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "43fa6694ed34d6e57407afbccdeecfa268c470a7d2a5b0cf49ce9fcc345afb90"
+checksum = "4ea879c944afe8a2b25fef16bb4ba234f47c694565e97383b36f3a878219065c"
 dependencies = [
  "zerocopy-derive",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.8.28"
+version = "0.8.30"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "c640b22cd9817fae95be82f0d2f90b11f7605f6c319d16705c459b27ac2cbc26"
+checksum = "cf955aa904d6040f70dc8e9384444cb1030aed272ba3cb09bbc4ab9e7c1f34f5"
 dependencies = [
  "proc-macro2",
  "quote",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/topgrade-16.5.0/Cargo.toml 
new/topgrade-16.6.0/Cargo.toml
--- old/topgrade-16.5.0/Cargo.toml      2025-11-26 14:27:49.000000000 +0100
+++ new/topgrade-16.6.0/Cargo.toml      2025-11-28 19:54:01.000000000 +0100
@@ -6,7 +6,7 @@
 license = "GPL-3.0-or-later"
 repository = "https://github.com/topgrade-rs/topgrade";
 rust-version = "1.84.1"
-version = "16.5.0"
+version = "16.6.0"
 authors = ["Roey Darwish Dror <[email protected]>", "Thomas Schönauer 
<[email protected]>"]
 exclude = ["doc/screenshot.gif", "BREAKINGCHANGES_dev.md"]
 edition = "2021"
@@ -53,9 +53,6 @@
 base64ct = "<1.8.0"
 clap-cargo = "0.15.2"
 
-[patch.crates-io]
-mac-notification-sys = { git = 
"https://github.com/h4llow3En/mac-notification-sys"; }
-
 [package.metadata.generate-rpm]
 assets = [{ source = "target/release/topgrade", dest = "/usr/bin/topgrade" }]
 
@@ -95,6 +92,9 @@
 windows = { version = "~0.62", features = ["Win32_System_Console"] }
 windows-registry = "~0.6"
 
+[target.'cfg(macos)'.dependencies]
+mac-notification-sys = "=0.6.2"
+
 [profile.release]
 lto = true
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/topgrade-16.5.0/README.md 
new/topgrade-16.6.0/README.md
--- old/topgrade-16.5.0/README.md       2025-11-26 14:27:49.000000000 +0100
+++ new/topgrade-16.6.0/README.md       2025-11-28 19:54:01.000000000 +0100
@@ -1,6 +1,6 @@
 <div align="center">
   <h1>
-    <img alt="Topgrade" src="doc/topgrade_transparent.png" width="850px">
+    <img alt="Topgrade" 
src="https://github.com/topgrade-rs/topgrade/blob/main/doc/topgrade_transparent.png?raw=true";
 width="850px">
   </h1>
 
 <a href="https://github.com/topgrade-rs/topgrade/releases";><img alt="GitHub 
Release" 
src="https://img.shields.io/github/release/topgrade-rs/topgrade.svg";></a>
@@ -8,7 +8,7 @@
 <a href="https://aur.archlinux.org/packages/topgrade";><img alt="AUR" 
src="https://img.shields.io/aur/version/topgrade.svg";></a>
 <a href="https://formulae.brew.sh/formula/topgrade";><img alt="Homebrew" 
src="https://img.shields.io/homebrew/v/topgrade.svg";></a>
 
-  <img alt="Demo" src="doc/topgrade_demo.gif">
+  <img alt="Demo" 
src="https://github.com/topgrade-rs/topgrade/blob/main/doc/topgrade_demo.gif?raw=true";>
 </div>
 
 ## Introduction
@@ -57,7 +57,7 @@
 
 ## Configuration
 
-See `config.example.toml` for an example configuration file.
+See 
[`config.example.toml`](https://github.com/topgrade-rs/topgrade/blob/main/config.example.toml)
 for an example configuration file.
 
 ## Migration and Breaking Changes
 
@@ -117,7 +117,7 @@
 
 ### Want to contribute?
 
-See 
[CONTRIBUTING.md](https://github.com/topgrade-rs/topgrade/blob/master/CONTRIBUTING.md)
+See 
[CONTRIBUTING.md](https://github.com/topgrade-rs/topgrade/blob/main/CONTRIBUTING.md)
 
 ## Discord server
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/topgrade-16.5.0/config.example.toml 
new/topgrade-16.6.0/config.example.toml
--- old/topgrade-16.5.0/config.example.toml     2025-11-26 14:27:49.000000000 
+0100
+++ new/topgrade-16.6.0/config.example.toml     2025-11-28 19:54:01.000000000 
+0100
@@ -236,21 +236,23 @@
 
 
 [git]
-# How many repos to pull at max in parallel
+# How many repos to pull or fetch at max in parallel
 # max_concurrency = 5
 
-# Additional git repositories to pull
+# Additional git repositories to pull or fetch
 # repos = [
 #     "~/src/*/",
 #     "~/.config/something"
 # ]
 
-# Don't pull the predefined git repos
+# Set to `false` to skip pulling/fetching the predefined git repos
 # pull_predefined = false
 
-# Arguments to pass Git when pulling Repositories
+# Arguments to pass Git when pulling/fetching Repositories
 # arguments = "--rebase --autostash"
 
+# Whether to perform a `git fetch` instead of `git pull`
+# fetch_only = false
 
 [windows]
 # Manually select Windows updates
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/topgrade-16.5.0/locales/app.yml 
new/topgrade-16.6.0/locales/app.yml
--- old/topgrade-16.5.0/locales/app.yml 2025-11-26 14:27:49.000000000 +0100
+++ new/topgrade-16.6.0/locales/app.yml 2025-11-28 19:54:01.000000000 +0100
@@ -72,6 +72,14 @@
   zh_CN: "正在拉取"
   zh_TW: "正在拉取"
   de: "Abrufen"
+"Fetching":
+  en: "Fetching"
+  lt: "Gaunama"
+  es: "Obteniendo"
+  fr: "Récupération"
+  zh_CN: "正在获取"
+  zh_TW: "正在獲取"
+  de: "Abrufen"
 "No Breaking changes":
   en: "No Breaking changes"
   lt: "Nėra esminių pakeitimų"
@@ -168,6 +176,14 @@
   zh_CN: "正在拉取"
   zh_TW: "正在拉取"
   de: "abrufen"
+"fetching":
+  en: "fetching"
+  lt: "gaunama"
+  es: "obteniendo"
+  fr: "récupération"
+  zh_CN: "正在获取"
+  zh_TW: "正在獲取"
+  de: "abrufen"
 "Changed":
   en: "Changed"
   lt: "Pakeista"
@@ -958,6 +974,14 @@
   zh_CN: "拉取 %{repo}"
   zh_TW: "拉取 %{repo}"
   de: "Würde %{repo} abrufen"
+"Would fetch {repo}":
+  en: "Would fetch %{repo}"
+  lt: "Gautų %{repo}"
+  es: "Obteniendo %{repo}"
+  fr: "Récupérerait %{repo}"
+  zh_CN: "获取 %{repo}"
+  zh_TW: "獲取 %{repo}"
+  de: "Würde %{repo} abrufen"
 "No Neovim config found":
   en: "No Neovim config found"
   lt: "Neovim konfigūracija nerasta"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/topgrade-16.5.0/src/config.rs 
new/topgrade-16.6.0/src/config.rs
--- old/topgrade-16.5.0/src/config.rs   2025-11-26 14:27:49.000000000 +0100
+++ new/topgrade-16.6.0/src/config.rs   2025-11-28 19:54:01.000000000 +0100
@@ -81,6 +81,8 @@
     repos: Option<Vec<String>>,
 
     pull_predefined: Option<bool>,
+
+    fetch_only: Option<bool>,
 }
 
 #[derive(Deserialize, Default, Debug, Merge)]
@@ -1116,6 +1118,15 @@
         self.config_file.git.as_ref().and_then(|git| git.arguments.as_ref())
     }
 
+    /// Only fetch repositories instead of pulling
+    pub fn git_fetch_only(&self) -> bool {
+        self.config_file
+            .git
+            .as_ref()
+            .and_then(|git| git.fetch_only)
+            .unwrap_or(false)
+    }
+
     pub fn tmux_config(&self) -> Result<TmuxConfig> {
         let args = self.tmux_arguments()?;
         Ok(TmuxConfig {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/topgrade-16.5.0/src/step.rs 
new/topgrade-16.6.0/src/step.rs
--- old/topgrade-16.5.0/src/step.rs     2025-11-26 14:27:49.000000000 +0100
+++ new/topgrade-16.6.0/src/step.rs     2025-11-28 19:54:01.000000000 +0100
@@ -322,7 +322,7 @@
             Gcloud => runner.execute(*self, "gcloud", || 
generic::run_gcloud_components_update(ctx))?,
             Gem => runner.execute(*self, "gem", || generic::run_gem(ctx))?,
             Ghcup => runner.execute(*self, "ghcup", || 
generic::run_ghcup_update(ctx))?,
-            GitRepos => runner.execute(*self, "Git Repositories", || 
git::run_git_pull(ctx))?,
+            GitRepos => runner.execute(*self, "Git Repositories", || 
git::run_git_pull_or_fetch(ctx))?,
             GithubCliExtensions => runner.execute(*self, "GitHub CLI 
Extensions", || {
                 generic::run_ghcli_extensions_upgrade(ctx)
             })?,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/topgrade-16.5.0/src/steps/generic.rs 
new/topgrade-16.6.0/src/steps/generic.rs
--- old/topgrade-16.5.0/src/steps/generic.rs    2025-11-26 14:27:49.000000000 
+0100
+++ new/topgrade-16.6.0/src/steps/generic.rs    2025-11-28 19:54:01.000000000 
+0100
@@ -1775,7 +1775,9 @@
         require_one([
             "idea",
             "intellij-idea-ultimate-edition",
+            "intellij-idea-ultimate",
             "intellij-idea-community-edition",
+            "intellij-idea-community",
         ])?,
         "IntelliJ IDEA",
     )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/topgrade-16.5.0/src/steps/git.rs 
new/topgrade-16.6.0/src/steps/git.rs
--- old/topgrade-16.5.0/src/steps/git.rs        2025-11-26 14:27:49.000000000 
+0100
+++ new/topgrade-16.6.0/src/steps/git.rs        2025-11-28 19:54:01.000000000 
+0100
@@ -28,7 +28,7 @@
 #[cfg(windows)]
 use crate::WINDOWS_DIRS;
 
-pub fn run_git_pull(ctx: &ExecutionContext) -> Result<()> {
+pub fn run_git_pull_or_fetch(ctx: &ExecutionContext) -> Result<()> {
     let mut repos = RepoStep::try_new()?;
     let config = ctx.config();
 
@@ -115,7 +115,7 @@
 
     print_separator(t!("Git repositories"));
 
-    repos.pull_repos(ctx)
+    repos.pull_or_fetch_repos(ctx)
 }
 
 #[cfg(windows)]
@@ -298,41 +298,41 @@
         debug_assert!(_removed);
     }
 
-    /// Try to pull a repo.
-    async fn pull_repo<P: AsRef<Path>>(&self, ctx: &ExecutionContext<'_>, 
repo: P) -> Result<()> {
+    /// Try to pull a repo, or fetch it if `fetch_only` is enabled.
+    async fn pull_or_fetch_repo<P: AsRef<Path>>(&self, ctx: 
&ExecutionContext<'_>, repo: P) -> Result<()> {
         let before_revision = get_head_revision(&self.git, &repo);
+        let is_fetch_only = ctx.config().git_fetch_only();
 
         if ctx.config().verbose() {
-            println!("{} {}", style(t!("Pulling")).cyan().bold(), 
repo.as_ref().display());
+            let action = if is_fetch_only { t!("Fetching") } else { 
t!("Pulling") };
+            println!("{} {}", style(action).cyan().bold(), 
repo.as_ref().display());
         }
 
         let mut command = AsyncCommand::new(&self.git);
+        command.stdin(Stdio::null()).current_dir(&repo);
 
-        command
-            .stdin(Stdio::null())
-            .current_dir(&repo)
-            .args(["pull", "--ff-only"]);
+        if is_fetch_only {
+            command.args(["fetch", "--recurse-submodules"]);
+        } else {
+            command.args(["pull", "--ff-only", "--recurse-submodules"]);
+        }
 
         if let Some(extra_arguments) = ctx.config().git_arguments() {
             command.args(extra_arguments.split_whitespace());
         }
 
-        let pull_output = command.output().await?;
-        let submodule_output = AsyncCommand::new(&self.git)
-            .args(["submodule", "update", "--recursive"])
-            .current_dir(&repo)
-            .stdin(Stdio::null())
-            .output()
-            .await?;
-        let result = output_checked_utf8(pull_output)
-            .and_then(|()| output_checked_utf8(submodule_output))
-            .wrap_err_with(|| format!("Failed to pull {}", 
repo.as_ref().display()));
+        let output = command.output().await?;
+        let result = output_checked_utf8(output).wrap_err_with(|| {
+            let action = if is_fetch_only { "fetch" } else { "pull" };
+            format!("Failed to {} {}", action, repo.as_ref().display())
+        });
 
         if result.is_err() {
+            let action = if is_fetch_only { t!("fetching") } else { 
t!("pulling") };
             println!(
                 "{} {} {}",
                 style(t!("Failed")).red().bold(),
-                t!("pulling"),
+                action,
                 repo.as_ref().display()
             );
         } else {
@@ -366,16 +366,23 @@
         result
     }
 
-    /// Pull the repositories specified in `self.repos`.
+    /// Pulls or fetches the repositories specified in `self.repos`, depending 
on `fetch_only`.
     ///
     /// # NOTE
     /// This function will create an async runtime and do the real job so the
     /// function itself is not async.
-    fn pull_repos(&self, ctx: &ExecutionContext) -> Result<()> {
+    fn pull_or_fetch_repos(&self, ctx: &ExecutionContext) -> Result<()> {
+        let is_fetch_only = ctx.config().git_fetch_only();
+
         if ctx.run_type().dry() {
-            self.repos
-                .iter()
-                .for_each(|repo| println!("{}", t!("Would pull {repo}", repo = 
repo.display())));
+            self.repos.iter().for_each(|repo| {
+                let message = if is_fetch_only {
+                    t!("Would fetch {repo}", repo = repo.display())
+                } else {
+                    t!("Would pull {repo}", repo = repo.display())
+                };
+                println!("{}", message);
+            });
 
             return Ok(());
         }
@@ -403,7 +410,7 @@
                 }
                 _ => true, // repo has remotes or command to check for remotes 
has failed. proceed to pull anyway.
             })
-            .map(|repo| self.pull_repo(ctx, repo));
+            .map(|repo| self.pull_or_fetch_repo(ctx, repo));
 
         let stream_of_futures = if let Some(limit) = 
ctx.config().git_concurrency_limit() {
             iter(futures_iterator).buffer_unordered(limit).boxed()

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

Reply via email to