55from pathlib import Path
66from typing import Any , Dict , List , Set
77
8- from multiversx_sdk_rust_contract_builder import cargo_toml , source_code
8+ from multiversx_sdk_rust_contract_builder import source_code
99from multiversx_sdk_rust_contract_builder .build_metadata import BuildMetadata
1010from multiversx_sdk_rust_contract_builder .build_options import BuildOptions
1111from multiversx_sdk_rust_contract_builder .build_outcome import BuildOutcome
@@ -31,7 +31,6 @@ def build_project(
3131 project_folder = project_folder .expanduser ().resolve ()
3232 parent_output_folder = parent_output_folder .expanduser ().resolve ()
3333 cargo_target_dir = options .cargo_target_dir .expanduser ().resolve ()
34- package_whole_project_src = options .package_whole_project_src
3534 no_wasm_opt = options .no_wasm_opt
3635 specific_contract = options .specific_contract
3736 build_root_folder = options .build_root_folder
@@ -45,9 +44,6 @@ def build_project(
4544 # We copy the whole project folder to the build path, to ensure that all local dependencies are available.
4645 project_within_build_folder = copy_project_folder_to_build_folder (project_folder , build_root_folder )
4746
48- if not package_whole_project_src :
49- cargo_toml .remove_dev_dependencies_sections_from_all (project_within_build_folder )
50-
5147 for contract_folder in sorted (contracts_folders ):
5248 contract_name , contract_version = get_contract_name_and_version (contract_folder )
5349 logging .info (f"Contract = { contract_name } , version = { contract_version } " )
@@ -75,13 +71,23 @@ def build_project(
7571 # The bundle (packaged source code) is created after build, so that Cargo.lock files are included (if previously missing).
7672 create_packaged_source_code (
7773 parent_project_folder = project_within_build_folder ,
78- package_whole_project_src = package_whole_project_src ,
74+ package_whole_project_src = True ,
7975 contract_folder = contract_build_subfolder ,
8076 output_folder = output_subfolder ,
8177 build_metadata = metadata .to_dict (),
8278 build_options = options .to_dict (),
79+ package_filename = f"{ contract_name } -{ contract_version } .source.json"
8380 )
8481
82+ create_packaged_source_code (
83+ parent_project_folder = project_within_build_folder ,
84+ package_whole_project_src = False ,
85+ contract_folder = contract_build_subfolder ,
86+ output_folder = output_subfolder ,
87+ build_metadata = metadata .to_dict (),
88+ build_options = options .to_dict (),
89+ package_filename = f"{ contract_name } -{ contract_version } .partial-source.json"
90+ )
8591 outcome .gather_artifacts (contract_build_subfolder , output_subfolder )
8692
8793 return outcome
@@ -168,7 +174,8 @@ def create_packaged_source_code(
168174 contract_folder : Path ,
169175 output_folder : Path ,
170176 build_metadata : Dict [str , Any ],
171- build_options : Dict [str , Any ]
177+ build_options : Dict [str , Any ],
178+ package_filename : str
172179):
173180 source_code_files = source_code .get_source_code_files (
174181 project_folder = parent_project_folder ,
@@ -185,7 +192,7 @@ def create_packaged_source_code(
185192 )
186193
187194 package = PackagedSourceCode .from_filesystem (metadata , parent_project_folder , source_code_files )
188- package_path = output_folder / f" { contract_name } - { contract_version } .source.json"
195+ package_path = output_folder / package_filename
189196 package .save_to_file (package_path )
190197
191198 size_of_file = package_path .stat ().st_size
0 commit comments