Skip to content

Conversation

@leighmcculloch
Copy link
Member

@leighmcculloch leighmcculloch commented Dec 10, 2025

What

Extend the images-resolve-inherits script to merge config fields from parent images. Child config values override parent values, matching the existing behavior for deps.

Why

Allow images to inherit configuration from parent images, reducing duplication in images.json when child images share common config with their parents. The only config that exists, the only parameter that exists in config today, is the protocol_version_default. It's really helpful to not have to keep updating that and any downstream systems that I want to test against core.

Close #856

Copy link
Contributor

Copilot AI left a comment

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 extends the images-resolve-inherits script to support config field inheritance from parent images, in addition to the existing dependency inheritance. Child config values override parent values, matching the established pattern for dependency inheritance.

Key changes:

  • Config fields are now merged from parent images during inheritance resolution
  • Child config values take precedence over parent values when keys conflict
  • Documentation updated to reflect config inheritance behavior

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

@leighmcculloch leighmcculloch merged commit 02f3d74 into main Dec 10, 2025
95 checks passed
@leighmcculloch leighmcculloch deleted the quickstart-inherit-inherit-config branch December 10, 2025 06:32
@github-project-automation github-project-automation bot moved this from Backlog (Not Ready) to Done in DevX Dec 10, 2025
leighmcculloch added a commit that referenced this pull request Dec 10, 2025
### What
Update README to document the `inherit` field for custom builds. Replace
verbose example that specified all deps with a minimal example that
inherits from `latest` and overrides only `stellar-rpc`.

### Why
The `inherit` field reduces boilerplate for custom builds by allowing
users to extend existing image tags and override only specific
dependencies.

The field was added in the following pr but I forgot to update the docs:
- #857

Dependent on:
- #859 

Close #856
github-merge-queue bot pushed a commit to stellar/stellar-core that referenced this pull request Dec 18, 2025
# Description

Add three GitHub Actions workflows that build and test quickstart images
on pull requests. Each workflow targets a different base image: testing,
nightly, and nightly-next. The workflows build stellar-core from the PR
branch and run quickstart built-in tests that check that the network is
up, and other software components are ingesting and syncing, and that
someone can do some payments (this happens via friendbot).

This change is an experiment to see if we get useful feedback about
potential breakages to other downstream systems earlier in the
development life cycle. The workflows only target pull requests and not
push because the quick start repository already runs nightly builds of
all software components' default branches.

The intent with running this on pull requests is that the repo does have
long-lived pull requests from time to time. The goal is to give
developers working on Stellar Core earlier feedback if changes they're
making are likely to break downstream systems.

Failures in these builds, should not block merges. As we figure out how
to best tune the build an to evaluate if it's value, if failures occur,
they can be ignored, but would appreciate a comment in [this slack
channel](https://stellarfoundation.slack.com/archives/C09AY3FHCN6).

The protocol default version config parameter in the change will be able
to disappear after:
- stellar/quickstart#859

There is no issue for this change, but it was discussed prior
[here](https://stellarfoundation.slack.com/archives/C09AY3FHCN6/p1764674707236829).

cc @sisuresh @anupsdf

<!---

Describe what this pull request does, which issue it's resolving
(usually applicable for code changes).

--->

# Checklist
- [x] Reviewed the
[contributing](https://github.com/stellar/stellar-core/blob/master/CONTRIBUTING.md#submitting-changes)
document
- [x] Rebased on top of master (no merge commits)
- [ ] ~Ran `clang-format` v8.0.0 (via `make format` or the Visual Studio
extension)~
- [ ] ~Compiles~
- [ ] ~Ran all tests~
- [ ] ~If change impacts performance, include supporting evidence per
the [performance
document](https://github.com/stellar/stellar-core/blob/master/performance-eval/performance-eval.md)~
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

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

3 participants