Skip to content

packaging: fix dev package dependency resolution#456

Merged
wprzytula merged 4 commits into
scylladb:masterfrom
dkropachev:fix/dev-package-dependency-resolution
May 26, 2026
Merged

packaging: fix dev package dependency resolution#456
wprzytula merged 4 commits into
scylladb:masterfrom
dkropachev:fix/dev-package-dependency-resolution

Conversation

@dkropachev

@dkropachev dkropachev commented May 21, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add the runtime package dependency to the DEB/RPM dev packages so the unversioned linker symlink and pkg-config files do not install without the shared library
  • exercise dependency resolution in the smoke tests by installing the dev package through a temporary local repository and letting apt/dnf resolve the runtime package

Fixes: #454

Testing

  • make test-package-deb
  • make test-package-rpm

Notes

  • macOS packaging was checked separately; it uses split component packages as well, but the current productbuild/DragNDrop flow does not encode equivalent package-manager dependency metadata.

Checklist

  • I have split my patch into logically separate commits.
  • All commit messages clearly explain what they change and why.
  • PR description sums up the changes and reasons why they should be introduced.
  • I have implemented Rust unit tests for the features/changes introduced.
  • I have enabled appropriate tests in Makefile in {SCYLLA,CASSANDRA}_(NO_VALGRIND_)TEST_FILTER.
  • I added appropriate Fixes: annotations to PR description.

@dkropachev
dkropachev force-pushed the fix/dev-package-dependency-resolution branch 2 times, most recently from 48e53a3 to 57b5ecf Compare May 21, 2026 20:37
@dkropachev
dkropachev marked this pull request as ready for review May 22, 2026 00:17
@dkropachev
dkropachev requested a review from wprzytula May 22, 2026 00:17
@dkropachev dkropachev self-assigned this May 22, 2026
@dkropachev
dkropachev force-pushed the fix/dev-package-dependency-resolution branch from 57b5ecf to b21ba47 Compare May 22, 2026 01:37
Comment thread packaging/smoke-test-app/Makefile
Comment thread packaging/smoke-test-app/Makefile
Comment thread packaging/smoke-test-app/Makefile

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes Linux DEB/RPM development package dependency resolution by ensuring the dev packages depend on the corresponding runtime package, and by updating the packaging smoke tests to install the dev package via a temporary local repo so the package manager must resolve/install the runtime dependency.

Changes:

  • Add runtime-package dependencies to the DEB -dev and RPM -devel packages in CPack configuration.
  • Update packaging smoke tests to validate dependency metadata and exercise apt/dnf resolution via a temporary local repository.
  • Refresh README + docs installation examples to explicitly install both runtime and development artifacts.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.

Show a summary per file
File Description
CMakeLists.txt Adds runtime dependency to DEB/RPM dev component metadata so dev packages cannot install without the shared library.
packaging/smoke-test-app/Makefile Enhances smoke tests to validate dev-package dependency fields and install dev packages via temporary apt/dnf repos to exercise resolver behavior.
Makefile Updates package test targets to run new verification steps and rely on dev-package installation to pull in runtime packages.
README.md Updates packaging install instructions to show installing both runtime and dev artifacts.
docs/source/topics/installation.md Updates Linux install commands to match the split runtime/dev packaging outputs.
docs/source/topics/getting-started.md Updates download/install examples to include both runtime and dev packages with the current artifact naming.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@dkropachev
dkropachev force-pushed the fix/dev-package-dependency-resolution branch 2 times, most recently from 5580b34 to 94b8668 Compare May 22, 2026 15:54
Comment thread packaging/smoke-test-app/Makefile Outdated
Comment thread packaging/smoke-test-app/Makefile Outdated
@dkropachev
dkropachev force-pushed the fix/dev-package-dependency-resolution branch 3 times, most recently from 6cca81a to 4e2504d Compare May 22, 2026 16:54
@dkropachev
dkropachev requested a review from wprzytula May 24, 2026 04:20
Comment thread docs/source/topics/installation.md Outdated
Comment thread packaging/smoke-test-app/Makefile
Comment thread packaging/smoke-test-app/Makefile Outdated
@dkropachev
dkropachev force-pushed the fix/dev-package-dependency-resolution branch 3 times, most recently from e164e31 to ddc6f9a Compare May 25, 2026 13:45
dkropachev and others added 4 commits May 25, 2026 10:27
Dev packages install link-time files, but the versioned shared library lives in the runtime package. Without an explicit dependency, a dev-only install can miss the runtime library.

Add exact DEB/RPM runtime dependencies and keep install docs aligned with resolver-driven dev installs.

Co-authored-by: Wojciech Przytuła <woj.przytula@gmail.com>
Make expanded ${package_name} before recipe execution, so validation errors could omit the package label. Escape it as a shell variable.
The smoke tests installed runtime packages directly, so CI could miss broken dev-package dependencies.

Verify the dependency metadata and install dev packages from temporary apt/dnf repos so the resolver must pull the runtime package.
The smoke-test labels only feed validation errors, but they still used stale scylla-rs-driver names. Match them to the actual scylla-cpp-driver package names.
@dkropachev
dkropachev force-pushed the fix/dev-package-dependency-resolution branch from ddc6f9a to 01e9c04 Compare May 25, 2026 14:27
Comment thread docs/source/topics/installation.md Outdated
Comment thread packaging/smoke-test-app/Makefile

@wprzytula wprzytula left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@wprzytula
wprzytula merged commit 807eed3 into scylladb:master May 26, 2026
9 checks passed
@wprzytula wprzytula added this to the 1.1.0 milestone Jun 2, 2026
wprzytula added a commit to wprzytula/cpp-rs-driver that referenced this pull request Jun 2, 2026
## Summary
- add the runtime package dependency to the DEB/RPM dev packages so the
unversioned linker symlink and pkg-config files do not install without
the shared library
- exercise dependency resolution in the smoke tests by installing the
dev package through a temporary local repository and letting apt/dnf
resolve the runtime package

Fixes: scylladb#454
## Testing
- `make test-package-deb`
- `make test-package-rpm`

## Notes
- macOS packaging was checked separately; it uses split component
packages as well, but the current productbuild/DragNDrop flow does not
encode equivalent package-manager dependency metadata.

(cherry picked from commit 807eed3)
@wprzytula wprzytula mentioned this pull request Jun 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

scylla_cpp_driver-dev_1.0.0_amd64.deb doesn't include the actual .so library

3 participants