Skip to content

Commit c01fa0b

Browse files
authored
Extract {build,dev}-dependencies (#58)
The build-dependencies are needed by build scripts, which makes it a sort of "export" or "devel" dependency of the package. Since colcon doesn't currently disambiguate between this class and "run" dependencies, we will need to include the dependencies under "run". The "dev" dependencies however are not needed for dependees of a package, and only the package itself.
1 parent 364f852 commit c01fa0b

4 files changed

Lines changed: 21 additions & 4 deletions

File tree

colcon_cargo/package_augmentation/cargo.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,19 @@ def extract_dependencies(content, path):
7474
for k, v in content.get('dependencies', {}).items()
7575
if k != name
7676
}
77+
build_depends = {
78+
create_dependency_descriptor(k, v, path)
79+
for k, v in content.get('build-dependencies', {}).items()
80+
if k != name
81+
}
82+
dev_depends = {
83+
create_dependency_descriptor(k, v, path)
84+
for k, v in content.get('dev-dependencies', {}).items()
85+
if k != name
86+
}
7787
return {
78-
'build': depends,
79-
'run': depends,
88+
'build': depends | build_depends | dev_depends,
89+
'run': depends | build_depends,
8090
}
8191

8292

test/rust-sample-package/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,8 @@ edition = "2018"
99
[dependencies]
1010
local-rust-pure-library = {package = "rust-pure-library", path = "../rust-pure-library"}
1111

12+
[dev-dependencies]
13+
tempdir = "0.3"
14+
1215
[target.'cfg(windows)'.dependencies]
1316
windows-sys = "0.59"

test/spell_check.words

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ setuptools
3232
skipif
3333
staticmethod
3434
symlink
35+
tempdir
3536
tempfile
3637
testcase
3738
testsuite

test/test_build.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,13 @@ def test_package_augmentation():
6363
cpi.identify(desc)
6464
aug.augment_package(desc)
6565
print(desc)
66-
assert len(desc.dependencies['build']) == 2
66+
assert len(desc.dependencies['build']) == 3
6767
assert PURE_LIBRARY_PACKAGE_NAME in desc.dependencies['build']
6868
assert 'windows-sys' in desc.dependencies['build']
69-
assert desc.dependencies['run'] == desc.dependencies['build']
69+
assert 'tempdir' in desc.dependencies['build']
70+
assert len(desc.dependencies['run']) == 2
71+
assert PURE_LIBRARY_PACKAGE_NAME in desc.dependencies['run']
72+
assert 'windows-sys' in desc.dependencies['run']
7073

7174

7275
# Ported from Python 3.13 implementation

0 commit comments

Comments
 (0)