Skip to content

Conversation

@SamWilsn
Copy link
Contributor

@SamWilsn SamWilsn commented Sep 8, 2025

Note to Reviewers

This pull request will fail tests until a change has been made in EEST:

diff --git a/src/ethereum_spec_tests/ethereum_clis/clis/execution_specs.py b/src/ethereum_spec_tests/ethereum_clis/clis/execution_specs.py
index 7dc7f1ef5..67c518d6b 100644
--- a/src/ethereum_spec_tests/ethereum_clis/clis/execution_specs.py
+++ b/src/ethereum_spec_tests/ethereum_clis/clis/execution_specs.py
@@ -152,10 +152,10 @@ class ExecutionSpecsExceptionMapper(ExceptionMapper):
             "InsufficientMaxFeePerBlobGasError"
         ),
         TransactionException.TYPE_3_TX_PRE_FORK: (
-            "module 'ethereum.shanghai.transactions' has no attribute 'BlobTransaction'"
+            "module 'ethereum.forks.shanghai.transactions' has no attribute 'BlobTransaction'"
         ),
         TransactionException.TYPE_4_TX_PRE_FORK: (
-            "'ethereum.cancun.transactions' has no attribute 'SetCodeTransaction'"
+            "'ethereum.forks.cancun.transactions' has no attribute 'SetCodeTransaction'"
         ),
         TransactionException.TYPE_3_TX_INVALID_BLOB_VERSIONED_HASH: (
             "InvalidBlobVersionedHashError"

Also git guesses the renames very wrong for this sometimes. I don't know why.

What was wrong?

Related to Issue #1357

It isn't possible to load forks that aren't contained in the ethereum-execution package itself.

How was it fixed?

This PR moves all forks into a namespace package, which allows any package to add a fork.

Cute Animal Picture

Put a link to a cute animal picture inside the parenthesis-->

@SamWilsn SamWilsn force-pushed the namespace-forks branch 2 times, most recently from 99377ad to 426e56d Compare September 8, 2025 21:43
@codecov-commenter
Copy link

codecov-commenter commented Sep 9, 2025

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 93.49112% with 11 lines in your changes missing coverage. Please review.
✅ Project coverage is 86.07%. Comparing base (cdbe21f) to head (68129ed).
⚠️ Report is 1 commits behind head on forks/osaka.

Files with missing lines Patch % Lines
src/ethereum/forks/byzantium/trie.py 94.36% 4 Missing and 4 partials ⚠️
src/ethereum/forks/dao_fork/dao.py 70.00% 3 Missing ⚠️
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@               Coverage Diff                @@
##           forks/osaka    #1416       +/-   ##
================================================
- Coverage        97.16%   86.07%   -11.10%     
================================================
  Files              583      743      +160     
  Lines            34637    44072     +9435     
  Branches          3056     3891      +835     
================================================
+ Hits             33656    37936     +4280     
- Misses             536     5659     +5123     
- Partials           445      477       +32     
Flag Coverage Δ
unittests 86.07% <93.49%> (-11.10%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor

@gurukamath gurukamath left a comment

Choose a reason for hiding this comment

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

LGTM!

Copy link
Contributor

@Carsons-Eels Carsons-Eels left a comment

Choose a reason for hiding this comment

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

The Network Upgrades PR was to be rolled into this one ( #1414 ) but diff looks like all those files just got deleted rather than moved or updated. Is this intended?

@SamWilsn
Copy link
Contributor Author

SamWilsn commented Sep 12, 2025

The content has been moved into src/ethereum/forks/*/__init__.py

@SamWilsn SamWilsn merged commit 5ddb904 into ethereum:forks/osaka Sep 16, 2025
8 checks passed
@SamWilsn SamWilsn deleted the namespace-forks branch September 16, 2025 00:23
rjl493456442 pushed a commit to ethereum/go-ethereum that referenced this pull request Sep 20, 2025
A PR in the specs repo broke our existing links:
ethereum/execution-specs#1416

This PR fixes it and adds the Prague and Osaka specs.
Sahil-4555 pushed a commit to Sahil-4555/go-ethereum that referenced this pull request Oct 12, 2025
A PR in the specs repo broke our existing links:
ethereum/execution-specs#1416

This PR fixes it and adds the Prague and Osaka specs.
Carsons-Eels pushed a commit to Carsons-Eels/execution-specs that referenced this pull request Oct 16, 2025
…mulator (ethereum#1416)

* fix(exceptions): UndefinedException return on new

* feat(rpc,plugins/consume): Support exception mapper

* fix(exceptions): Allow undefined mapper

* feat(plugins/consume): Add more mappers

* fix(logging): don't use newlines within log messages

* refactor(exceptions,specs): ExceptionWithMessage contains a list

* new(exceptions): Add `INVALID_BLOCK_HASH` exception

* feat(clis): Add ethjs exceptions

* feat(clis): Add geth exceptions

* feat(plugins/consume): Add besu exceptions

* feat(plugins/consume): Add nethermind exceptions

* feat(plugins/consume): Add reth exceptions

* feat(consume): add `--strict-exception-matching` parameter

* more reth exceptions

* refactor mappers

* add ethjs exception

* fix(tests): EIP-7685: Add expected exception to `test_invalid_multi_type_requests_engine`

* add reth exception

* fix(plugins/consume): log failure

* feat(clis): Add Erigon Exception Mapper

* feat(specs): Allow setting expected block exception for state tests (only affects generated block tests)

* fix(tests): Add block exceltion to test_blob_type_tx_pre_fork

* fix(clis): Exceptions in mappers

* change(plugins/consume): Enable strict exception matching by default

* fix(specs): Exception message check on strict match

* docs: changelog

* chore(clis): update exception mappers for TYPE_4_TX_PRE_FORK

* refactor(consume): cache exception mappers in session-scoped fixture

* refactor(consume): make string match more robust by applying `lower()`

* feat(consume): allow disabling of strict exception checking per fork

* refactor(consume/hive): create `strict_exception_matching` fixture

* fix: whitelist

* changelog: Add exception

* changelog: Invalid versioned hashes exception

* refactor(consume/engine): Better error logging

* fix(clis/reth): Exception mapper

* fix(clis/besu): Exception mapper

* fix(clis/geth): Exception mapper

* fix(clis/ethereumjs): Exception mapper

* fix(clis/erigon): Exception mapper

---------

Co-authored-by: danceratopz <danceratopz@gmail.com>
danceratopz added a commit to danceratopz/execution-specs that referenced this pull request Oct 22, 2025
…mulator (ethereum#1416)

* fix(exceptions): UndefinedException return on new

* feat(rpc,plugins/consume): Support exception mapper

* fix(exceptions): Allow undefined mapper

* feat(plugins/consume): Add more mappers

* fix(logging): don't use newlines within log messages

* refactor(exceptions,specs): ExceptionWithMessage contains a list

* new(exceptions): Add `INVALID_BLOCK_HASH` exception

* feat(clis): Add ethjs exceptions

* feat(clis): Add geth exceptions

* feat(plugins/consume): Add besu exceptions

* feat(plugins/consume): Add nethermind exceptions

* feat(plugins/consume): Add reth exceptions

* feat(consume): add `--strict-exception-matching` parameter

* more reth exceptions

* refactor mappers

* add ethjs exception

* fix(tests): EIP-7685: Add expected exception to `test_invalid_multi_type_requests_engine`

* add reth exception

* fix(plugins/consume): log failure

* feat(clis): Add Erigon Exception Mapper

* feat(specs): Allow setting expected block exception for state tests (only affects generated block tests)

* fix(tests): Add block exceltion to test_blob_type_tx_pre_fork

* fix(clis): Exceptions in mappers

* change(plugins/consume): Enable strict exception matching by default

* fix(specs): Exception message check on strict match

* docs: changelog

* chore(clis): update exception mappers for TYPE_4_TX_PRE_FORK

* refactor(consume): cache exception mappers in session-scoped fixture

* refactor(consume): make string match more robust by applying `lower()`

* feat(consume): allow disabling of strict exception checking per fork

* refactor(consume/hive): create `strict_exception_matching` fixture

* fix: whitelist

* changelog: Add exception

* changelog: Invalid versioned hashes exception

* refactor(consume/engine): Better error logging

* fix(clis/reth): Exception mapper

* fix(clis/besu): Exception mapper

* fix(clis/geth): Exception mapper

* fix(clis/ethereumjs): Exception mapper

* fix(clis/erigon): Exception mapper

---------

Co-authored-by: danceratopz <danceratopz@gmail.com>
chetna-mittal pushed a commit to gnosischain/execution-specs that referenced this pull request Oct 24, 2025
…mulator (ethereum#1416)

* fix(exceptions): UndefinedException return on new

* feat(rpc,plugins/consume): Support exception mapper

* fix(exceptions): Allow undefined mapper

* feat(plugins/consume): Add more mappers

* fix(logging): don't use newlines within log messages

* refactor(exceptions,specs): ExceptionWithMessage contains a list

* new(exceptions): Add `INVALID_BLOCK_HASH` exception

* feat(clis): Add ethjs exceptions

* feat(clis): Add geth exceptions

* feat(plugins/consume): Add besu exceptions

* feat(plugins/consume): Add nethermind exceptions

* feat(plugins/consume): Add reth exceptions

* feat(consume): add `--strict-exception-matching` parameter

* more reth exceptions

* refactor mappers

* add ethjs exception

* fix(tests): EIP-7685: Add expected exception to `test_invalid_multi_type_requests_engine`

* add reth exception

* fix(plugins/consume): log failure

* feat(clis): Add Erigon Exception Mapper

* feat(specs): Allow setting expected block exception for state tests (only affects generated block tests)

* fix(tests): Add block exceltion to test_blob_type_tx_pre_fork

* fix(clis): Exceptions in mappers

* change(plugins/consume): Enable strict exception matching by default

* fix(specs): Exception message check on strict match

* docs: changelog

* chore(clis): update exception mappers for TYPE_4_TX_PRE_FORK

* refactor(consume): cache exception mappers in session-scoped fixture

* refactor(consume): make string match more robust by applying `lower()`

* feat(consume): allow disabling of strict exception checking per fork

* refactor(consume/hive): create `strict_exception_matching` fixture

* fix: whitelist

* changelog: Add exception

* changelog: Invalid versioned hashes exception

* refactor(consume/engine): Better error logging

* fix(clis/reth): Exception mapper

* fix(clis/besu): Exception mapper

* fix(clis/geth): Exception mapper

* fix(clis/ethereumjs): Exception mapper

* fix(clis/erigon): Exception mapper

---------

Co-authored-by: danceratopz <danceratopz@gmail.com>
chetna-mittal pushed a commit to gnosischain/execution-specs that referenced this pull request Oct 24, 2025
…mulator (ethereum#1416)

* fix(exceptions): UndefinedException return on new

* feat(rpc,plugins/consume): Support exception mapper

* fix(exceptions): Allow undefined mapper

* feat(plugins/consume): Add more mappers

* fix(logging): don't use newlines within log messages

* refactor(exceptions,specs): ExceptionWithMessage contains a list

* new(exceptions): Add `INVALID_BLOCK_HASH` exception

* feat(clis): Add ethjs exceptions

* feat(clis): Add geth exceptions

* feat(plugins/consume): Add besu exceptions

* feat(plugins/consume): Add nethermind exceptions

* feat(plugins/consume): Add reth exceptions

* feat(consume): add `--strict-exception-matching` parameter

* more reth exceptions

* refactor mappers

* add ethjs exception

* fix(tests): EIP-7685: Add expected exception to `test_invalid_multi_type_requests_engine`

* add reth exception

* fix(plugins/consume): log failure

* feat(clis): Add Erigon Exception Mapper

* feat(specs): Allow setting expected block exception for state tests (only affects generated block tests)

* fix(tests): Add block exceltion to test_blob_type_tx_pre_fork

* fix(clis): Exceptions in mappers

* change(plugins/consume): Enable strict exception matching by default

* fix(specs): Exception message check on strict match

* docs: changelog

* chore(clis): update exception mappers for TYPE_4_TX_PRE_FORK

* refactor(consume): cache exception mappers in session-scoped fixture

* refactor(consume): make string match more robust by applying `lower()`

* feat(consume): allow disabling of strict exception checking per fork

* refactor(consume/hive): create `strict_exception_matching` fixture

* fix: whitelist

* changelog: Add exception

* changelog: Invalid versioned hashes exception

* refactor(consume/engine): Better error logging

* fix(clis/reth): Exception mapper

* fix(clis/besu): Exception mapper

* fix(clis/geth): Exception mapper

* fix(clis/ethereumjs): Exception mapper

* fix(clis/erigon): Exception mapper

---------

Co-authored-by: danceratopz <danceratopz@gmail.com>
atkinsonholly pushed a commit to atkinsonholly/ephemery-geth that referenced this pull request Nov 24, 2025
A PR in the specs repo broke our existing links:
ethereum/execution-specs#1416

This PR fixes it and adds the Prague and Osaka specs.
prestoalvarez pushed a commit to prestoalvarez/go-ethereum that referenced this pull request Nov 27, 2025
A PR in the specs repo broke our existing links:
ethereum/execution-specs#1416

This PR fixes it and adds the Prague and Osaka specs.
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.

4 participants