What's Changed
* test: parametrize CI over EVM versions by charles-cooper in https://github.com/vyperlang/vyper/pull/3842
* chore[ci]: enable python3.12 tests by charles-cooper in https://github.com/vyperlang/vyper/pull/3860
* chore[ci]: refactor jobs to use gh actions by charles-cooper in https://github.com/vyperlang/vyper/pull/3863
* chore[ci]: use `--dist worksteal` from latest `xdist` by charles-cooper in https://github.com/vyperlang/vyper/pull/3869
* feat[ci]: enable cancun testing by charles-cooper in https://github.com/vyperlang/vyper/pull/3861
* fix[lang]: fix importing of flag types by cyberthirst in https://github.com/vyperlang/vyper/pull/3871
* fix[codegen]: overflow check in `slice()` by charles-cooper in https://github.com/vyperlang/vyper/pull/3818
* chore: improve syntax error messages by tserg in https://github.com/vyperlang/vyper/pull/3885
* chore[build]: remove docs rule in `setup.py` by charles-cooper in https://github.com/vyperlang/vyper/pull/3882
* feat[ci]: add PR title validation by charles-cooper in https://github.com/vyperlang/vyper/pull/3887
* feat[lang]!: change the signature of `block.prevrandao` by charles-cooper in https://github.com/vyperlang/vyper/pull/3879
* fix[codegen]: fix non-memory reason strings by tserg in https://github.com/vyperlang/vyper/pull/3877
* fix[lang]: transitive exports by charles-cooper in https://github.com/vyperlang/vyper/pull/3888
* fix[test]: fix failure in grammar fuzzing by charles-cooper in https://github.com/vyperlang/vyper/pull/3892
* feat[test]: add `xfail_strict`, clean up `setup.cfg` by charles-cooper in https://github.com/vyperlang/vyper/pull/3889
* fix[ux]: fix compiler hang for large exponentiations by charles-cooper in https://github.com/vyperlang/vyper/pull/3893
* fix[lang]: pure access analysis by charles-cooper in https://github.com/vyperlang/vyper/pull/3895
* fix[ci]: pin hexbytes to pre-1.0.0 by charles-cooper in https://github.com/vyperlang/vyper/pull/3903
* feat[ir]: add `make_ssa` pass to venom pipeline by harkal in https://github.com/vyperlang/vyper/pull/3825
* fix[tool]: fix `combined_json` output for CLI by charles-cooper in https://github.com/vyperlang/vyper/pull/3901
* refactor[venom]: use venom pass instances by harkal in https://github.com/vyperlang/vyper/pull/3908
* fix[lang]: allow type expressions inside pure functions by charles-cooper in https://github.com/vyperlang/vyper/pull/3906
* feat[test]: add more transient storage tests by tserg in https://github.com/vyperlang/vyper/pull/3883
* chore[test]: update hexbytes version and tests by DanielSchiavini in https://github.com/vyperlang/vyper/pull/3904
* fix[test]: fix a bad bound in decimal fuzzing by charles-cooper in https://github.com/vyperlang/vyper/pull/3909
* fix[codegen]: fix transient codegen for `slice` and `extract32` by cyberthirst in https://github.com/vyperlang/vyper/pull/3874
* feat[ci]: update pypi release pipeline to use OIDC by charles-cooper in https://github.com/vyperlang/vyper/pull/3912
New Contributors
* cyberthirst made their first contribution in https://github.com/vyperlang/vyper/pull/3871
**Full Changelog**: https://github.com/vyperlang/vyper/compare/v0.4.0b5...v0.4.0b6