@@ -448,15 +448,11 @@ fn error_custom_build_file_not_in_package(
448
448
}
449
449
450
450
/// Construct `Cargo.lock` for the package to be published.
451
- fn build_lock ( ws : & Workspace < ' _ > , orig_pkg : & Package ) -> CargoResult < String > {
451
+ fn build_lock ( ws : & Workspace < ' _ > , publish_pkg : & Package ) -> CargoResult < String > {
452
452
let gctx = ws. gctx ( ) ;
453
453
let orig_resolve = ops:: load_pkg_lockfile ( ws) ?;
454
454
455
- let manifest = prepare_for_publish ( orig_pkg, ws) ?;
456
- let new_pkg = Package :: new ( manifest, orig_pkg. manifest_path ( ) ) ;
457
-
458
- // Regenerate Cargo.lock using the old one as a guide.
459
- let tmp_ws = Workspace :: ephemeral ( new_pkg, ws. gctx ( ) , None , true ) ?;
455
+ let tmp_ws = Workspace :: ephemeral ( publish_pkg. clone ( ) , ws. gctx ( ) , None , true ) ?;
460
456
let mut tmp_reg = PackageRegistry :: new ( ws. gctx ( ) ) ?;
461
457
let mut new_resolve = ops:: resolve_with_previous (
462
458
& mut tmp_reg,
@@ -687,6 +683,7 @@ fn tar(
687
683
688
684
let base_name = format ! ( "{}-{}" , pkg. name( ) , pkg. version( ) ) ;
689
685
let base_path = Path :: new ( & base_name) ;
686
+ let publish_pkg = prepare_for_publish ( pkg, ws) ?;
690
687
691
688
let mut uncompressed_size = 0 ;
692
689
for ar_file in ar_files {
@@ -717,11 +714,8 @@ fn tar(
717
714
}
718
715
FileContents :: Generated ( generated_kind) => {
719
716
let contents = match generated_kind {
720
- GeneratedFile :: Manifest => {
721
- let manifest = prepare_for_publish ( pkg, ws) ?;
722
- manifest. to_resolved_contents ( ) ?
723
- }
724
- GeneratedFile :: Lockfile => build_lock ( ws, pkg) ?,
717
+ GeneratedFile :: Manifest => publish_pkg. manifest ( ) . to_resolved_contents ( ) ?,
718
+ GeneratedFile :: Lockfile => build_lock ( ws, & publish_pkg) ?,
725
719
GeneratedFile :: VcsInfo ( ref s) => serde_json:: to_string_pretty ( s) ?,
726
720
} ;
727
721
header. set_entry_type ( EntryType :: file ( ) ) ;
0 commit comments