Skip to content

Experiment with ifdef-guarded changes to xdr#910

Draft
leighmcculloch wants to merge 3 commits intomainfrom
xdrifdef
Draft

Experiment with ifdef-guarded changes to xdr#910
leighmcculloch wants to merge 3 commits intomainfrom
xdrifdef

Conversation

@leighmcculloch
Copy link
Member

What

Experiment with ifdef-guarded changes to xdr

Why

For:

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 modifies the Stellar Quickstart Docker image configuration to experiment with ifdef-guarded XDR changes for transaction metadata v5. However, it makes these changes by modifying the stable "latest" image configuration rather than adding a new experimental configuration entry.

Changes:

  • Changed the image tag from "latest" to "xdrifdef"
  • Updated stellar-core reference from stable version tag v25.1.1 to commit hash 2e45f3df2b07f8b53a02178c0fe57f3652199535
  • Added experimental configure flag "--xdr-transaction-meta-v5" to stellar-core build options

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

@@ -1,6 +1,6 @@
[
{
Copy link

Copilot AI Feb 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The tag name has been changed from "latest" to "xdrifdef". According to the README (lines 68-72), "latest" is documented as "stable software, compatible with mainnet" and is one of the main published DockerHub tags. Changing this tag name would break compatibility for users depending on the "latest" tag.

For an experimental feature, consider either:

  1. Adding a new image configuration entry in images.json instead of modifying the existing "latest" entry
  2. Using a clearly experimental tag name and keeping the "latest" configuration intact
Suggested change
{
{
"tag": "latest",
"events": [
"pull_request",
"push"
],
"config": {
"protocol_version_default": 25
},
"deps": [
{
"name": "xdr",
"repo": "stellar/rs-stellar-xdr",
"ref": "v25.0.0"
},
{
"name": "core",
"repo": "stellar/stellar-core",
"ref": "2e45f3df2b07f8b53a02178c0fe57f3652199535",
"options": {
"configure_flags": "--disable-tests --xdr-transaction-meta-v5"
}
},
{
"name": "rpc",
"repo": "stellar/stellar-rpc",
"ref": "v25.0.1"
},
{
"name": "horizon",
"repo": "stellar/stellar-horizon",
"ref": "v25.0.1",
"options": {
"pkg": "github.com/stellar/stellar-horizon"
}
},
{
"name": "friendbot",
"repo": "stellar/friendbot",
"ref": "4a6a1715d5b81c640dd9f887dd37b26499e95e72",
"options": {
"pkg": "github.com/stellar/friendbot"
}
},
{
"name": "lab",
"repo": "stellar/laboratory",
"ref": "main"
},
{
"name": "galexie",
"repo": "stellar/stellar-galexie",
"ref": "galexie-v25.1.0"
}
],
"tests": {
"continue-on-error": false,
"additional-tests": [
{
"arch": "amd64",
"network": "pubnet",
"enable": "core,rpc,horizon"
}
]
}
},
{

Copilot uses AI. Check for mistakes.
"name": "core",
"repo": "stellar/stellar-core",
"ref": "v25.1.1",
"ref": "2e45f3df2b07f8b53a02178c0fe57f3652199535",
Copy link

Copilot AI Feb 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The stellar-core reference has been changed from a stable version tag "v25.1.1" to a commit hash "2e45f3df2b07f8b53a02178c0fe57f3652199535". While using commit hashes is acceptable for experimental configurations (as seen in the "future" tag at line 166), this change is being applied to what was the "latest" tag, which is documented as containing "stable software, compatible with mainnet".

If this is meant to be an experimental build, ensure this configuration is in a separate experimental tag entry rather than replacing the stable "latest" configuration.

Suggested change
"ref": "2e45f3df2b07f8b53a02178c0fe57f3652199535",
"ref": "v25.1.1",

Copilot uses AI. Check for mistakes.
images.json Outdated
"ref": "2e45f3df2b07f8b53a02178c0fe57f3652199535",
"options": {
"configure_flags": "--disable-tests"
"configure_flags": "--disable-tests --xdr-transaction-meta-v5"
Copy link

Copilot AI Feb 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The configure flag "--xdr-transaction-meta-v5" has been added for this experimental build. This appears to be an ifdef-guarded feature flag (as mentioned in the PR description). However, this change is being applied to what was the "latest" tag configuration.

Since this is an experimental feature, this configuration should be in a separate experimental image entry (similar to how "nightly" and "nightly-next" are separate entries) rather than modifying the stable "latest" configuration.

Copilot uses AI. Check for mistakes.
images.json Outdated
[
{
"tag": "latest",
"tag": "xdrifdef",
Copy link

Copilot AI Feb 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The tag name "xdrifdef" is unclear and doesn't follow the naming conventions used for other experimental tags in this file. Other experimental/developmental tags use more descriptive names:

  • "testing" (line 69) - for release candidates
  • "future" (line 140) - for future network compatible builds
  • "nightly" (line 201) - for nightly builds
  • "nightly-next" (line 261) - for next protocol nightlies

Consider using a more descriptive name like "xdr-meta-v5-experiment" or "experimental-transaction-meta-v5" that clearly indicates this is an experimental build and what feature is being tested.

Suggested change
"tag": "xdrifdef",
"tag": "experimental-transaction-meta-v5",

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog (Not Ready)

Development

Successfully merging this pull request may close these issues.

2 participants