Skip to content

Commit 512935c

Browse files
Louis RannouLouis Rannou
authored andcommitted
Exclude packages changed from packageconfig diff
When a package that has some PACKAGECONFIG is added or remove, all its packageconfigs are shown in the diff, which may drastically increase the output. The aim of spdx-diff is to get a clear output of changes from two builds. It makes sense to ignore packages changes in the packageconfig diff. Signed-off-by: Louis Rannou <louis.rannou@non.se.com>
1 parent be285e2 commit 512935c

2 files changed

Lines changed: 22 additions & 3 deletions

File tree

src/spdx_diff/cli.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -587,10 +587,15 @@ def main() -> None:
587587
pkg_diff = compare_dicts(sbom_ref.packages, sbom_new.packages)
588588
cfg_diff = compare_dicts(sbom_ref.config, sbom_new.config)
589589
pcfg_diff = compare_packageconfig(sbom_ref.packageconfig, sbom_new.packageconfig)
590+
pcfg_light_diff = (
591+
{k: v for k, v in pcfg_diff[0].items() if k not in pkg_diff[0]},
592+
{k: v for k, v in pcfg_diff[1].items() if k not in pkg_diff[1]},
593+
pcfg_diff[2],
594+
)
590595

591596
# Print summary or full output
592597
if args.summary:
593-
print_summary(pkg_diff, cfg_diff, pcfg_diff)
598+
print_summary(pkg_diff, cfg_diff, pcfg_light_diff)
594599
elif args.format in {"text", "both"}:
595600
if show_packages:
596601
print_diff(
@@ -612,15 +617,15 @@ def main() -> None:
612617
)
613618
if show_packageconfig:
614619
print_packageconfig_diff(
615-
*pcfg_diff,
620+
*pcfg_light_diff,
616621
show_all=args.full,
617622
show_added=show_added,
618623
show_removed=show_removed,
619624
show_changed=show_changed,
620625
)
621626

622627
if args.format in ["json", "both"]:
623-
write_diff_to_json(pkg_diff, cfg_diff, pcfg_diff, args.output)
628+
write_diff_to_json(pkg_diff, cfg_diff, pcfg_light_diff, args.output)
624629

625630

626631
if __name__ == "__main__":

tests/test_package.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,13 @@ def test_new_pkg_with_proprietary(
2121
exp = ExpectedDiff()
2222
exp.package_added("example", "0.1")
2323
exp.package_added("i2c-tools", i2c_tools_version)
24+
exp.package_added("libacl1", "2.3.2")
25+
exp.package_added("libattr1", "2.5.1")
26+
exp.package_added("libpopt0", "1.19")
27+
exp.package_added("rsync", "3.2.7")
28+
exp.package_removed("libgcc1", "13.4.0")
29+
exp.package_removed("libstdc++6", "13.4.0")
30+
exp.package_removed("zstd", "1.5.5")
2431

2532
run_spdx_diff_check(
2633
tmp_dir,
@@ -40,6 +47,13 @@ def test_new_pkg_ign_proprietary(
4047
) -> None:
4148
exp = ExpectedDiff()
4249
exp.package_added("i2c-tools", i2c_tools_version)
50+
exp.package_added("libacl1", "2.3.2")
51+
exp.package_added("libattr1", "2.5.1")
52+
exp.package_added("libpopt0", "1.19")
53+
exp.package_added("rsync", "3.2.7")
54+
exp.package_removed("libgcc1", "13.4.0")
55+
exp.package_removed("libstdc++6", "13.4.0")
56+
exp.package_removed("zstd", "1.5.5")
4357

4458
run_spdx_diff_check(
4559
tmp_dir,

0 commit comments

Comments
 (0)