Skip to content

Commit 7f155ee

Browse files
Shapticclaude
andauthored
Protocol 28 GA: remaining pins + release workflow fix (#211)
* Protocol 28 GA: verify-range core 28.0.0, SDK P28 pseudo-version, release workflow fix - verify-range STELLAR_CORE_VERSION → 28.0.0-3486.2332980a1.noble (the integration legs' pins were already flipped on protocol-next) - go-stellar-sdk → v0.6.1-0.20260803175255-2b16db0ecd45 (P28 GA merge); loadtest call sites migrated to the multi-bundle LedgersFilePaths API (go-stellar-sdk#5959) - horizon-release.yml: strip 'v' (not 'horizon-v') from the tag so VERSION and the deprecation grep are correct — latent since the tag rename (#144) - CHANGELOG: Unreleased → 28.0.0 Train: stellar/go-stellar-sdk#5967 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * flip: SDK v0.7.0 (released), P28 CI image via unsafe-stellar-core Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * ci: run the P27 leg on the updated core build Testing the previous protocol against the previous core is redundant — the prev leg exists to verify the NEW core binary still serves protocol 27. Both legs now run 28.0.0-3486.2332980a1 (via unsafe-stellar-core until the GA-repo image publishes). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * ci: run the P27 leg on the new rpc image too Same reasoning as the core bump: the N-1 leg verifies the updated binaries serve the previous protocol (the real upgrade-window configuration). The new rpc supports P27 via its -prev host. Both legs' rpc pins get replaced by the compatible post-flip image once stellar/stellar-rpc#913 merges. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
1 parent 50e232c commit 7f155ee

7 files changed

Lines changed: 21 additions & 15 deletions

File tree

.github/workflows/horizon-release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
- name: Run deprecation tests
1414
shell: bash
1515
run: |
16-
export VERSION=${GITHUB_REF_NAME#horizon-v}
16+
export VERSION=${GITHUB_REF_NAME#v}
1717
echo "Searching for \"Action needed in release ${VERSION}\" tags..."
1818
# Negate the result so process exits with 1 if anything found
1919
! egrep -irn -A 1 --include=*.go "Action.+needed.+in.+release:.+$VERSION" ./

.github/workflows/horizon.yml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,13 @@ jobs:
1111
uses: ./.github/workflows/integration-tests.yml
1212
with:
1313
protocol_version: '27'
14-
core_deb_version: '27.1.0-3365.3589a696b.jammy~buildtests'
15-
core_docker_img: 'stellar/stellar-core:27.1.0-3365.3589a696b.jammy'
16-
stellar_rpc_docker_img: 'stellar/stellar-rpc:27.1.1'
14+
# The P27 leg runs the NEW core and rpc builds at protocol 27 — the point
15+
# is verifying the updated binaries still serve the previous protocol
16+
# (the real configuration during the upgrade window), not re-testing
17+
# already-shipped versions against each other.
18+
core_deb_version: '28.0.0-3486.2332980a1.jammy~buildtests'
19+
core_docker_img: 'stellar/unsafe-stellar-core:28.0.0-3486.2332980a1.jammy'
20+
stellar_rpc_docker_img: 'stellar/stellar-rpc:28.0.0-vnext-unstable-195'
1721
full_matrix: true
1822

1923
integration-p28-pkg:
@@ -22,7 +26,7 @@ jobs:
2226
with:
2327
protocol_version: '28'
2428
core_deb_version: '28.0.0-3486.2332980a1.jammy~buildtests'
25-
core_docker_img: 'stellar/stellar-core:28.0.0-3486.2332980a1.jammy'
29+
core_docker_img: 'stellar/unsafe-stellar-core:28.0.0-3486.2332980a1.jammy'
2630
stellar_rpc_docker_img: 'stellar/stellar-rpc:28.0.0-vnext-unstable-195'
2731
full_matrix: true
2832

@@ -39,7 +43,7 @@ jobs:
3943
runs-on: ubuntu-24.04
4044
env:
4145
GO_VERSION: 1.25.0
42-
STELLAR_CORE_VERSION: 27.1.0-3365.3589a696b.noble
46+
STELLAR_CORE_VERSION: 28.0.0-3486.2332980a1.noble
4347
steps:
4448
- uses: actions/checkout@v3
4549
with:

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
All notable changes to this project will be documented in this
44
file. This project adheres to [Semantic Versioning](http://semver.org/).
55

6-
## Unreleased
6+
## 28.0.0
7+
8+
**This release adds support for Protocol 28.**
79

810
### Added
911
- Added Protocol 28 (CAP-0085) ingestion support: decode of the new `ContractExecutable` external-reference variant and the `SCV_EXECUTABLE_TAG` `SCVal` arm, delivered via the regenerated `go-stellar-sdk` XDR ([go-stellar-sdk#5965](https://github.com/stellar/go-stellar-sdk/pull/5965)) ([#207](https://github.com/stellar/stellar-horizon/pull/207)). `MaxSupportedProtocolVersion` is already 28, so no bump is required.

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ require (
4848
require (
4949
github.com/creachadair/jrpc2 v1.2.0
5050
github.com/fsouza/fake-gcs-server v1.49.2
51-
github.com/stellar/go-stellar-sdk v0.6.1-0.20260722220414-82df7643786e
51+
github.com/stellar/go-stellar-sdk v0.7.0
5252
)
5353

5454
require (

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -429,8 +429,8 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
429429
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
430430
github.com/spf13/viper v1.17.0 h1:I5txKw7MJasPL/BrfkbA0Jyo/oELqVmux4pR/UxOMfI=
431431
github.com/spf13/viper v1.17.0/go.mod h1:BmMMMLQXSbcHK6KAOiFLz0l5JHrU89OdIRHvsk0+yVI=
432-
github.com/stellar/go-stellar-sdk v0.6.1-0.20260722220414-82df7643786e h1:Q6t+I7yt2Fwe38JgZ5hFqrNVOTrBz74tiCBv5yEpoZE=
433-
github.com/stellar/go-stellar-sdk v0.6.1-0.20260722220414-82df7643786e/go.mod h1:IkcqcrE9UQi7n/1y+MxKB+7qzdjG1T2kGOD7Ss8dqjw=
432+
github.com/stellar/go-stellar-sdk v0.7.0 h1:nzEOPA+OdRKKKnBdDAZfgrs7s3cLVST8dC1umJ4vSaU=
433+
github.com/stellar/go-stellar-sdk v0.7.0/go.mod h1:IkcqcrE9UQi7n/1y+MxKB+7qzdjG1T2kGOD7Ss8dqjw=
434434
github.com/stellar/go-xdr v0.0.0-20260529210834-0bf8f4956364 h1:gOKrfuWdZ92LFlv0TAwgZ7OsWKeBsOMDlGLyFgduI1w=
435435
github.com/stellar/go-xdr v0.0.0-20260529210834-0bf8f4956364/go.mod h1:If+U9Z1W5xU97VrOgJandQT+2dN7/iOpkCrxBJEyF80=
436436
github.com/stellar/throttled v2.2.3-0.20190823235211-89d75816f59d+incompatible h1:jMXXAcz6xTarGDQ4VtVbtERogcmDQw4RaE85Cr9CgoQ=

internal/ingest/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -706,7 +706,7 @@ func (s *system) LoadTest(ledgersFilePath, fixturesFilePath string, merge bool,
706706
// 4. Set up loadtest backend and run FSM
707707
config := loadtest.LedgerBackendConfig{
708708
NetworkPassphrase: s.config.NetworkPassphrase,
709-
LedgersFilePath: ledgersFilePath,
709+
LedgersFilePaths: []string{ledgersFilePath},
710710
LedgerCloseDuration: closeDuration,
711711
}
712712
if merge {

internal/integration/ingestion_load_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,13 @@ func TestLoadTestLedgerBackend(t *testing.T) {
6969

7070
replayConfig := loadtest.LedgerBackendConfig{
7171
NetworkPassphrase: "invalid passphrase",
72-
LedgersFilePath: filepath.Join("testdata", fmt.Sprintf("load-test-ledgers-v%d.xdr.zstd", itest.Config().ProtocolVersion)),
72+
LedgersFilePaths: []string{filepath.Join("testdata", fmt.Sprintf("load-test-ledgers-v%d.xdr.zstd", itest.Config().ProtocolVersion))},
7373
LedgerCloseDuration: 3 * time.Second / 2,
7474
LedgerBackend: newCaptiveCore(itest),
7575
}
7676
var generatedLedgers []xdr.LedgerCloseMeta
7777

78-
readFile(t, replayConfig.LedgersFilePath,
78+
readFile(t, replayConfig.LedgersFilePaths[0],
7979
func() *xdr.LedgerCloseMeta { return &xdr.LedgerCloseMeta{} },
8080
func(ledger *xdr.LedgerCloseMeta) {
8181
generatedLedgers = append(generatedLedgers, *ledger)
@@ -204,12 +204,12 @@ func TestLoadTestLedgerBackendWithoutMerge(t *testing.T) {
204204
fixturePassphrase := loadTestNetworkPassphraseFor(horizoningest.MaxSupportedProtocolVersion)
205205
replayConfig := loadtest.LedgerBackendConfig{
206206
NetworkPassphrase: "invalid passphrase",
207-
LedgersFilePath: filepath.Join("testdata", fmt.Sprintf("load-test-ledgers-v%d.xdr.zstd", horizoningest.MaxSupportedProtocolVersion)),
207+
LedgersFilePaths: []string{filepath.Join("testdata", fmt.Sprintf("load-test-ledgers-v%d.xdr.zstd", horizoningest.MaxSupportedProtocolVersion))},
208208
LedgerCloseDuration: 3 * time.Second / 2,
209209
}
210210
var generatedLedgers []xdr.LedgerCloseMeta
211211

212-
readFile(t, replayConfig.LedgersFilePath,
212+
readFile(t, replayConfig.LedgersFilePaths[0],
213213
func() *xdr.LedgerCloseMeta { return &xdr.LedgerCloseMeta{} },
214214
func(ledger *xdr.LedgerCloseMeta) {
215215
generatedLedgers = append(generatedLedgers, *ledger)

0 commit comments

Comments
 (0)