Skip to content

Commit

Permalink
Update the Python 3.11 upgrade decision document.
Browse files Browse the repository at this point in the history
  • Loading branch information
rt121212121 committed Nov 8, 2022
1 parent 1105668 commit 23f4ac4
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 2 deletions.
2 changes: 1 addition & 1 deletion docs/decisions/0004-initial-key-allocation-policy.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ Initial key allocation policy
#############################

:Date: 2020-12-17
:Status: Obsolete in 1.4.0.
:Status: Needs revisiting.

Context
-------
Expand Down
30 changes: 29 additions & 1 deletion docs/decisions/0005-Python-3.11-upgrade.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,39 @@ technical debt which get harder as time passes.
Decision
--------

We will schedule an upgrade to Python 3.11 as soon as possible.
We will schedule an upgrade to Python 3.11 as soon as possible and require it as the minimum
version ElectrumSV runs against.

Consequences
------------

Minimising maintenance costs
============================

Not supporting older versions of Python means that we do not have to test against multiple
versions of Python, and only have to support the one. This reduces our maintenance costs. It also
reduces the work required to deal with breaking changes introduced by Python distribution
developers as we can just break our code to match their breaking changes and be done with it.

Affected users
==============

Our users primarily run our wallet software by downloading the built executables for their given
platform. These users will not notice any difference, as Python will be compiled into the
executable they download and builds will have been tested before release for regressions.

Linux users impose a cost we cannot pay. It is already problematic for some of the less technical
users to get ElectrumSV running, given the differences between Linux distributions and their
installation choices. A requirement of a minimum version of Python is just extra work they need
to do, out of lots of other work -- and `pyenv` can help them with that.

Moving forward we will likely offer Docker images that ElectrumSV can be run in headlessly. It is
expected these will make the problem for their users much the same as it is for the executable
build users, a technical detail they never see.

Risks
=====

Python developers are like Bitcoin Core developers and make breaking changes on a whim leaving
users to notice the bugs.

Expand Down

0 comments on commit 23f4ac4

Please sign in to comment.