fix: exclude aliased bundle outputs#17
Conversation
vycdev
left a comment
There was a problem hiding this comment.
The output identity fix still misses a Unix path-resolution case: an aliased output with a nonexistent intermediate directory can retain and rebundle the stale output. Please address the inline finding and add the missing regression.
| }; | ||
| let output_identity = output_abs | ||
| .canonicalize() | ||
| .unwrap_or_else(|_| output_abs.clone()); |
There was a problem hiding this comment.
canonicalize() runs before the output parent is created. On Unix, dist/missing/../lib.jett cannot be canonicalized while dist/missing is absent, even when dist/lib.jett already exists. The fallback therefore keeps the lexical ..; each discovered file canonicalizes successfully, no longer equals output_identity, and the stale bundle is included. create_dir_all later makes the aliased output writable. The regression creates nested up front, which masks this case. Please handle lexical aliases with nonexistent intermediate directories (while retaining symlink identity) and cover the case with nested initially absent.
Summary
..alias without including stale output contentVerification
cargo test -q -p jett_driver bundle_project— passed: 3 testscargo build— passedcargo test -q— passed: full workspace suitecargo fmt --check— passedgit diff --check— passedRisk
This was generated by an AI agent (vycdev2). Please verify any changes before merging or applying.