ci: support suite-aware extra repos#171
Conversation
9087770 to
e79d931
Compare
74ddbe9 to
d9233fc
Compare
Add debian/extra-repositories.txt parsing for build_package. Support suite filters like [noble,questing] and suite placeholders. Pass selected entries to all sbuild invocation paths. Signed-off-by: Simon Beaudoin <sbeaudoi@qti.qualcomm.com>
Document debian/extra-repositories.txt in AGENTS.md. Describe suite filters, wildcard support, and placeholders. Signed-off-by: Simon Beaudoin <sbeaudoi@qti.qualcomm.com>
Keep only global entries and explicit suite-filtered entries in debian/extra-repositories.txt. Remove wildcard and placeholder handling. Keep sid/unstable alias matching for suite filters. Update docs to reflect the simplified contract. Signed-off-by: Simon Beaudoin <sbeaudoi@qti.qualcomm.com>
Point DEBUSINE_ACTION_REF to dev/sbeaudoi-extra-repositories. This enables pkg-example trixie validation for extra-repositories. Signed-off-by: Simon Beaudoin <sbeaudoi@qti.qualcomm.com>
d9233fc to
4723748
Compare
|
Hi! If an external build dependency is required to build, then that will be a hard blocker for release into the qli repository or upstreaming into Debian. We expect to package build dependencies into our repository first instead. There's also an issue with possible code injection from external sources, so I'm not sure this is appropriate in principle at all. It also introduces potential for runtime binary dependencies that users' apt will not know how to fulfil. Before committing to this approach we should discuss further. @lool do you have an opinion here please? If we do accept it, I think it should be permitted only in certain branch names, not everything, since that determines the target workspace and repository. This would touch areas of code I'm preparing in qualcomm-linux/debusine-action#41 (currently in progress). |
|
Jiaxing, please read Robie's comment above. Robie, Jiaxing is from the team that asked me to craft such feature. |
|
Hi @basak-qcom. Thank you very much for your feedback and for raising concerns about this approach. However, ROS 2 is a widely used dependency in the robotics ecosystem. It is not included in the Debian or Ubuntu upstream repositories and is instead maintained via its own independent APT repository. Without support for adding third-party repositories in PKG-REPO, it will be challenging to deliver robotics features effectively. In addition, we need to identify and validate a practical solution to enable ROS 2 builds. regard to the option "We expect to package build dependencies into our repository first instead". In practice, ROS 2 is designed to be consumed from its own APT repository. Re-packaging all dependencies internally is neither scalable nor sustainable and would make it difficult to track upstream updates and ensure compatibility. |
|
Thanks for your info @simonbeaudoin0935 @basak-qcom
Appreciate your guidance so we can align with the intended design. |
|
Hi @jiaxshi, you should eventually be able to provide extra repositories and build ROS style packages; this is not our highest priority, but the infrastructure should be able to do that. What you'll need are 1) a definition of your target build environments (which Ubuntu series, which overlay APT repositories – likely the ROS one, plan for Debian), 2) a definition of your build interface (sbuild ok? or some ROS specific one), 3) a definition of your source to upload strategy – github + gbp + branch name convention? This will likely take a few iterations over some kind of spec. |
Summary
Add support for package-repo-provided extra apt repositories during CI builds via an optional
debian/extra-repositories.txtfile.Mechanism
build_packagereadsdebian/extra-repositories.txt(if present) and forwards active entries tosbuildas--extra-repository.Supported entry forms:
deb ...[noble,questing,resolute] deb ...Behavior:
unstableandsidare treated as equivalent for filter matchingValidation
Validated downstream with
pkg-exampleusingqcom-build-utils@developmentat commitfc9b2261e31f5e2cdb816e570698f96efb59d01f.Workflow run:
pkg-examplebuild workflow run: https://github.com/qualcomm-linux/pkg-example/actions/runs/27319570199debian-ref=qcom/debian/latestsuite=nobleforce-docker-build=trueObserved in logs:
deb [arch=arm64 trusted=yes] https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu noble mainpython3.7-devpython3.7-devand related packages were pulled from the configured PPA and build completed successfully