ros2 / ros2/ci

Have CI report if a circular dependency is introduced

Open
#342 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

backlog enhancement
Dominant language
Python
Stars
55
Forks
39
Avg merge
1d 13h
Merged PRs (30d)
7

Description

When we go to release a new distribution (like we are doing right now for Eloquent), we often find a couple of new circular dependencies have been introduced between repositories. Part of the reason for this is that there is no tool that tells us when this happens during the normal course of development.

What I'm thinking about is a tool that can tell us this during CI runs. The basic properties I'm thinking of are:

  1. Probably a colcon plugin (since it has the topological information)
  2. Run it at the end of CI, right after colcon test-result
  3. Have some sort of whitelist of "allowed" circular dependencies, since we solve some of them via release-time ignore files. This particularly happens with some of the "test" packages that we don't release into the distribution.

Having this tool would mean that we can find out about the circular dependencies at the time of their introduction, not several months later when we go to release.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files or tests are named. Start by locating the CI step that runs colcon test-result and the repository's colcon or plugin entry points; done means CI detects newly introduced circular dependencies, runs after that step, and supports an allowlist for approved cycles.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
ci-cd, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.