diff --git a/Changelog.md b/Changelog.md index d8c66e720..d96d2576f 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,5 +1,9 @@ # Changelog +## [Unreleased] + +* Improve wheel reproducibility by sorting external libraries [#2261](https://github.com/PyO3/maturin/pull/2261) + ## [1.7.4] * Fix musllinux rpath for non-cffi bindings in [#2233](https://github.com/PyO3/maturin/pull/2233) diff --git a/src/build_context.rs b/src/build_context.rs index a98d23360..09ca090c6 100644 --- a/src/build_context.rs +++ b/src/build_context.rs @@ -24,7 +24,7 @@ use normpath::PathExt; use pep508_rs::Requirement; use platform_info::*; use sha2::{Digest, Sha256}; -use std::collections::{HashMap, HashSet}; +use std::collections::{BTreeMap, HashSet}; use std::env; use std::fmt::{Display, Formatter}; use std::io; @@ -396,7 +396,7 @@ impl BuildContext { writer.add_directory(&libs_dir)?; let temp_dir = tempfile::tempdir()?; - let mut soname_map = HashMap::new(); + let mut soname_map = BTreeMap::new(); let mut libs_copied = HashSet::new(); for lib in ext_libs.iter().flatten() { let lib_path = lib.realpath.clone().with_context(|| {