Skip to content

release: merge dev into main (ERC-8153 exportSelectors + release-please)#31

Merged
dadadave80 merged 4 commits into
mainfrom
dev
Jul 10, 2026
Merged

release: merge dev into main (ERC-8153 exportSelectors + release-please)#31
dadadave80 merged 4 commits into
mainfrom
dev

Conversation

@dadadave80

Copy link
Copy Markdown
Owner

Promotes dev to main. Merging this activates release-please on main, which will then open a v0.2.0 release PR (the feat: below drives the minor bump; ci: does not bump).

Included (PRs #29, #30)

feat: ERC-8153 exportSelectors — on-chain facet self-description

  • Every facet implements exportSelectors() external pure; selector discovery moved off FFI onto Selectors.decode
  • GetSelectors.sol deleted, ffi = false; deploy script + tests rewired
  • New IFacet, ExportSelectorsTester; stays ERC-2535 (no upgradeDiamond/event/error changes)
  • Fable-reviewed (meets production bar); 91/91 tests pass with ffi disabled

ci: release automation + action bumps

  • googleapis/release-please-action@v5 on push to main (release-type simple, seeded at 0.1.4, bump-minor-pre-major)
  • actions/checkout v4 → v7

After merge

  1. release-please opens a v0.2.0 release PR (changelog from the feat: commit).
  2. Merge that PR → tags v0.2.0 + creates the GitHub release.

Pre-1.0, unaudited — not for production use until audited.

Every facet now implements ERC-8153's `exportSelectors() external pure`,
reporting its own selectors on-chain. Selector discovery moves from the
off-chain FFI helper (`forge inspect`) to this on-chain source of truth.

- Add `IFacet` interface + `exportSelectors()` to all core facets and mocks
  (selectors referenced as `this.<fn>.selector`, self-excluded per ERC-8153)
- Add `Selectors.decode` helper; delete FFI-based `GetSelectors.sol`
- Rewire deploy script and tests to read selectors via `exportSelectors()`
- Set `ffi = false`; drop `--ffi` from CONTRIBUTING
- Add `ExportSelectorsTester` (exact-set, self-exclusion, decoder fuzz)
- Document self-reported-selector trust caveat and the selector-drift
  discipline rule

Out of scope (kept ERC-2535): upgradeDiamond, facet events/errors, loupe.
feat: adopt ERC-8153 exportSelectors for on-chain facet self-description
- Add release-please (googleapis/release-please-action@v5) on push to main;
  release-type `simple`, seeded at 0.1.4 via manifest, `bump-minor-pre-major`
  so pre-1.0 breaking changes stay in 0.x (no surprise 1.0.0)
- Add release-please-config.json + .release-please-manifest.json
- Bump actions/checkout v4 -> v7 (foundry-toolchain@v1 already latest major, 1.9.0)
…tion-bumps

ci: add release-please workflow and bump action versions
@dadadave80
dadadave80 merged commit 0e9c53c into main Jul 10, 2026
2 checks passed
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.

1 participant