Skip to content

Drop Python 3.10 - #580

Draft
yorickdowne wants to merge 1 commit into
ethstaker:mainfrom
yorickdowne:drop-python-3.10
Draft

yorickdowne wants to merge 1 commit into
ethstaker:mainfrom
yorickdowne:drop-python-3.10

Conversation

@yorickdowne

@yorickdowne yorickdowne commented Jul 23, 2026

Copy link
Copy Markdown

What I did

Drop Python 3.10
Replace one instance of Union missed in previous type cleanup pass
Drop from __future__ import annotations, move Sequence, change asyncio.TimeoutError
Use Self return type
Bump Ubuntu ARM to 26.04
unit test for scripts/check_python_version.py no longer hard-codes a minimum Python version

Merge this before adding 3.15. That should allow dependabot to update rpds-py, which then means 3.15 can succeed without manual changes to dependencies

Good merge date: On or before 2026-10-04
Before merging, copy a fresh uv.lock from main and run uv lock to drop 3.10 references

@yorickdowne
yorickdowne marked this pull request as draft July 23, 2026 13:09
@yorickdowne yorickdowne added the run-tests Request tests to run on the CI label Jul 23, 2026
@yorickdowne yorickdowne mentioned this pull request Jul 23, 2026
@github-actions

Copy link
Copy Markdown

Test Coverage: Download HTML Report

Name                                                                 Stmts   Miss  Cover
----------------------------------------------------------------------------------------
ethstaker_deposit/__init__.py                                            3      0   100%
ethstaker_deposit/bls_to_execution_change_keystore.py                   32      2    94%
ethstaker_deposit/cli/__init__.py                                        0      0   100%
ethstaker_deposit/cli/existing_mnemonic.py                              45      0   100%
ethstaker_deposit/cli/exit_transaction_keystore.py                      47      5    89%
ethstaker_deposit/cli/exit_transaction_mnemonic.py                      71     11    85%
ethstaker_deposit/cli/generate_bls_to_execution_change.py               62     11    82%
ethstaker_deposit/cli/generate_bls_to_execution_change_keystore.py      45      3    93%
ethstaker_deposit/cli/generate_keys.py                                  66      2    97%
ethstaker_deposit/cli/generate_mnemonic.py                              43     16    63%
ethstaker_deposit/cli/new_mnemonic.py                                   33      0   100%
ethstaker_deposit/cli/partial_deposit.py                                70      5    93%
ethstaker_deposit/cli/test_keystore.py                                  23      1    96%
ethstaker_deposit/credentials.py                                       225     80    64%
ethstaker_deposit/deposit.py                                            59     10    83%
ethstaker_deposit/exceptions.py                                          6      0   100%
ethstaker_deposit/key_handling/__init__.py                               0      0   100%
ethstaker_deposit/key_handling/key_derivation/__init__.py                0      0   100%
ethstaker_deposit/key_handling/key_derivation/mnemonic.py               95      5    95%
ethstaker_deposit/key_handling/key_derivation/path.py                   17      1    94%
ethstaker_deposit/key_handling/key_derivation/tree.py                   36      0   100%
ethstaker_deposit/key_handling/keystore.py                             110      2    98%
ethstaker_deposit/schema/keystore.py                                     1      0   100%
ethstaker_deposit/settings.py                                           33      0   100%
ethstaker_deposit/utils/__init__.py                                      0      0   100%
ethstaker_deposit/utils/ascii_art.py                                     2      0   100%
ethstaker_deposit/utils/click.py                                        98      3    97%
ethstaker_deposit/utils/config.py                                        3      0   100%
ethstaker_deposit/utils/constants.py                                    29      0   100%
ethstaker_deposit/utils/crypto.py                                       29      1    97%
ethstaker_deposit/utils/deposit.py                                       8      0   100%
ethstaker_deposit/utils/exit_transaction.py                             23      0   100%
ethstaker_deposit/utils/file_handling.py                                11      0   100%
ethstaker_deposit/utils/intl.py                                         55      3    95%
ethstaker_deposit/utils/ssz.py                                          60      7    88%
ethstaker_deposit/utils/terminal.py                                     29     21    28%
ethstaker_deposit/utils/validation.py                                  280     58    79%
----------------------------------------------------------------------------------------
TOTAL                                                                 1749    247    86%

@yorickdowne

yorickdowne commented Aug 4, 2026

Copy link
Copy Markdown
Author

Documentation changes are in #587

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

Test Coverage: Download HTML Report

Name                                                                 Stmts   Miss  Cover
----------------------------------------------------------------------------------------
ethstaker_deposit/__init__.py                                            3      0   100%
ethstaker_deposit/bls_to_execution_change_keystore.py                   32      2    94%
ethstaker_deposit/cli/__init__.py                                        0      0   100%
ethstaker_deposit/cli/builder.py                                        61      1    98%
ethstaker_deposit/cli/existing_mnemonic.py                              46      0   100%
ethstaker_deposit/cli/exit_transaction_keystore.py                      45      3    93%
ethstaker_deposit/cli/exit_transaction_mnemonic.py                      69      9    87%
ethstaker_deposit/cli/generate_bls_to_execution_change.py               64     11    83%
ethstaker_deposit/cli/generate_bls_to_execution_change_keystore.py      46      3    93%
ethstaker_deposit/cli/generate_builder_keys.py                          45      2    96%
ethstaker_deposit/cli/generate_keys.py                                  64      3    95%
ethstaker_deposit/cli/generate_mnemonic.py                              48     21    56%
ethstaker_deposit/cli/new_mnemonic.py                                   33      0   100%
ethstaker_deposit/cli/partial_deposit.py                                71      5    93%
ethstaker_deposit/cli/test_keystore.py                                  23      1    96%
ethstaker_deposit/credentials.py                                       261     15    94%
ethstaker_deposit/deposit.py                                            58      5    91%
ethstaker_deposit/exceptions.py                                          6      0   100%
ethstaker_deposit/key_handling/__init__.py                               0      0   100%
ethstaker_deposit/key_handling/key_derivation/__init__.py                0      0   100%
ethstaker_deposit/key_handling/key_derivation/mnemonic.py               95      5    95%
ethstaker_deposit/key_handling/key_derivation/path.py                   17      1    94%
ethstaker_deposit/key_handling/key_derivation/tree.py                   36      0   100%
ethstaker_deposit/key_handling/keystore.py                             114      2    98%
ethstaker_deposit/schema/keystore.py                                     1      0   100%
ethstaker_deposit/settings.py                                           32      0   100%
ethstaker_deposit/utils/__init__.py                                      0      0   100%
ethstaker_deposit/utils/ascii_art.py                                     2      0   100%
ethstaker_deposit/utils/click.py                                       112      3    97%
ethstaker_deposit/utils/config.py                                        3      0   100%
ethstaker_deposit/utils/constants.py                                    32      0   100%
ethstaker_deposit/utils/crypto.py                                       29      1    97%
ethstaker_deposit/utils/exit_transaction.py                             23      0   100%
ethstaker_deposit/utils/export_data.py                                  12      0   100%
ethstaker_deposit/utils/file_handling.py                                11      0   100%
ethstaker_deposit/utils/intl.py                                         78      4    95%
ethstaker_deposit/utils/ssz.py                                          66      3    95%
ethstaker_deposit/utils/symlink.py                                      18      0   100%
ethstaker_deposit/utils/terminal.py                                     29     21    28%
ethstaker_deposit/utils/validation.py                                  381     41    89%
scripts/check_python_version.py                                         43     12    72%
scripts/check_translations.py                                          224     40    82%
----------------------------------------------------------------------------------------
TOTAL                                                                 2333    214    91%

@yorickdowne
yorickdowne force-pushed the drop-python-3.10 branch 4 times, most recently from 714987e to ed880bb Compare August 8, 2026 10:19
@yorickdowne
yorickdowne force-pushed the drop-python-3.10 branch 5 times, most recently from 2118783 to 05e538f Compare August 28, 2026 03:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

run-tests Request tests to run on the CI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant