Skip to content

Commit 14da959

Browse files
committed
Changes based on PR feedback
1 parent 09924a9 commit 14da959

2 files changed

Lines changed: 12 additions & 4 deletions

File tree

colcon_cargo/task/cargo/build.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from colcon_core.logging import colcon_logger
1111
from colcon_core.plugin_system import satisfies_version
1212
from colcon_core.shell import create_environment_hook, get_command_environment
13+
from colcon_core.task import create_file
1314
from colcon_core.task import install
1415
from colcon_core.task import run
1516
from colcon_core.task import TaskExtensionPoint
@@ -271,11 +272,14 @@ async def _install_package(self, version, env):
271272
contents = await self._get_crate_contents(env)
272273
crate_path = Path(
273274
'share', 'cargo', 'registry', f'{self.context.pkg.name}-{version}')
274-
crate_path.mkdir(parents=True, exist_ok=True)
275275

276276
for file in contents:
277277
dst = crate_path / file
278278
install(self.context.args, file, dst)
279279

280-
(crate_path / '.cargo-checksum.json').write_text(
281-
'{"files":{},"package":""}\n')
280+
# Cargo "directory sources" require a checksum file to be included in
281+
# the package metadata (though it need not list all of the files).
282+
create_file(
283+
self.context.args,
284+
crate_path / '.cargo-checksum.json',
285+
content='{"files":{},"package":""}\n')

test/test_build.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
TEST_PACKAGE_NAME = 'rust-sample-package'
2828
PURE_LIBRARY_PACKAGE_NAME = 'rust-pure-library'
2929
WORKSPACE_PACKAGE_NAME = 'rust-workspace'
30+
WORKSPACE_PACKAGE_VERSION = '0.1.0'
3031

3132
test_project_path = Path(__file__).parent / TEST_PACKAGE_NAME
3233
pure_library_path = Path(__file__).parent / PURE_LIBRARY_PACKAGE_NAME
@@ -316,7 +317,10 @@ def test_workspace_with_package():
316317

317318
# There should also be an unpacked library create
318319
registry_path = install_base / 'share' / 'cargo' / 'registry'
319-
crate_path = registry_path / f'{WORKSPACE_PACKAGE_NAME}-0.1.0'
320+
crate_path = registry_path / '-'.join((
321+
WORKSPACE_PACKAGE_NAME,
322+
WORKSPACE_PACKAGE_VERSION,
323+
))
320324
assert tuple(registry_path.iterdir()) == (crate_path,)
321325
assert (crate_path / 'Cargo.toml').is_file()
322326
assert (crate_path / 'src' / 'lib.rs').is_file()

0 commit comments

Comments
 (0)