Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-maturin for openSUSE:Factory 
checked in at 2024-09-29 18:09:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-maturin (Old)
 and      /work/SRC/openSUSE:Factory/.python-maturin.new.29891 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-maturin"

Sun Sep 29 18:09:49 2024 rev:42 rq:1204352 version:1.7.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-maturin/python-maturin.changes    
2024-08-26 22:06:47.589404709 +0200
+++ /work/SRC/openSUSE:Factory/.python-maturin.new.29891/python-maturin.changes 
2024-09-29 18:10:21.596941735 +0200
@@ -1,0 +2,25 @@
+Sat Sep 28 12:41:34 UTC 2024 - Mia Herkt <m...@0x0.st>
+
+- Update to 1.7.4
+  * Fix musllinux rpath for non-cffi bindings
+    gh#PyO3/maturin#2233
+- Changes in 1.7.3:
+  * Fix pypi/testpypi upload
+    gh#PyO3/maturin#2229
+- Changes in 1.7.2:
+  * Split out test-windows-cross to speed up ci
+    gh#PyO3/maturin#2188
+  * Upgrade cargo-deny
+    gh#PyO3/maturin#2200
+  * Cross building fixes
+    gh#PyO3/maturin#2204
+  * UniFFI: supports bindings generated from multiple crates
+    gh#PyO3/maturin#2208
+  * doc: add -r/--release flag info to tutorial
+    gh#PyO3/maturin#2211
+  * Enable --all-features when building source distribution
+    gh#PyO3/maturin#2215
+  * Replace "." with "/" in module_name
+    gh#PyO3/maturin#2219
+
+-------------------------------------------------------------------

Old:
----
  maturin-1.7.1.tar.gz

New:
----
  maturin-1.7.4.tar.gz

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

Other differences:
------------------
++++++ python-maturin.spec ++++++
--- /var/tmp/diff_new_pack.cfIDNZ/_old  2024-09-29 18:10:23.581023707 +0200
+++ /var/tmp/diff_new_pack.cfIDNZ/_new  2024-09-29 18:10:23.581023707 +0200
@@ -18,7 +18,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-maturin
-Version:        1.7.1
+Version:        1.7.4
 Release:        0
 Summary:        Rust/Python Interoperability
 License:        Apache-2.0 OR MIT

++++++ maturin-1.7.1.tar.gz -> maturin-1.7.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maturin-1.7.1/.pre-commit-config.yaml 
new/maturin-1.7.4/.pre-commit-config.yaml
--- old/maturin-1.7.1/.pre-commit-config.yaml   2024-08-22 00:02:56.000000000 
+0200
+++ new/maturin-1.7.4/.pre-commit-config.yaml   2024-09-26 05:07:15.000000000 
+0200
@@ -56,12 +56,12 @@
           )
       - id: mixed-line-ending
   - repo: https://github.com/astral-sh/ruff-pre-commit
-    rev: v0.6.1
+    rev: v0.6.7
     hooks:
       - id: ruff-format
       - id: ruff
   - repo: https://github.com/pre-commit/mirrors-mypy
-    rev: v1.11.1
+    rev: v1.11.2
     hooks:
       - id: mypy
         entry: mypy maturin/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maturin-1.7.1/Cargo.lock new/maturin-1.7.4/Cargo.lock
--- old/maturin-1.7.1/Cargo.lock        2024-08-22 00:02:56.000000000 +0200
+++ new/maturin-1.7.4/Cargo.lock        2024-09-26 05:07:15.000000000 +0200
@@ -3,10 +3,10 @@
 version = 3
 
 [[package]]
-name = "adler"
-version = "1.0.2"
+name = "adler2"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
 
 [[package]]
 name = "ahash"
@@ -86,18 +86,9 @@
 
 [[package]]
 name = "anyhow"
-version = "1.0.86"
+version = "1.0.89"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
-
-[[package]]
-name = "arbitrary"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110"
-dependencies = [
- "derive_arbitrary",
-]
+checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6"
 
 [[package]]
 name = "autocfg"
@@ -113,17 +104,11 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.76",
 ]
 
 [[package]]
 name = "base64"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
-
-[[package]]
-name = "base64"
 version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
@@ -157,9 +142,9 @@
 
 [[package]]
 name = "bstr"
-version = "1.9.1"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
+checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c"
 dependencies = [
  "memchr",
  "serde",
@@ -173,9 +158,9 @@
 
 [[package]]
 name = "bytes"
-version = "1.6.0"
+version = "1.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
+checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50"
 
 [[package]]
 name = "bytesize"
@@ -218,9 +203,9 @@
 
 [[package]]
 name = "camino"
-version = "1.1.7"
+version = "1.1.9"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239"
+checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3"
 dependencies = [
  "serde",
 ]
@@ -234,7 +219,7 @@
  "home",
  "serde",
  "serde_derive",
- "toml_edit 0.22.14",
+ "toml_edit 0.22.16",
 ]
 
 [[package]]
@@ -282,24 +267,27 @@
 
 [[package]]
 name = "cargo-zigbuild"
-version = "0.18.4"
+version = "0.19.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "65004153e67ac23be88a8e244304a872d727b2aa08654dcabfbecd1fdea4a488"
+checksum = "e700178b11124560cdbabc8808e938fe6d77abde036b77a4c03a191b02bac854"
 dependencies = [
  "anyhow",
+ "cargo-config2",
  "cargo-options",
  "cargo_metadata",
  "clap",
+ "crc",
  "dirs",
  "fs-err",
  "path-slash",
  "rustc_version",
+ "rustflags",
  "semver",
  "serde",
  "serde_json",
  "shlex",
  "target-lexicon",
- "which 6.0.1",
+ "which 6.0.3",
 ]
 
 [[package]]
@@ -336,9 +324,12 @@
 
 [[package]]
 name = "cc"
-version = "1.1.6"
+version = "1.1.21"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f"
+checksum = "07b1695e2c7e8fc85310cde85aeaab7e3097f593c91d209d3f9df76c928100f0"
+dependencies = [
+ "shlex",
+]
 
 [[package]]
 name = "cfb"
@@ -359,11 +350,11 @@
 
 [[package]]
 name = "charset"
-version = "0.1.3"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "18e9079d1a12a2cc2bffb5db039c43661836ead4082120d5844f02555aca2d46"
+checksum = "f1f927b07c74ba84c7e5fe4db2baeb3e996ab2688992e39ac68ce3220a677c7e"
 dependencies = [
- "base64 0.13.1",
+ "base64 0.22.1",
  "encoding_rs",
 ]
 
@@ -439,7 +430,7 @@
  "heck 0.5.0",
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.76",
 ]
 
 [[package]]
@@ -518,6 +509,21 @@
 ]
 
 [[package]]
+name = "crc"
+version = "3.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636"
+dependencies = [
+ "crc-catalog",
+]
+
+[[package]]
+name = "crc-catalog"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
+
+[[package]]
 name = "crc32fast"
 version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -597,17 +603,6 @@
 ]
 
 [[package]]
-name = "derive_arbitrary"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.66",
-]
-
-[[package]]
 name = "dialoguer"
 version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -657,17 +652,6 @@
 ]
 
 [[package]]
-name = "displaydoc"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.66",
-]
-
-[[package]]
 name = "dissimilar"
 version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -675,9 +659,9 @@
 
 [[package]]
 name = "dunce"
-version = "1.0.4"
+version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
+checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"
 
 [[package]]
 name = "dyn-clone"
@@ -687,9 +671,9 @@
 
 [[package]]
 name = "either"
-version = "1.12.0"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b"
+checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
 
 [[package]]
 name = "encode_unicode"
@@ -761,9 +745,9 @@
 
 [[package]]
 name = "flate2"
-version = "1.0.30"
+version = "1.0.33"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae"
+checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
@@ -864,7 +848,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.76",
 ]
 
 [[package]]
@@ -932,9 +916,9 @@
 
 [[package]]
 name = "globset"
-version = "0.4.14"
+version = "0.4.15"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
+checksum = "15f1ce686646e7f1e19bf7d5533fe443a45dbfb990e00629110797578b42fb19"
 dependencies = [
  "aho-corasick",
  "bstr",
@@ -1019,9 +1003,9 @@
 
 [[package]]
 name = "ignore"
-version = "0.4.22"
+version = "0.4.23"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1"
+checksum = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b"
 dependencies = [
  "crossbeam-deque",
  "globset",
@@ -1045,9 +1029,9 @@
 
 [[package]]
 name = "indexmap"
-version = "2.2.6"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
+checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5"
 dependencies = [
  "equivalent",
  "hashbrown 0.14.5",
@@ -1132,9 +1116,9 @@
 
 [[package]]
 name = "libc"
-version = "0.2.155"
+version = "0.2.158"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
+checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439"
 
 [[package]]
 name = "libmimalloc-sys"
@@ -1216,7 +1200,7 @@
 
 [[package]]
 name = "maturin"
-version = "1.7.1"
+version = "1.7.4"
 dependencies = [
  "anyhow",
  "base64 0.21.7",
@@ -1242,7 +1226,7 @@
  "glob",
  "goblin",
  "ignore",
- "indexmap 2.2.6",
+ "indexmap 2.5.0",
  "indoc",
  "itertools",
  "keyring",
@@ -1277,17 +1261,17 @@
  "textwrap",
  "thiserror",
  "time",
- "toml 0.8.14",
- "toml_edit 0.22.14",
+ "toml 0.8.15",
+ "toml_edit 0.22.16",
  "tracing",
  "tracing-subscriber",
  "trycmd",
  "unicode-xid",
  "ureq",
  "url",
- "which 6.0.1",
+ "which 6.0.3",
  "wild",
- "zip 0.6.6",
+ "zip",
 ]
 
 [[package]]
@@ -1338,11 +1322,11 @@
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.3"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae"
+checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
 dependencies = [
- "adler",
+ "adler2",
 ]
 
 [[package]]
@@ -1429,27 +1413,6 @@
 checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
 
 [[package]]
-name = "num_enum"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845"
-dependencies = [
- "num_enum_derive",
-]
-
-[[package]]
-name = "num_enum_derive"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b"
-dependencies = [
- "proc-macro-crate",
- "proc-macro2",
- "quote",
- "syn 2.0.66",
-]
-
-[[package]]
 name = "number_prefix"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -1484,7 +1447,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.76",
 ]
 
 [[package]]
@@ -1564,9 +1527,9 @@
 
 [[package]]
 name = "pep440_rs"
-version = "0.6.0"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "ca0a570e7ec9171250cac57614e901f62408094b54b3798bb920d3cf0d4a0e09"
+checksum = "466eada3179c2e069ca897b99006cbb33f816290eaeec62464eea907e22ae385"
 dependencies = [
  "once_cell",
  "serde",
@@ -1577,9 +1540,9 @@
 
 [[package]]
 name = "pep508_rs"
-version = "0.6.0"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "581c27e97a3f38c5d691962af7da93c2672b5227d59cf165b87a9b1fd53dd724"
+checksum = "3f8877489a99ccc80012333123e434f84e645fe1ede3b30e9d3b815887a12979"
 dependencies = [
  "derivative",
  "once_cell",
@@ -1653,9 +1616,9 @@
 
 [[package]]
 name = "pretty_assertions"
-version = "1.4.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
+checksum = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d"
 dependencies = [
  "diff",
  "yansi",
@@ -1694,18 +1657,18 @@
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "ef7061023bcb58a0fc4a4bbe9819c13b0dca7c2abc14da14f5ecc1532ab3a36a"
 dependencies = [
- "indexmap 2.2.6",
+ "indexmap 2.5.0",
  "pep440_rs",
  "pep508_rs",
  "serde",
- "toml 0.8.14",
+ "toml 0.8.15",
 ]
 
 [[package]]
 name = "python-pkginfo"
-version = "0.6.2"
+version = "0.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "4320ca452fe003f8a07afb8e30c315bbd813ae8105f454ddefebf15a24021e1f"
+checksum = "ba3f3f0d552c7efdde2b6898bf21b49c4e76b3e6071ff196dfe52109804db896"
 dependencies = [
  "flate2",
  "fs-err",
@@ -1713,7 +1676,7 @@
  "rfc2047-decoder",
  "tar",
  "thiserror",
- "zip 1.1.4",
+ "zip",
 ]
 
 [[package]]
@@ -1812,9 +1775,9 @@
 
 [[package]]
 name = "regex"
-version = "1.10.5"
+version = "1.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f"
+checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1891,9 +1854,9 @@
 
 [[package]]
 name = "rstest"
-version = "0.21.0"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "9afd55a67069d6e434a95161415f5beeada95a01c7b815508a82dcb0e1593682"
+checksum = "7b423f0e62bdd61734b67cd21ff50871dfaeb9cc74f869dcd6af974fbcb19936"
 dependencies = [
  "futures",
  "futures-timer",
@@ -1903,9 +1866,9 @@
 
 [[package]]
 name = "rstest_macros"
-version = "0.21.0"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "4165dfae59a39dd41d8dec720d3cbfbc71f69744efb480a3920f5d4e0cc6798d"
+checksum = "c5e1711e7d14f74b12a58411c542185ef7fb7f2e7f8ee6e2940a883628522b42"
 dependencies = [
  "cfg-if",
  "glob",
@@ -1915,20 +1878,26 @@
  "regex",
  "relative-path",
  "rustc_version",
- "syn 2.0.66",
+ "syn 2.0.76",
  "unicode-ident",
 ]
 
 [[package]]
 name = "rustc_version"
-version = "0.4.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
 dependencies = [
  "semver",
 ]
 
 [[package]]
+name = "rustflags"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "d7fc92159fb50a431c5da366f7627751fe7263cf867f8a30f27fa6063ba02ac0"
+
+[[package]]
 name = "rustix"
 version = "0.38.34"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -1957,9 +1926,9 @@
 
 [[package]]
 name = "rustls-pemfile"
-version = "2.1.2"
+version = "2.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d"
+checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425"
 dependencies = [
  "base64 0.22.1",
  "rustls-pki-types",
@@ -2033,7 +2002,7 @@
  "proc-macro2",
  "quote",
  "serde_derive_internals",
- "syn 2.0.66",
+ "syn 2.0.76",
 ]
 
 [[package]]
@@ -2059,7 +2028,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.76",
 ]
 
 [[package]]
@@ -2096,22 +2065,22 @@
 
 [[package]]
 name = "serde"
-version = "1.0.204"
+version = "1.0.210"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12"
+checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.204"
+version = "1.0.210"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222"
+checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.76",
 ]
 
 [[package]]
@@ -2122,16 +2091,17 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.76",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.120"
+version = "1.0.128"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5"
+checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8"
 dependencies = [
  "itoa",
+ "memchr",
  "ryu",
  "serde",
 ]
@@ -2206,9 +2176,9 @@
 
 [[package]]
 name = "snapbox"
-version = "0.6.10"
+version = "0.6.16"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "40e14d10e4c2b4331ac24c33baa5a03e1fbca81c045b285b53b2a612d28569fb"
+checksum = "027c936207f85d10d015e21faf5c676c7e08c453ed371adf55c0874c443ca77a"
 dependencies = [
  "anstream",
  "anstyle",
@@ -2228,9 +2198,9 @@
 
 [[package]]
 name = "snapbox-macros"
-version = "0.3.9"
+version = "0.3.10"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "b1f4c14672714436c09254801c934b203196a51182a5107fb76591c7cc56424d"
+checksum = "16569f53ca23a41bb6f62e0a5084aa1661f4814a67fa33696a79073e03a664af"
 dependencies = [
  "anstream",
 ]
@@ -2296,9 +2266,9 @@
 
 [[package]]
 name = "syn"
-version = "2.0.66"
+version = "2.0.76"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
+checksum = "578e081a14e0cefc3279b0472138c513f37b41a08d5a3cca9b6e4e8ceb6cd525"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2307,9 +2277,9 @@
 
 [[package]]
 name = "tar"
-version = "0.4.41"
+version = "0.4.42"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "cb797dad5fb5b76fcf519e702f4a589483b5ef06567f160c392832c1f5e44909"
+checksum = "4ff6c40d3aedb5e06b57c6f669ad17ab063dd1e63d977c6a88e7f4dfa4f04020"
 dependencies = [
  "filetime",
  "libc",
@@ -2318,18 +2288,19 @@
 
 [[package]]
 name = "target-lexicon"
-version = "0.12.15"
+version = "0.12.16"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "4873307b7c257eddcb50c9bedf158eb669578359fb28428bef438fec8e6ba7c2"
+checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
 
 [[package]]
 name = "tempfile"
-version = "3.10.1"
+version = "3.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
+checksum = "b8fcd239983515c23a32fb82099f97d0b11b8c72f654ed659363a95c3dad7a53"
 dependencies = [
  "cfg-if",
  "fastrand",
+ "once_cell",
  "rustix",
  "windows-sys 0.52.0",
 ]
@@ -2366,22 +2337,22 @@
 
 [[package]]
 name = "thiserror"
-version = "1.0.61"
+version = "1.0.64"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
+checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.61"
+version = "1.0.64"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
+checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.76",
 ]
 
 [[package]]
@@ -2450,14 +2421,14 @@
 
 [[package]]
 name = "toml"
-version = "0.8.14"
+version = "0.8.15"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335"
+checksum = "ac2caab0bf757388c6c0ae23b3293fdb463fee59434529014f85e3263b995c28"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.22.14",
+ "toml_edit 0.22.16",
 ]
 
 [[package]]
@@ -2475,18 +2446,18 @@
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
 dependencies = [
- "indexmap 2.2.6",
+ "indexmap 2.5.0",
  "toml_datetime",
  "winnow 0.5.40",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.22.14"
+version = "0.22.16"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38"
+checksum = "278f3d518e152219c994ce877758516bca5e118eaed6996192a774fb9fbf0788"
 dependencies = [
- "indexmap 2.2.6",
+ "indexmap 2.5.0",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -2512,7 +2483,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.76",
 ]
 
 [[package]]
@@ -2569,9 +2540,9 @@
 
 [[package]]
 name = "trycmd"
-version = "0.15.4"
+version = "0.15.6"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "59709bd8eccada6a3fded26d22a7f2dcee406c18d3bd7ad2605ca3eeb8f6f6ec"
+checksum = "3e8673f1dc45acdff8e25a06cc62f8e529563e8acd84237ce83d5a28e2befa12"
 dependencies = [
  "automod",
  "glob",
@@ -2581,7 +2552,7 @@
  "serde",
  "shlex",
  "snapbox",
- "toml_edit 0.22.14",
+ "toml_edit 0.22.16",
 ]
 
 [[package]]
@@ -2645,9 +2616,9 @@
 
 [[package]]
 name = "unicode-xid"
-version = "0.2.4"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
+checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
 
 [[package]]
 name = "unscanny"
@@ -2789,9 +2760,9 @@
 
 [[package]]
 name = "which"
-version = "6.0.1"
+version = "6.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "8211e4f58a2b2805adfbefbc07bab82958fc91e3836339b1ab7ae32465dce0d7"
+checksum = "b4ee928febd44d98f2f459a4a79bd4d928591333a494a10a868418ac1b39cf1f"
 dependencies = [
  "either",
  "home",
@@ -3038,21 +3009,21 @@
  "serde_json",
  "sha2",
  "tempfile",
- "toml 0.8.14",
+ "toml 0.8.15",
  "tracing",
  "tracing-subscriber",
  "twox-hash",
  "ureq",
  "versions",
  "walkdir",
- "zip 0.6.6",
+ "zip",
 ]
 
 [[package]]
 name = "yansi"
-version = "0.5.1"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
+checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049"
 
 [[package]]
 name = "zerocopy"
@@ -3071,7 +3042,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.76",
 ]
 
 [[package]]
@@ -3093,21 +3064,3 @@
  "flate2",
  "time",
 ]
-
-[[package]]
-name = "zip"
-version = "1.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "9cc23c04387f4da0374be4533ad1208cbb091d5c11d070dfef13676ad6497164"
-dependencies = [
- "arbitrary",
- "bzip2",
- "crc32fast",
- "crossbeam-utils",
- "displaydoc",
- "flate2",
- "indexmap 2.2.6",
- "num_enum",
- "thiserror",
- "time",
-]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maturin-1.7.1/Cargo.toml new/maturin-1.7.4/Cargo.toml
--- old/maturin-1.7.1/Cargo.toml        1970-01-01 01:00:00.000000000 +0100
+++ new/maturin-1.7.4/Cargo.toml        1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +1,7 @@
 [package]
 authors = ["konstin <kons...@mailbox.org>", "messense <messe...@icloud.com>"]
 name = "maturin"
-version = "1.7.1"
+version = "1.7.4"
 description = "Build and publish crates with pyo3, cffi and uniffi bindings as 
well as rust binaries as python packages"
 exclude = [
     "test-crates/**/*",
@@ -97,7 +97,7 @@
 clap_complete_command = { version = "0.6.1", optional = true }
 
 # cross compile
-cargo-zigbuild = { version = "0.18.4", default-features = false, optional = 
true }
+cargo-zigbuild = { version = "0.19.3", default-features = false, optional = 
true }
 cargo-xwin = { version = "0.16.5", default-features = false, optional = true }
 
 # log
@@ -135,7 +135,7 @@
 
 [dev-dependencies]
 expect-test = "1.4.1"
-rstest = "0.21.0"
+rstest = "0.22.0"
 indoc = "2.0.3"
 pretty_assertions = "1.3.0"
 rustversion = "1.0.9"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maturin-1.7.1/Changelog.md 
new/maturin-1.7.4/Changelog.md
--- old/maturin-1.7.1/Changelog.md      2024-08-22 00:02:56.000000000 +0200
+++ new/maturin-1.7.4/Changelog.md      2024-09-26 05:07:15.000000000 +0200
@@ -1,5 +1,21 @@
 # Changelog
 
+## [1.7.4]
+
+* Fix musllinux rpath for non-cffi bindings in 
[#2233](https://github.com/PyO3/maturin/pull/2233)
+* Add GitHub Actions attestation support to generate-ci in 
[#2234](https://github.com/PyO3/maturin/pull/2234)
+
+## [1.7.3]
+
+* Fix upload regression to pypi/testpypi in 
[#2229](https://github.com/PyO3/maturin/pull/2229)
+
+## [1.7.2]
+
+* Fix cross compilation issues for armv7l, mips64 and ppc in 
[#2204](https://github.com/PyO3/maturin/pull/2204)
+* UniFFI: supports bindings generated from multiple crates in 
[#2208](https://github.com/PyO3/maturin/pull/2208)
+* Enable `--all-features` when building source distribution in 
[#2215](https://github.com/PyO3/maturin/pull/2215)
+* Fix rpath when module-name contains `.` in 
[#2219](https://github.com/PyO3/maturin/pull/2219)
+
 ## [1.7.1]
 
 * Forward `cargo package --list` warnings in 
[#2186](https://github.com/PyO3/maturin/pull/2186)
@@ -976,7 +992,11 @@
 
  * Initial Release
 
-[Unreleased]: https://github.com/pyo3/maturin/compare/v1.7.0...HEAD
+[Unreleased]: https://github.com/pyo3/maturin/compare/v1.7.4...HEAD
+[1.7.4]: https://github.com/pyo3/maturin/compare/v1.7.3...v1.7.4
+[1.7.3]: https://github.com/pyo3/maturin/compare/v1.7.2...v1.7.3
+[1.7.2]: https://github.com/pyo3/maturin/compare/v1.7.1...v1.7.2
+[1.7.1]: https://github.com/pyo3/maturin/compare/v1.7.0...v1.7.1
 [1.7.0]: https://github.com/pyo3/maturin/compare/v1.6.0...v1.7.0
 [1.6.0]: https://github.com/pyo3/maturin/compare/v1.5.1...v1.6.0
 [1.5.1]: https://github.com/pyo3/maturin/compare/v1.5.0...v1.5.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maturin-1.7.1/PKG-INFO new/maturin-1.7.4/PKG-INFO
--- old/maturin-1.7.1/PKG-INFO  1970-01-01 01:00:00.000000000 +0100
+++ new/maturin-1.7.4/PKG-INFO  1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.3
 Name: maturin
-Version: 1.7.1
+Version: 1.7.4
 Classifier: Topic :: Software Development :: Build Tools
 Classifier: Programming Language :: Rust
 Classifier: Programming Language :: Python :: Implementation :: CPython
@@ -66,6 +66,8 @@
 The name of the package will be the name of the cargo project, i.e. the name 
field in the `[package]` section of `Cargo.toml`.
 The name of the module, which you are using when importing, will be the `name` 
value in the `[lib]` section (which defaults to the name of the package). For 
binaries, it's simply the name of the binary generated by cargo.
 
+When using `maturin build` and `maturin develop` commands, you can compile a 
performance-optimized program by adding the `-r` or `--release` flag.
+
 ## Python packaging basics
 
 Python packages come in two formats:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maturin-1.7.1/README.md new/maturin-1.7.4/README.md
--- old/maturin-1.7.1/README.md 2024-08-22 00:02:56.000000000 +0200
+++ new/maturin-1.7.4/README.md 2024-09-26 05:07:15.000000000 +0200
@@ -41,6 +41,8 @@
 The name of the package will be the name of the cargo project, i.e. the name 
field in the `[package]` section of `Cargo.toml`.
 The name of the module, which you are using when importing, will be the `name` 
value in the `[lib]` section (which defaults to the name of the package). For 
binaries, it's simply the name of the binary generated by cargo.
 
+When using `maturin build` and `maturin develop` commands, you can compile a 
performance-optimized program by adding the `-r` or `--release` flag.
+
 ## Python packaging basics
 
 Python packages come in two formats:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maturin-1.7.1/src/build_context.rs 
new/maturin-1.7.4/src/build_context.rs
--- old/maturin-1.7.1/src/build_context.rs      2024-08-22 00:02:56.000000000 
+0200
+++ new/maturin-1.7.4/src/build_context.rs      2024-09-26 05:07:15.000000000 
+0200
@@ -479,13 +479,17 @@
             eprintln!("    {}", lib_path.display());
         }
 
-        // Currently artifact .so file always resides at 
${module_name}/${module_name}.so
-        let artifact_dir = Path::new(&self.module_name);
+        let artifact_dir = match self.bridge() {
+            // cffi bindings that contains '.' in the module name will be 
split into directories
+            BridgeModel::Cffi => 
self.module_name.split(".").collect::<PathBuf>(),
+            // For other bindings artifact .so file usually resides at 
${module_name}/${module_name}.so
+            _ => PathBuf::from(&self.module_name),
+        };
         for artifact in artifacts {
             let mut new_rpaths = patchelf::get_rpath(&artifact.path)?;
             // TODO: clean existing rpath entries if it's not pointed to a 
location within the wheel
             // See 
https://github.com/pypa/auditwheel/blob/353c24250d66951d5ac7e60b97471a6da76c123f/src/auditwheel/repair.py#L160
-            let new_rpath = Path::new("$ORIGIN").join(relpath(&libs_dir, 
artifact_dir));
+            let new_rpath = Path::new("$ORIGIN").join(relpath(&libs_dir, 
&artifact_dir));
             new_rpaths.push(new_rpath.to_str().unwrap().to_string());
             let new_rpath = new_rpaths.join(":");
             patchelf::set_rpath(&artifact.path, &new_rpath)?;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maturin-1.7.1/src/ci.rs new/maturin-1.7.4/src/ci.rs
--- old/maturin-1.7.1/src/ci.rs 2024-08-22 00:02:56.000000000 +0200
+++ new/maturin-1.7.4/src/ci.rs 2024-09-26 05:07:15.000000000 +0200
@@ -576,23 +576,31 @@
             r#"  release:
     name: Release
     runs-on: ubuntu-latest
-    if: "startsWith(github.ref, 'refs/tags/')"
+    if: ${{{{ startsWith(github.ref, 'refs/tags/') || github.event_name == 
'workflow_dispatch' }}}}
     needs: [{needs}]
 "#,
             needs = needs.join(", ")
         ));
-        if platforms.contains(&Platform::Emscripten) {
-            conf.push_str(
-                r#"    permissions:
+
+        conf.push_str(
+            r#"    permissions:
+      # Use to sign the release artifacts
+      id-token: write
       # Used to upload release artifacts
       contents: write
+      # Used to generate artifact attestation
+      attestations: write
 "#,
-            );
-        }
+        );
         conf.push_str(
             r#"    steps:
       - uses: actions/download-artifact@v4
+      - name: Generate artifact attestation
+        uses: actions/attest-build-provenance@v1
+        with:
+          subject-path: 'wheels-*/*'
       - name: Publish to PyPI
+        if: "startsWith(github.ref, 'refs/tags/')"
         uses: PyO3/maturin-action@v1
         env:
           MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
@@ -798,11 +806,23 @@
               release:
                 name: Release
                 runs-on: ubuntu-latest
-                if: "startsWith(github.ref, 'refs/tags/')"
+                if: ${{ startsWith(github.ref, 'refs/tags/') || 
github.event_name == 'workflow_dispatch' }}
                 needs: [linux, musllinux, windows, macos, sdist]
+                permissions:
+                  # Use to sign the release artifacts
+                  id-token: write
+                  # Used to upload release artifacts
+                  contents: write
+                  # Used to generate artifact attestation
+                  attestations: write
                 steps:
                   - uses: actions/download-artifact@v4
+                  - name: Generate artifact attestation
+                    uses: actions/attest-build-provenance@v1
+                    with:
+                      subject-path: 'wheels-*/*'
                   - name: Publish to PyPI
+                    if: "startsWith(github.ref, 'refs/tags/')"
                     uses: PyO3/maturin-action@v1
                     env:
                       MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
@@ -960,11 +980,23 @@
               release:
                 name: Release
                 runs-on: ubuntu-latest
-                if: "startsWith(github.ref, 'refs/tags/')"
+                if: ${{ startsWith(github.ref, 'refs/tags/') || 
github.event_name == 'workflow_dispatch' }}
                 needs: [linux, musllinux, windows, macos]
+                permissions:
+                  # Use to sign the release artifacts
+                  id-token: write
+                  # Used to upload release artifacts
+                  contents: write
+                  # Used to generate artifact attestation
+                  attestations: write
                 steps:
                   - uses: actions/download-artifact@v4
+                  - name: Generate artifact attestation
+                    uses: actions/attest-build-provenance@v1
+                    with:
+                      subject-path: 'wheels-*/*'
                   - name: Publish to PyPI
+                    if: "startsWith(github.ref, 'refs/tags/')"
                     uses: PyO3/maturin-action@v1
                     env:
                       MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
@@ -1219,11 +1251,23 @@
               release:
                 name: Release
                 runs-on: ubuntu-latest
-                if: "startsWith(github.ref, 'refs/tags/')"
+                if: ${{ startsWith(github.ref, 'refs/tags/') || 
github.event_name == 'workflow_dispatch' }}
                 needs: [linux, musllinux, windows, macos, sdist]
+                permissions:
+                  # Use to sign the release artifacts
+                  id-token: write
+                  # Used to upload release artifacts
+                  contents: write
+                  # Used to generate artifact attestation
+                  attestations: write
                 steps:
                   - uses: actions/download-artifact@v4
+                  - name: Generate artifact attestation
+                    uses: actions/attest-build-provenance@v1
+                    with:
+                      subject-path: 'wheels-*/*'
                   - name: Publish to PyPI
+                    if: "startsWith(github.ref, 'refs/tags/')"
                     uses: PyO3/maturin-action@v1
                     env:
                       MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
@@ -1383,11 +1427,23 @@
               release:
                 name: Release
                 runs-on: ubuntu-latest
-                if: "startsWith(github.ref, 'refs/tags/')"
+                if: ${{ startsWith(github.ref, 'refs/tags/') || 
github.event_name == 'workflow_dispatch' }}
                 needs: [linux, musllinux, windows, macos, sdist]
+                permissions:
+                  # Use to sign the release artifacts
+                  id-token: write
+                  # Used to upload release artifacts
+                  contents: write
+                  # Used to generate artifact attestation
+                  attestations: write
                 steps:
                   - uses: actions/download-artifact@v4
+                  - name: Generate artifact attestation
+                    uses: actions/attest-build-provenance@v1
+                    with:
+                      subject-path: 'wheels-*/*'
                   - name: Publish to PyPI
+                    if: "startsWith(github.ref, 'refs/tags/')"
                     uses: PyO3/maturin-action@v1
                     env:
                       MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maturin-1.7.1/src/main.rs 
new/maturin-1.7.4/src/main.rs
--- old/maturin-1.7.1/src/main.rs       2024-08-22 00:02:56.000000000 +0200
+++ new/maturin-1.7.4/src/main.rs       2024-09-26 05:07:15.000000000 +0200
@@ -311,6 +311,9 @@
                 out: Some(sdist_directory),
                 cargo: CargoOptions {
                     manifest_path,
+                    // Enable all features to ensure all optional path 
dependencies are packaged
+                    // into source distribution
+                    all_features: true,
                     ..Default::default()
                 },
                 ..Default::default()
@@ -417,6 +420,9 @@
                 out,
                 cargo: CargoOptions {
                     manifest_path,
+                    // Enable all features to ensure all optional path 
dependencies are packaged
+                    // into source distribution
+                    all_features: true,
                     ..Default::default()
                 },
                 ..Default::default()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maturin-1.7.1/src/module_writer.rs 
new/maturin-1.7.4/src/module_writer.rs
--- old/maturin-1.7.1/src/module_writer.rs      2024-08-22 00:02:56.000000000 
+0200
+++ new/maturin-1.7.4/src/module_writer.rs      2024-09-26 05:07:15.000000000 
+0200
@@ -984,7 +984,14 @@
         .no_deps()
         .verbose(true)
         .exec()?;
-    let root_pkg = cargo_metadata.root_package();
+    let root_pkg = match cargo_metadata.root_package() {
+        Some(pkg) => Some(pkg),
+        None => cargo_metadata
+            .packages
+            .iter()
+            .find(|p| p.manifest_path == manifest_path),
+    };
+
     let has_uniffi_bindgen_target = root_pkg
         .map(|pkg| {
             pkg.targets
@@ -1093,7 +1100,6 @@
         bail!("Command {:?} failed", cmd);
     }
 
-    let py_binding = binding_dir.join(&py_binding_name).with_extension("py");
     // uniffi bindings hardcoded the extension filenames
     let cdylib_name = match cdylib_name {
         Some(name) => name,
@@ -1108,7 +1114,7 @@
     Ok(UniFfiBindings {
         name: py_binding_name,
         cdylib,
-        path: py_binding,
+        path: binding_dir,
     })
 }
 
@@ -1128,7 +1134,7 @@
     let UniFfiBindings {
         name: binding_name,
         cdylib,
-        path: uniffi_binding,
+        path: binding_dir,
     } = generate_uniffi_bindings(crate_dir, target_dir, target_os, artifact)?;
     let py_init = format!("from .{binding_name} import *  # NOQA\n");
 
@@ -1150,12 +1156,14 @@
             ))?;
 
             
File::create(base_path.join("__init__.py"))?.write_all(py_init.as_bytes())?;
-            let target = base_path.join(&binding_name).with_extension("py");
-            fs::copy(&uniffi_binding, &target).context(format!(
-                "Failed to copy {} to {}",
-                uniffi_binding.display(),
-                target.display()
-            ))?;
+            if let Ok(read_dir) = fs::read_dir(&binding_dir) {
+                for binding_file in read_dir.flatten() {
+                    let target: PathBuf = 
base_path.join(binding_file.file_name());
+                    fs::copy(binding_file.path(), &target).with_context(|| {
+                        format!("Failed to copy {:?} to {:?}", 
binding_file.path(), target)
+                    })?;
+                }
+            }
         }
 
         let relative = project_layout
@@ -1181,10 +1189,11 @@
 
     if !editable || project_layout.python_module.is_none() {
         writer.add_bytes(module.join("__init__.py"), None, 
py_init.as_bytes())?;
-        writer.add_file(
-            module.join(binding_name).with_extension("py"),
-            uniffi_binding,
-        )?;
+        if let Ok(read_dir) = fs::read_dir(binding_dir) {
+            for binding_file in read_dir.flatten() {
+                writer.add_file(module.join(binding_file.file_name()), 
binding_file.path())?;
+            }
+        }
         writer.add_file_with_permissions(module.join(cdylib), artifact, 
0o755)?;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maturin-1.7.1/src/python_interpreter/config.rs 
new/maturin-1.7.4/src/python_interpreter/config.rs
--- old/maturin-1.7.1/src/python_interpreter/config.rs  2024-08-22 
00:02:56.000000000 +0200
+++ new/maturin-1.7.4/src/python_interpreter/config.rs  2024-09-26 
05:07:15.000000000 +0200
@@ -47,26 +47,8 @@
             // Python 2 is not supported
             return None;
         }
-        let python_arch = if matches!(target.target_arch(), Arch::Armv6L | 
Arch::Armv7L) {
-            "arm"
-        } else if matches!(target.target_arch(), Arch::Powerpc64Le) && 
python_impl == PyPy {
-            "ppc_64"
-        } else if matches!(target.target_arch(), Arch::X86) && python_impl == 
PyPy {
-            "x86"
-        } else {
-            target.get_python_arch()
-        };
-        // See https://github.com/pypa/auditwheel/issues/349
-        let target_env = match python_impl {
-            CPython => {
-                if python_version >= (3, 11) {
-                    target.target_env().to_string()
-                } else {
-                    target.target_env().to_string().replace("musl", "gnu")
-                }
-            }
-            PyPy | GraalPy => "gnu".to_string(),
-        };
+        let python_ext_arch = target.get_python_ext_arch(python_impl);
+        let target_env = target.get_python_target_env(python_impl, 
python_version);
         match (target.target_os(), python_impl) {
             (Os::Linux, CPython) => {
                 let abiflags = if python_version < (3, 8) {
@@ -77,7 +59,7 @@
                 let ldversion = format!("{}{}{}", major, minor, abiflags);
                 let ext_suffix = format!(
                     ".cpython-{}-{}-linux-{}.so",
-                    ldversion, python_arch, target_env
+                    ldversion, python_ext_arch, target_env
                 );
                 Some(Self {
                     major,
@@ -90,7 +72,8 @@
             }
             (Os::Linux, PyPy) => {
                 let abi_tag = format!("pypy{}{}-{}", major, minor, 
PYPY_ABI_TAG);
-                let ext_suffix = format!(".{}-{}-linux-{}.so", abi_tag, 
python_arch, target_env);
+                let ext_suffix =
+                    format!(".{}-{}-linux-{}.so", abi_tag, python_ext_arch, 
target_env);
                 Some(Self {
                     major,
                     minor,
@@ -204,7 +187,8 @@
             }
             (Os::Emscripten, CPython) => {
                 let ldversion = format!("{}{}", major, minor);
-                let ext_suffix = format!(".cpython-{}-{}-emscripten.so", 
ldversion, python_arch);
+                let ext_suffix =
+                    format!(".cpython-{}-{}-emscripten.so", ldversion, 
python_ext_arch);
                 Some(Self {
                     major,
                     minor,
@@ -300,19 +284,14 @@
         };
         let file_ext = if target.is_windows() { "pyd" } else { "so" };
         let ext_suffix = if target.is_linux() || target.is_macos() {
-            // See https://github.com/pypa/auditwheel/issues/349
-            let target_env = if (major, minor) >= (3, 11) {
-                target.target_env().to_string()
-            } else {
-                target.target_env().to_string().replace("musl", "gnu")
-            };
+            let target_env = target.get_python_target_env(interpreter_kind, 
(major, minor));
             match interpreter_kind {
                 InterpreterKind::CPython => ext_suffix.unwrap_or_else(|| {
                     // Eg: .cpython-38-x86_64-linux-gnu.so
                     format!(
                         ".cpython-{}-{}-{}-{}.{}",
                         abi_tag,
-                        target.get_python_arch(),
+                        target.get_python_ext_arch(interpreter_kind),
                         target.get_python_os(),
                         target_env,
                         file_ext,
@@ -325,7 +304,7 @@
                         major,
                         minor,
                         abi_tag,
-                        target.get_python_arch(),
+                        target.get_python_ext_arch(interpreter_kind),
                         target.get_python_os(),
                         target_env,
                         file_ext,
@@ -336,7 +315,7 @@
                     format!(
                         ".{}-{}-{}.{}",
                         abi_tag.replace('_', "-"),
-                        target.get_python_arch(),
+                        target.get_python_ext_arch(interpreter_kind),
                         target.get_python_os(),
                         file_ext,
                     )
@@ -347,7 +326,7 @@
                 format!(
                     ".cpython-{}-{}-{}.{}",
                     abi_tag,
-                    target.get_python_arch(),
+                    target.get_python_ext_arch(interpreter_kind),
                     target.get_python_os(),
                     file_ext
                 )
@@ -446,6 +425,33 @@
         );
 
         let sysconfig = InterpreterConfig::lookup_one(
+            
&Target::from_target_triple(Some("powerpc-unknown-linux-gnu".to_string())).unwrap(),
+            InterpreterKind::CPython,
+            (3, 10),
+        )
+        .unwrap();
+        assert_eq!(sysconfig.ext_suffix, ".cpython-310-powerpc-linux-gnu.so");
+
+        let sysconfig = InterpreterConfig::lookup_one(
+            
&Target::from_target_triple(Some("mips64-unknown-linux-gnu".to_string())).unwrap(),
+            InterpreterKind::CPython,
+            (3, 10),
+        )
+        .unwrap();
+        assert_eq!(
+            sysconfig.ext_suffix,
+            ".cpython-310-mips64-linux-gnuabi64.so"
+        );
+
+        let sysconfig = InterpreterConfig::lookup_one(
+            
&Target::from_target_triple(Some("mips-unknown-linux-gnu".to_string())).unwrap(),
+            InterpreterKind::CPython,
+            (3, 10),
+        )
+        .unwrap();
+        assert_eq!(sysconfig.ext_suffix, ".cpython-310-mips-linux-gnu.so");
+
+        let sysconfig = InterpreterConfig::lookup_one(
             
&Target::from_target_triple(Some("s390x-unknown-linux-gnu".to_string())).unwrap(),
             InterpreterKind::CPython,
             (3, 10),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maturin-1.7.1/src/target.rs 
new/maturin-1.7.4/src/target.rs
--- old/maturin-1.7.1/src/target.rs     2024-08-22 00:02:56.000000000 +0200
+++ new/maturin-1.7.4/src/target.rs     2024-09-26 05:07:15.000000000 +0200
@@ -1,4 +1,6 @@
 use crate::cross_compile::is_cross_compiling;
+use crate::python_interpreter::InterpreterKind;
+use crate::python_interpreter::InterpreterKind::{CPython, GraalPy, PyPy};
 use crate::PlatformTag;
 use anyhow::{anyhow, bail, format_err, Result};
 use platform_info::*;
@@ -368,6 +370,44 @@
         }
     }
 
+    /// Returns the extension architecture name python uses in `ext_suffix` 
for this architecture.
+    pub fn get_python_ext_arch(&self, python_impl: InterpreterKind) -> &str {
+        if matches!(self.target_arch(), Arch::Armv6L | Arch::Armv7L) {
+            "arm"
+        } else if matches!(self.target_arch(), Arch::Powerpc64Le)
+            && python_impl == InterpreterKind::PyPy
+        {
+            "ppc_64"
+        } else if matches!(self.target_arch(), Arch::X86) && python_impl == 
InterpreterKind::PyPy {
+            "x86"
+        } else if matches!(self.target_arch(), Arch::Powerpc) {
+            "powerpc"
+        } else {
+            self.get_python_arch()
+        }
+    }
+
+    /// Returns the environment python uses in `ext_suffix` for this 
architecture.
+    pub fn get_python_target_env(
+        &self,
+        python_impl: InterpreterKind,
+        python_version: (usize, usize),
+    ) -> String {
+        match python_impl {
+            CPython => {
+                // For musl handling see 
https://github.com/pypa/auditwheel/issues/349
+                if matches!(self.target_arch(), Arch::Mips64 | Arch::Mips64el) 
&& self.is_linux() {
+                    "gnuabi64".to_string()
+                } else if python_version >= (3, 11) {
+                    self.target_env().to_string()
+                } else {
+                    self.target_env().to_string().replace("musl", "gnu")
+                }
+            }
+            PyPy | GraalPy => "gnu".to_string(),
+        }
+    }
+
     /// Returns the name python uses in `sys.platform` for this os
     pub fn get_python_os(&self) -> &str {
         match self.os {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maturin-1.7.1/src/upload.rs 
new/maturin-1.7.4/src/upload.rs
--- old/maturin-1.7.1/src/upload.rs     2024-08-22 00:02:56.000000000 +0200
+++ new/maturin-1.7.4/src/upload.rs     2024-09-26 05:07:15.000000000 +0200
@@ -59,8 +59,9 @@
 }
 
 impl PublishOpt {
-    const DEFAULT_REPOSITORY_URL: &'static str = 
"https://upload.pypi.org/legacy/";;
-    const TEST_REPOSITORY_URL: &'static str = "https://test.pypi.org/legacy/";;
+    // Here we omit trailing slashes from the repository URL, which we'll add 
back in `complete_registry`
+    const DEFAULT_REPOSITORY_URL: &'static str = 
"https://upload.pypi.org/legacy";;
+    const TEST_REPOSITORY_URL: &'static str = "https://test.pypi.org/legacy";;
 
     /// Set to non interactive mode if we're running on CI
     pub fn non_interactive_on_ci(&mut self) {
@@ -316,20 +317,33 @@
     let pypirc = load_pypirc();
     let (registry_name, registry_url) = if let Some(repository_url) = 
opt.repository_url.as_deref()
     {
-        let name = match repository_url {
-            PublishOpt::DEFAULT_REPOSITORY_URL => Some("pypi"),
-            PublishOpt::TEST_REPOSITORY_URL => Some("testpypi"),
-            _ => None,
-        };
-        (name, repository_url.to_string())
+        // to normalize URLs by removing trailing slashes
+        match repository_url.trim_end_matches('/') {
+            PublishOpt::DEFAULT_REPOSITORY_URL => (
+                Some("pypi"),
+                // Add trailing slash back
+                format!("{}/", PublishOpt::DEFAULT_REPOSITORY_URL),
+            ),
+            PublishOpt::TEST_REPOSITORY_URL => (
+                Some("testpypi"),
+                // Add trailing slash back
+                format!("{}/", PublishOpt::TEST_REPOSITORY_URL),
+            ),
+            _ => (None, repository_url.to_string()),
+        }
     } else if let Some(url) = pypirc.get(&opt.repository, "repository") {
         (Some(opt.repository.as_str()), url)
     } else if opt.repository == "pypi" {
-        (Some("pypi"), PublishOpt::DEFAULT_REPOSITORY_URL.to_string())
+        (
+            Some("pypi"),
+            // Add trailing slash back
+            format!("{}/", PublishOpt::DEFAULT_REPOSITORY_URL),
+        )
     } else if opt.repository == "testpypi" {
         (
             Some("testpypi"),
-            PublishOpt::TEST_REPOSITORY_URL.to_string(),
+            // Add trailing slash back
+            format!("{}/", PublishOpt::TEST_REPOSITORY_URL),
         )
     } else {
         bail!(

++++++ vendor.tar.xz ++++++
/work/SRC/openSUSE:Factory/python-maturin/vendor.tar.xz 
/work/SRC/openSUSE:Factory/.python-maturin.new.29891/vendor.tar.xz differ: char 
15, line 1

Reply via email to