LockerGnomeTech news and nostalgia for today's technology professionals
Subscribe

Search

Software

ripplemap follows a base image into repositories that never mention it

A source-file inventory gives release owners a place to start asking questions before the shared infrastructure update.

Chris drops a pebble into a pond and its ripples reach floating crates far across the water
Illustration: LockerGnome

A frontend can depend on your base image without naming it anywhere. That makes the reassuring search result with two matches a particularly lousy place to stop before an update.

The ripplemap README demonstrates the problem with a small chain: a base image feeds an API image, and the frontend runs that API image. The frontend inherits the consequences through an intermediary. A text search knows what you asked for. It doesn’t know what you meant to worry about (join the club).

The project reads dependency references in repository files and follows those connections across repositories. Its own description calls the result a “list to check.” That wording deserves more attention than the promise of discovering what a change affects. An affected consumer still needs an actual compatibility check; a connection alone cannot tell you whether the new version breaks it.

A practical review could begin with one shared component your team already understands. Compare its known consumers with the report, then inspect an indirect result. Does the chain describe the deployed service, a development-only fixture, or something abandoned? Those distinctions decide who needs a message and who needs a test. A graph can save the excavation; someone still has to read the address on the shovel.

Pinned and unpinned references also call for different conversations. An explicit version gives the consumer an upgrade decision. A floating reference can make an upstream change arrive with far less ceremony. For a release owner, separating those groups is more useful than sending everyone the same dramatic email with the word URGENT in it.

The command examples include separate impact, drift and unpinned reports. They address related questions: who depends on this, who differs, and who has left the version open. Treating them as one yes-or-no answer would discard the part that helps plan the rollout.

This is the maker’s documented workflow, rather than a benchmark or an independent compatibility test. The interesting next experiment for a team is deliberately small: choose a past release whose affected repositories are already known, and see which of those relationships a fresh scan recovers. Misses tell you where the file-based view stops describing your organization. Extra results tell you where to investigate stale or indirect references.

A tool like this could make the release discussion more concrete, provided the graph keeps its links to real files and people resist promoting “connected” into “broken.” Otherwise the dependency diagram becomes another wiki page somebody is afraid to contradict. The frontend in the example already has enough layers.

Follow the image all the way home.

More Software

Every Software story →