diff --git a/src/module_writer/sdist_writer.rs b/src/module_writer/sdist_writer.rs index 4aa4bdade..b8245194b 100644 --- a/src/module_writer/sdist_writer.rs +++ b/src/module_writer/sdist_writer.rs @@ -10,6 +10,7 @@ use flate2::write::GzEncoder; use fs_err as fs; use ignore::overrides::Override; use normpath::PathExt as _; +use tracing::debug; use crate::Metadata24; @@ -34,6 +35,7 @@ pub struct SDistWriter { file_tracker: FileTracker, excludes: Override, mtime: u64, + target_exclusion_warning_emitted: bool, } impl ModuleWriter for SDistWriter { @@ -52,6 +54,15 @@ impl ModuleWriter for SDistWriter { let target = target.as_ref(); if self.exclude(target) { + if !self.target_exclusion_warning_emitted { + self.target_exclusion_warning_emitted = true; + eprintln!( + "⚠️ Warning: A file was excluded from the archive by the target path in the archive\n\ + ⚠️ instead of the source path on the filesystem. This behavior is deprecated and\n\ + ⚠️ will be removed in future versions of maturin.", + ); + } + debug!("Excluded file {target:?} from archive by target path"); return Ok(()); } @@ -110,6 +121,7 @@ impl SDistWriter { file_tracker: FileTracker::default(), excludes, mtime: mtime_override.unwrap_or(SDIST_DETERMINISTIC_TIMESTAMP), + target_exclusion_warning_emitted: false, }) } diff --git a/src/module_writer/wheel_writer.rs b/src/module_writer/wheel_writer.rs index 674841c94..fc92443fc 100644 --- a/src/module_writer/wheel_writer.rs +++ b/src/module_writer/wheel_writer.rs @@ -30,6 +30,7 @@ pub struct WheelWriter { file_tracker: FileTracker, excludes: Override, file_options: SimpleFileOptions, + target_exclusion_warning_emitted: bool, } impl ModuleWriter for WheelWriter { @@ -40,8 +41,23 @@ impl ModuleWriter for WheelWriter { mut data: impl Read, executable: bool, ) -> Result<()> { + if let Some(source) = source { + if self.exclude(source) { + return Ok(()); + } + } + let target = target.as_ref(); if self.exclude(target) { + if !self.target_exclusion_warning_emitted { + self.target_exclusion_warning_emitted = true; + eprintln!( + "⚠️ Warning: A file was excluded from the archive by the target path in the archive\n\ + ⚠️ instead of the source path on the filesystem. This behavior is deprecated and\n\ + ⚠️ will be removed in future versions of maturin.", + ); + } + debug!("Excluded file {target:?} from archive by target path"); return Ok(()); } @@ -94,6 +110,7 @@ impl WheelWriter { file_tracker: FileTracker::default(), excludes, file_options, + target_exclusion_warning_emitted: false, }; write_dist_info(&mut builder, pyproject_dir, metadata24, tags)?;