Skip to content

Add inherit field support in images.json for inheriting deps from other images #856

@leighmcculloch

Description

@leighmcculloch

What problem does your feature solve?

When building custom quickstart variants, downstream projects often want to use most of the same components as an existing image (like latest or testing) but with one or two deps changed. Currently this requires duplicating the entire deps list, which is error-prone and creates maintenance burden when the base image is updated.

See discussion: #778 (comment)

What would you like to see?

Allow images to specify "inherit": "<image-tag>" to inherit all deps from the referenced image:

{
  "tag": "custom",
  "inherit": "latest",
  "deps": [
    {"name": "rpc", "repo": "stellar/stellar-rpc", "ref": "custom-branch"}
  ]
}

This would resolve to an image with all deps from latest, except rpc which is overridden by the explicit definition.

Behavior:

  • Inherited deps are merged with explicitly defined deps
  • Explicit deps override inherited deps with the same name
  • Nested inheritance is supported (image A inherits from B, B inherits from C)

What alternatives are there?

  • Copy the entire deps list from the base image and modify it (current approach, error-prone)
  • Use external tooling to generate the images.json before invoking the build

Metadata

Metadata

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions