Repository navigation
Update ouroboros-consensus, cardano-api, cardano-cli and cardano-rpc for 11.2 release. - #6677
Merged
Merged
Conversation
Open
koslambrou
force-pushed
the
koslambrou/prepare-11.2
branch
4 times, most recently
from
September 4, 2026 13:55
df2ac99 to
3b679a6
Compare
koslambrou
force-pushed
the
koslambrou/prepare-11.2
branch
4 times, most recently
from
September 11, 2026 17:55
f006ac2 to
3d77a7d
Compare
koslambrou
force-pushed
the
koslambrou/prepare-11.2
branch
from
September 14, 2026 22:13
a384d4a to
8ff994d
Compare
jasagredo
added a commit
to IntersectMBO/ouroboros-consensus
that referenced
this pull request
Sep 16, 2026
cardano-ledger replaced two predicate-failure constructors and removed a third:
conway: StakeKeyRegisteredDELEG -> DelegAccountAlreadyRegistered,
wrapping the new AccountAlreadyRegistered rather than a
Credential Staking directly
conway: WithdrawalsNotInRewardsCERTS removed from ConwayCertsPredFailure
shelley: StakeKeyAlreadyRegisteredDELEG -> DelegAccountAlreadyRegistered
The payload is unchanged in both renames -- AccountAlreadyRegistered is a
newtype over the same Credential Staking -- so only the pattern and the "kind"
string move. The removed constructor's case goes rather than being renamed;
CertFailure is the only one left, and the match stays exhaustive.
This matches how cardano-node handles the same three sites in
IntersectMBO/cardano-node#6677, so the two do not diverge while that is open.
Note the "kind" values change with the constructors, from
StakeKeyRegisteredDELEG and StakeKeyAlreadyRegisteredDELEG to
DelegAccountAlreadyRegistered.
jasagredo
added a commit
to IntersectMBO/ouroboros-consensus
that referenced
this pull request
Sep 16, 2026
cardano-ledger replaced two predicate-failure constructors and removed a third:
conway: StakeKeyRegisteredDELEG -> DelegAccountAlreadyRegistered,
wrapping the new AccountAlreadyRegistered rather than a
Credential Staking directly
conway: WithdrawalsNotInRewardsCERTS removed from ConwayCertsPredFailure
shelley: StakeKeyAlreadyRegisteredDELEG -> DelegAccountAlreadyRegistered
The payload is unchanged in both renames -- AccountAlreadyRegistered is a
newtype over the same Credential Staking -- so only the pattern and the "kind"
string move. The removed constructor's case goes rather than being renamed;
CertFailure is the only one left, and the match stays exhaustive.
This matches how cardano-node handles the same three sites in
IntersectMBO/cardano-node#6677, so the two do not diverge while that is open.
Note the "kind" values change with the constructors, from
StakeKeyRegisteredDELEG and StakeKeyAlreadyRegisteredDELEG to
DelegAccountAlreadyRegistered.
koslambrou
force-pushed
the
koslambrou/prepare-11.2
branch
17 times, most recently
from
October 10, 2026 00:24
544a735 to
474f851
Compare
The published configs and release artifacts moved to the cardano-config envelope, but the service still writes a flat config. Add configFormat, "legacy" or "enveloped", so consumers can move a host at a time. Enveloping happens last, on the assembled instance config, so nodeConfig, extraNodeConfig and extraNodeInstanceConfig stay flat and keep today's key names. mkEnvelope applies the renames and sections each key. A key it does not recognise is kept outside any section, where the node will not resolve it, so opting a host in is worth checking against its warnings. Ignored when nodeConfigFile is set, so workbench is unaffected. The default stays legacy.
Added warnings, raised at eval time when configFormat is "enveloped", for keys cardano-config will not resolve. Lifted the config assembly out of mkScript to module level so the warnings check the same document that gets written, rather than a second assembly of it. Needs the cardanoLib exports added in iohk-nix: removedKeys, renamedKeys and unrecognisedKeys.
POM reads these only as TargetNumberOf*, cardano-config only as DeadlineTargetNumberOf*. The module emitted the former unconditionally, which mkEnvelope renamed, so an enveloped host warned that four keys were stale when nothing the operator set could change them.
globalTimeout bounds the whole test, so 45s had to cover the vm boot plus create-env, synthesis, both analyser passes, truncation and the asserted synthesis. It was raised from 30 to 45 in c310c0d and is still tight enough that runner variance can reach it. 300s keeps the override useful for surfacing a hang while leaving room under the one hour framework default.
Added SIGTERM and SIGINT cases for both ways into the image, scripts mode and custom mode, asserting docker did not have to SIGKILL after the grace period. These were the first four items of the Manual Testing section in nix/docker/README.md, which nobody ran and which predated merge mode, the /tmp runtime dir, read-only root and non-root UIDs. Its fifth item, cli access, is already covered three times here. Dropped the section. Use util-linux rather than the utillinux alias to resolve eval warn.
Added a submit-api subtest covering scripts mode startup and a metrics scrape. Renamed cardanoOciReadonly to cardanoOci. The test has covered more than read-only roots since its second commit and the name described only the first. Grouped the stages into subtests so a failure names its concern rather than a line number. Kept as one test: the shared cost is the vm, the docker daemon and four image loads, which a split would pay per test. All eleven subtests pass in ~120s.
Boot a preview node on `configFormat = "enveloped"` with `withUtxoHdLsmt` and an envelope-shaped `extraNodeConfig`, and assert the node took the cardano-config path, that it reported nothing to migrate or ignore, that the LSM backend resolved with its path, that the envelope-shaped key reached the resolved configuration, and that `config resolve` on the generated file says nothing on stderr. The service assembles the config it envelopes, so this is the only check that sees one as a host writes it: iohk-nix lints and envelopes environment configs, which carry neither the flat `V2LSM` pair the service adds nor anything a caller supplies. Reading two settings back out of the resolved `NodeConfiguration` is the part the iohk-nix checks cannot do at all. Those compare against cardano-config's own output, so a key its adapter never maps is lost identically on both sides and agrees.
The service writes `Backend = "V2LSM"` with a sibling `LSMDatabasePath`, which is the legacy spelling of the tagged `Backend.LSM` form. POM reads `Backend` as a string, so the nested form fails to parse on a legacy config, and mkEnvelope folds the flat one anyway, which it must do regardless for a caller supplying the same keys through extraNodeConfig. Writing the nested form here is therefore gated on no consumer still setting `configFormat = "legacy"`, and is a single flip at that point rather than a branch on the dialect. The envelope.nix header lists this as the last of the four conditions for retiring the translation; this is where the mechanics live.
The LSM backend can export a standalone copy of each snapshot, which is what Mithril signing consumes, but the service had no way to ask for one: it set `LSMDatabasePath` and nothing else. Emitted only when set, and only under `withUtxoHdLsmt`.
The node resolves relay names from the peer snapshot. With no nameserver the dns resolver is built from an empty list and throws BadConfiguration, which on the aarch64 builder escaped diffusion's retry path and took the node down instead of being retried as it is on x86_64.
koslambrou
force-pushed
the
koslambrou/prepare-11.2
branch
from
October 27, 2026 12:01
2691236 to
632883f
Compare
johnalotoski
force-pushed
the
koslambrou/prepare-11.2
branch
3 times, most recently
from
October 27, 2026 15:49
741b75f to
f61f91e
Compare
cardano-testnet create-env now refreshes the genesis hashes when it writes the node configuration, so the db tools find them already in place. Drop the add-genesis-hashes wrapper, which had become a no-op twice over: the hashes it computed were already correct in the file, and it added them as top-level keys, where splitEnvelope discards everything outside Configuration.
johnalotoski
force-pushed
the
koslambrou/prepare-11.2
branch
from
October 27, 2026 17:06
f61f91e to
afb6c20
Compare
carbolymer
approved these changes
Oct 27, 2026
koslambrou
enabled auto-merge
October 27, 2026 17:41
github-merge-queue
Bot
removed this pull request from the merge queue due to no response for status checks
Oct 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Add your description here, if it fixes a particular issue please provide a
link
to the issue.
Checklist
See Running tests for more details
CHANGELOG.mdfor affected packagecardano-node-chairman,cardano-submit-apiandcardano-testnetinstead need achangelog fragment in
<package>/.changes/, because theirCHANGELOG.mdis generatedfrom fragments at release time. Copy
_TEMPLATE.ymlfrom that directory, or runnix run github:input-output-hk/cardano-dev#herald -- new.cabalfiles are updatedhlint. See.github/workflows/check-hlint.ymlto get thehlintversionstylish-haskell. See.github/workflows/stylish-haskell.ymlto get thestylish-haskellversionghc-9.6andghc-9.12Note on CI
If your PR is from a fork, the necessary CI jobs won't trigger automatically for security reasons.
You will need to get someone with write privileges. Please contact IOG node developers to do this
for you.