Skip to content

build: raise language_version pragma to 0.23.0 - #598

Merged
0xisk merged 1 commit into
mainfrom
chore/bump-language-version-0.23
Jun 15, 2026
Merged

build: raise language_version pragma to 0.23.0#598
0xisk merged 1 commit into
mainfrom
chore/bump-language-version-0.23

Conversation

@0xisk

@0xisk 0xisk commented Jun 15, 2026

Copy link
Copy Markdown
Member

Types of changes

  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation Update (if none of the other choices apply)

No linked issue — follow-up to #597.

Raises the pragma language_version floor >= 0.21.0>= 0.23.0 across all 47 .compact files. 0.23.0 is the Compact language version that ships with compiler 0.31.0 (compactc-v0.31.0 release), so the declared minimum now matches the toolchain.

Depends on #597

Stacked on the toolchain upgrade (#597), which bumps the compiler to 0.31.0. Until #597 merges, this PR's diff against main includes the toolchain upgrade plus the pragma bump; once #597 lands, rebasing onto main collapses it to the pragma change only. Merge #597 first.

Validation

  • All contracts compile on 0.31.0.
  • Full vitest suite passes: 1156 tests across 27 files.

PR Checklist

  • I have read the Contributing Guide
  • I have added tests that prove my fix is effective or that my feature works. — N/A: no behavior change; the existing suite passes.
  • I have added documentation for new methods or changes to existing method behavior. — CHANGELOG updated.
  • CI Workflows Are Passing — pending first run.

Further comments

Split out from #597 so the toolchain upgrade and the language-version floor land as separate, reviewable changes.

Summary by CodeRabbit

  • Chores
    • Upgraded Compact toolchain dependencies including compiler, runtime, ledger implementation, and simulation library to latest versions
    • Updated minimum language version requirement across all smart contracts in the project

@0xisk
0xisk requested review from a team as code owners June 15, 2026 15:17
@coderabbitai

coderabbitai Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 088434bb-8990-40f4-a7cb-7a568f96a2d0

📥 Commits

Reviewing files that changed from the base of the PR and between 336a622 and 1d5aa6b.

📒 Files selected for processing (48)
  • CHANGELOG.md
  • contracts/src/access/AccessControl.compact
  • contracts/src/access/Ownable.compact
  • contracts/src/access/ShieldedAccessControl.compact
  • contracts/src/access/ZOwnablePK.compact
  • contracts/src/access/test/mocks/MockAccessControl.compact
  • contracts/src/access/test/mocks/MockOwnable.compact
  • contracts/src/access/test/mocks/MockShieldedAccessControl.compact
  • contracts/src/access/test/mocks/MockZOwnablePK.compact
  • contracts/src/archive/ShieldedToken.compact
  • contracts/src/archive/test/mocks/MockShieldedToken.compact
  • contracts/src/multisig/Forwarder.compact
  • contracts/src/multisig/ForwarderPrivate.compact
  • contracts/src/multisig/ProposalManager.compact
  • contracts/src/multisig/ShieldedTreasury.compact
  • contracts/src/multisig/ShieldedTreasuryStateless.compact
  • contracts/src/multisig/Signer.compact
  • contracts/src/multisig/SignerManager.compact
  • contracts/src/multisig/UnshieldedTreasury.compact
  • contracts/src/multisig/presets/ShieldedMultiSig.compact
  • contracts/src/multisig/presets/ShieldedMultiSigV2.compact
  • contracts/src/multisig/presets/forwarder/ForwarderPrivate.compact
  • contracts/src/multisig/presets/forwarder/ForwarderShielded.compact
  • contracts/src/multisig/presets/forwarder/ForwarderUnshielded.compact
  • contracts/src/multisig/test/mocks/MockForwarder.compact
  • contracts/src/multisig/test/mocks/MockForwarderPrivate.compact
  • contracts/src/multisig/test/mocks/MockProposalManager.compact
  • contracts/src/multisig/test/mocks/MockShieldedTreasury.compact
  • contracts/src/multisig/test/mocks/MockShieldedTreasuryStateless.compact
  • contracts/src/multisig/test/mocks/MockSigner.compact
  • contracts/src/multisig/test/mocks/MockSignerManager.compact
  • contracts/src/multisig/test/mocks/MockUnshieldedTreasury.compact
  • contracts/src/security/Initializable.compact
  • contracts/src/security/Pausable.compact
  • contracts/src/security/test/mocks/MockInitializable.compact
  • contracts/src/security/test/mocks/MockPausable.compact
  • contracts/src/token/FungibleToken.compact
  • contracts/src/token/MultiToken.compact
  • contracts/src/token/NonFungibleToken.compact
  • contracts/src/token/test/mocks/MockFungibleToken.compact
  • contracts/src/token/test/mocks/MockMultiToken.compact
  • contracts/src/token/test/mocks/MockNonFungibleToken.compact
  • contracts/src/utils/Utils.compact
  • contracts/src/utils/test/mocks/MockUtils.compact
  • contracts/test/integration/_mocks/ComposedTokens.compact
  • contracts/test/integration/_mocks/SharedInitCollision.compact
  • contracts/test/integration/_mocks/sharedInit/ModuleA.compact
  • contracts/test/integration/_mocks/sharedInit/ModuleB.compact

Walkthrough

Raises pragma language_version from >= 0.21.0 to >= 0.23.0 across all 47 .compact contract and mock files in the repository, and adds a CHANGELOG.md entry recording the Compact compiler (0.29.00.31.0), compact-runtime, ledger-v8, and compact-simulator dependency upgrades.

Changes

Compact Toolchain Pragma Upgrade

Layer / File(s) Summary
Changelog entry
CHANGELOG.md
Adds an Unreleased → Changed entry documenting the Compact compiler, compact-runtime, ledger-v8, and compact-simulator version upgrades alongside the pragma language_version minimum bump.
pragma language_version >= 0.23.0 — all contracts and mocks
contracts/src/access/*.compact, contracts/src/security/*.compact, contracts/src/token/*.compact, contracts/src/multisig/**/*.compact, contracts/src/archive/**/*.compact, contracts/src/utils/**/*.compact, contracts/test/integration/_mocks/**/*.compact
Raises the pragma language_version directive minimum from >= 0.21.0 to >= 0.23.0 uniformly across all 47 production contracts, test mocks, and integration fixtures. No logic, exported interfaces, or circuit signatures change.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

Suggested reviewers

  • pepebndc

Poem

🐇 Hop, hop, version hop!
From 0.21 we boldly stop,
0.23 is where we land,
Forty-seven files updated — grand!
The rabbit stamps each pragma right,
Compact toolchain, shining bright! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title concisely and accurately summarizes the primary change: raising the language_version pragma requirement across all 47 Compact contract files from 0.21.0 to 0.23.0.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/bump-language-version-0.23

Comment @coderabbitai help to get the list of available commands and usage tips.

Compiler 0.31.0 ships Compact language version 0.23.0. Raise the
`pragma language_version` floor >= 0.21.0 -> >= 0.23.0 across all 47
.compact files so the declared minimum matches the toolchain.

Depends on the toolchain upgrade in #597 (compiler 0.31.0). Verified:
all contracts compile on 0.31.0 and the full vitest suite passes
(1156 tests, 27 files).
@0xisk
0xisk force-pushed the chore/bump-language-version-0.23 branch from b7a8fb3 to 1d5aa6b Compare June 15, 2026 15:21
@0xisk
0xisk merged commit 0c7e26f into main Jun 15, 2026
9 of 10 checks passed
@0xisk
0xisk deleted the chore/bump-language-version-0.23 branch June 15, 2026 16:56
andrew-fleming pushed a commit to andrew-fleming/compact-contracts that referenced this pull request Jun 19, 2026
Align ShieldedMultiSigV3 with the repo-wide pragma raised in OpenZeppelin#598 and
with its own deps (Signer, Utils), which already declare >= 0.23.0.

Refs: OpenZeppelin#604
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants