# Execution Specifications: What is "Done"? These things need to be implemented before the core spec code can be frozen: - Issues in https://github.com/ethereum/execution-specs/milestone/14 - [x] London - [ ] The Merge - [x] Opcode Refac - [ ] Documentation Rendering - [ ] https://github.com/ethereum/execution-specs/issues/590 - [x] https://github.com/ethereum/execution-specs/issues/591 - [ ] https://github.com/ethereum/execution-specs/issues/519 - [ ] Pass **all** `ethereum/tests` test (that are correct/possible.) - [x] Contributing documentation (`CONTRIBUTING.rst`.) - [ ] Code Style documentation (`STYLE.rst` maybe?) - eg. only call `charge_gas` once per opcode These things *might* need to be implemented before EELS is "done": - [ ] Branching bot - some kind of tool to enforce the rules in [Executable EIPs](https://notes.ethereum.org/@timbeiko/executable-eips). - [ ] Being able to fill tests. - Test cases: https://github.com/ethereum/go-ethereum/tree/master/cmd/evm/testdata - [ ] Run the previous fork's tests for DAO and glacier forks. - [ ] Formalize cadence for code freezes: 1. Fork `F-1` happens. 2. EELS maintainers apply refactoring (30 days?) 3. Fork `F` opens for EIP authors (30 days?) 4. Fork `F` freezes for implementation. 5. Goto 1. - [ ] Documenting requirements for "EELS Proposals": - Needs a test that fails before your change that passes after. - Has to pass all the CI checks. - Needs to meet the relevant checks from `eipw` - [ ] Join in the fuzzing - https://github.com/holiman/goevmlab/tree/master/evms