From 9b8d09936305222c569db8da76eac12d459047f0 Mon Sep 17 00:00:00 2001 From: Jer Miller Date: Sat, 1 Aug 2026 14:51:54 -0600 Subject: [PATCH] fix(release): stage publication inside ignored dist --- crates/rust-release-manifest/src/tests.rs | 10 ++++++++++ scripts/publish-release.sh | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/crates/rust-release-manifest/src/tests.rs b/crates/rust-release-manifest/src/tests.rs index 72d3b5a..21adc95 100644 --- a/crates/rust-release-manifest/src/tests.rs +++ b/crates/rust-release-manifest/src/tests.rs @@ -2517,6 +2517,16 @@ fn clean_tree_policy_distinguishes_source_from_ignored_outputs() { assert!(require_clean_tree(repo.path(), &payload).is_err()); } +#[test] +fn native_publisher_stages_inside_the_ignored_dist_boundary() { + let publisher = include_str!("../../../scripts/publish-release.sh"); + let repo_local_stage = + r#"stage_root="$(mktemp -d "$repo_root/dist/.solstone-linux-publish.XXXXXX")""#; + + assert_eq!(publisher.matches(repo_local_stage).count(), 1); + assert!(!publisher.contains("${TMPDIR:-/tmp}/solstone-linux-publish")); +} + #[test] fn regular_file_mode_helpers_distinguish_executables() { let temp = tempfile::tempdir().unwrap(); diff --git a/scripts/publish-release.sh b/scripts/publish-release.sh index b6377a8..9409b5a 100644 --- a/scripts/publish-release.sh +++ b/scripts/publish-release.sh @@ -132,7 +132,7 @@ assert_exact_files "$release_directory" [[ -z "$(git -C "$repo_root" status --porcelain=v1 --untracked-files=all)" ]] || die "candidate validation changed the source tree" -stage_root="$(mktemp -d "${TMPDIR:-/tmp}/solstone-linux-publish.XXXXXX")" +stage_root="$(mktemp -d "$repo_root/dist/.solstone-linux-publish.XXXXXX")" cleanup() { rm -rf -- "$stage_root" } -- 2.51.2