1
0
Commit Graph

53 Commits

Author SHA1 Message Date
SomberNight
4f9469b789 re-generate protobuf _pb2.py files and bump min required protobuf
upper bound "<4" still needed due to keepkey...

related https://github.com/spesmilo/electrum/issues/7922
2023-01-28 00:39:36 +00:00
SomberNight
52b73880f9 requirements: pin protobuf "<4"
protobuf 4.x introduced breaking changes compared to 3.20.
To adapt, we would have to regenerate paymentrequest_pb2.py, using protoc>=3.19.0, however ubuntu does not have new enough protoc.
Also, unsure if newly generated paymentrequest_pb2.py would be supported by older versions of protobuf.
Best to just wait for things to settle.

```
electrum/__init__.py:20: in <module>
    from .wallet import Wallet
electrum/wallet.py:70: in <module>
    from . import transaction, bitcoin, coinchooser, paymentrequest, ecc, bip32
electrum/paymentrequest.py:37: in <module>
    from . import paymentrequest_pb2 as pb2
electrum/paymentrequest_pb2.py:36: in <module>
    _descriptor.FieldDescriptor(
.tox/py3/lib/python3.9/site-packages/google/protobuf/descriptor.py:560: in __new__
    _message.Message._CheckCalledFromGeneratedFile()
E   TypeError: Descriptors cannot not be created directly.
E   If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
E   If you cannot immediately regenerate your protos, some other possible workarounds are:
E    1. Downgrade the protobuf package to 3.20.x or lower.
E    2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).
E
E   More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
```

ceaae1b6a3/CHANGES.txt (L47)
2022-05-27 18:38:26 +02:00
SomberNight
c9c094cfab requirements: bump min aiorpcx to 0.22.0
aiorpcx 0.20 changed the behaviour/API of TaskGroups.
When used as a context manager, TaskGroups no longer propagate
exceptions raised by their tasks. Instead, the calling code has
to explicitly check the results of tasks and decide whether to re-raise
any exceptions.
This is a significant change, and so this commit introduces "OldTaskGroup",
which should behave as the TaskGroup class of old aiorpcx. All existing
usages of TaskGroup are replaced with OldTaskGroup.

closes https://github.com/spesmilo/electrum/issues/7446
2022-02-15 18:22:44 +01:00
SomberNight
1ad30e86b6 build: relax qdarkstyle version bound
Historically, there have often been (visual) issues with new versions of qdarkstyle.
The upper bound restriction was mainly there for this reason: to ~force manually testing new versions.
There is no known issue with newer versions atm.

Remove the upper bound, as there have not been issues with newer versions recently,
and this makes it clear to e.g. packagers that it's fine to use newer versions.

Add a lower bound for a version that has been tested in the past and is known to work ok.

related https://github.com/spesmilo/electrum/issues/7361
2022-01-20 15:09:12 +01:00
SomberNight
d9b55ae5c8 build: relax dnspython version bound
The <2.1 pin had been put there as dnspython 2.1 added "poetry" as a build time dep,
which pulled in a significant number of transitive dependencies, and it was also
causing issues with our appimage build.

dnspython 2.2.0 was released since, which no longer needs full poetry, only "poetry-core":
da279dec7e

related https://github.com/spesmilo/electrum/issues/7361
2022-01-20 15:09:08 +01:00
upgradvisor-bot
a044d7df01 Update qdarkstyle to <3.1 (allow 3.0.x) (#7561)
Co-authored-by: the-new-kai-lu <freddylukai@gmail.com>
2021-12-17 11:50:48 +00:00
SomberNight
d86c45edac dependencies: bump min aiorpcx, and enforce at runtime
Note that newer aiorpcx started requiring python 3.8, so we cannot use
the latest versions, until we too bump the min python version to 3.8.
We should not do that until debian stable ships python 3.8.
Also, new aiorpcx introduced some API changes which we will need to
adopt, so even if the user locally has recent enough python, we need
old aiorpcx atm.

related: https://github.com/spesmilo/electrum/issues/7118
2021-03-20 17:17:32 +01:00
SomberNight
9d1f1e9732 requirements: don't use dnspython 2.1 as it installs poetry at build-time
and poetry has a gazillion dependencies...

Collecting dnspython==2.1.0
  Downloading dnspython-2.1.0.zip (389 kB)
     |████████████████████████████████| 389 kB 2.1 MB/s
  Installing build dependencies ... |
error
  ERROR: Command errored out with exit status 1:
   command: /opt/electrum/contrib/build-linux/appimage/../../../contrib/build-linux/appimage/build/appimage/electrum.AppDir/usr/bin/python3.7 /opt/electrum/contrib/build-linux/appimage/build/appimage/electrum.AppDir/usr/lib/python3.7/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-5z1gx14i/overlay --no-warn-script-location --no-binary :all: --only-binary :none: -i https://pypi.org/simple -- 'poetry>=0.12'
       cwd: None
  Complete output (195 lines):
  Collecting poetry>=0.12
    Downloading poetry-1.1.4.tar.gz (132 kB)
    Installing build dependencies: started
    Installing build dependencies: finished with status 'done'
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
      Preparing wheel metadata: started
      Preparing wheel metadata: finished with status 'done'
  Collecting pkginfo<2.0,>=1.4
    Downloading pkginfo-1.6.1.tar.gz (37 kB)
  Collecting tomlkit<1.0.0,>=0.7.0
    Downloading tomlkit-0.7.0.tar.gz (163 kB)
    Installing build dependencies: started
    Installing build dependencies: finished with status 'done'
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
      Preparing wheel metadata: started
      Preparing wheel metadata: finished with status 'done'
  Collecting keyring<22.0.0,>=21.2.0; python_version >= "3.6" and python_version < "4.0"
    Downloading keyring-21.8.0.tar.gz (58 kB)
    Installing build dependencies: started
    Installing build dependencies: finished with status 'done'
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
      Preparing wheel metadata: started
      Preparing wheel metadata: finished with status 'done'
  Collecting cleo<0.9.0,>=0.8.1
    Downloading cleo-0.8.1.tar.gz (19 kB)
    Installing build dependencies: started
    Installing build dependencies: finished with status 'done'
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
      Preparing wheel metadata: started
      Preparing wheel metadata: finished with status 'done'
  Collecting pexpect<5.0.0,>=4.7.0
    Downloading pexpect-4.8.0.tar.gz (157 kB)
  Collecting poetry-core<2.0.0,>=1.0.0
    Using cached poetry-core-1.0.0.tar.gz (333 kB)
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
      Preparing wheel metadata: started
      Preparing wheel metadata: finished with status 'done'
  Collecting importlib-metadata<2.0.0,>=1.6.0; python_version < "3.8"
    Using cached importlib_metadata-1.7.0.tar.gz (29 kB)
    Installing build dependencies: started
    Installing build dependencies: finished with status 'done'
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
      Preparing wheel metadata: started
      Preparing wheel metadata: finished with status 'done'
  Collecting crashtest<0.4.0,>=0.3.0; python_version >= "3.6" and python_version < "4.0"
    Downloading crashtest-0.3.1.tar.gz (4.3 kB)
    Installing build dependencies: started
    Installing build dependencies: finished with status 'done'
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
      Preparing wheel metadata: started
      Preparing wheel metadata: finished with status 'done'
  Collecting shellingham<2.0,>=1.1
    Downloading shellingham-1.3.2.tar.gz (9.7 kB)
    Installing build dependencies: started
    Installing build dependencies: finished with status 'done'
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
      Preparing wheel metadata: started
      Preparing wheel metadata: finished with status 'done'
  Collecting virtualenv<21.0.0,>=20.0.26
    Downloading virtualenv-20.2.2.tar.gz (9.1 MB)
    Installing build dependencies: started
    Installing build dependencies: finished with status 'done'
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
      Preparing wheel metadata: started
      Preparing wheel metadata: finished with status 'done'
  Collecting requests-toolbelt<0.10.0,>=0.9.1
    Downloading requests-toolbelt-0.9.1.tar.gz (207 kB)
  Collecting html5lib<2.0,>=1.0
    Downloading html5lib-1.1.tar.gz (272 kB)
  Collecting cachecontrol[filecache]<0.13.0,>=0.12.4
    Downloading CacheControl-0.12.6.tar.gz (14 kB)
  Collecting clikit<0.7.0,>=0.6.2
    Downloading clikit-0.6.2.tar.gz (56 kB)
    Installing build dependencies: started
    Installing build dependencies: finished with status 'done'
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
      Preparing wheel metadata: started
      Preparing wheel metadata: finished with status 'done'
  Collecting requests<3.0,>=2.18
    Downloading requests-2.25.1.tar.gz (102 kB)
  Collecting cachy<0.4.0,>=0.3.0
    Downloading cachy-0.3.0.tar.gz (15 kB)
    Installing build dependencies: started
    Installing build dependencies: finished with status 'done'
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
      Preparing wheel metadata: started
      Preparing wheel metadata: finished with status 'done'
  Collecting packaging<21.0,>=20.4
    Downloading packaging-20.8.tar.gz (79 kB)
    Installing build dependencies: started
    Installing build dependencies: finished with status 'done'
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
      Preparing wheel metadata: started
      Preparing wheel metadata: finished with status 'done'
  Collecting jeepney>=0.4.2; sys_platform == "linux"
    Downloading jeepney-0.6.0.tar.gz (49 kB)
    Installing build dependencies: started
    Installing build dependencies: finished with status 'done'
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
      Preparing wheel metadata: started
      Preparing wheel metadata: finished with status 'done'
  Collecting SecretStorage>=3.2; sys_platform == "linux"
    Downloading SecretStorage-3.3.0.tar.gz (19 kB)
    Installing build dependencies: started
    Installing build dependencies: finished with status 'done'
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
      Preparing wheel metadata: started
      Preparing wheel metadata: finished with status 'done'
  Collecting ptyprocess>=0.5
    Downloading ptyprocess-0.7.0.tar.gz (70 kB)
    Installing build dependencies: started
    Installing build dependencies: finished with status 'done'
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
      Preparing wheel metadata: started
      Preparing wheel metadata: finished with status 'done'
  Collecting zipp>=0.5
    Using cached zipp-3.4.0.tar.gz (15 kB)
    Installing build dependencies: started
    Installing build dependencies: finished with status 'done'
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
      Preparing wheel metadata: started
      Preparing wheel metadata: finished with status 'done'
  Collecting appdirs<2,>=1.4.3
    Downloading appdirs-1.4.4.tar.gz (13 kB)
  Collecting distlib<1,>=0.3.1
    Downloading distlib-0.3.1.zip (578 kB)
  Collecting six<2,>=1.9.0
    Downloading six-1.15.0.tar.gz (33 kB)
  Collecting filelock<4,>=3.0.0
    Downloading filelock-3.0.12.tar.gz (8.5 kB)
  Collecting webencodings
    Downloading webencodings-0.5.1.tar.gz (9.7 kB)
  Collecting msgpack>=0.5.2
    Downloading msgpack-1.0.2.tar.gz (123 kB)
  Collecting lockfile>=0.9
    Downloading lockfile-0.12.2.tar.gz (20 kB)
      ERROR: Command errored out with exit status 1:
2021-01-07 21:41:58 +01:00
SomberNight
5a2d588e8b dependencies: rm python-ecdsa 2020-12-08 16:38:13 +01:00
SomberNight
14372e0a94 dependencies: support and require dnspython 2.0, rm monkey patches
- dnspython 2.0 requires cryptography 2.6 so we now always require that
  (no longer a choice between cryptography and pycryptodomex)
- test_dnssec.py is deleted as it was testing the monkey-patch

related: #6538
2020-12-08 16:35:29 +01:00
SomberNight
7e534f4865 dependencies: rm pyaes from requirements
Since #6014, pyaes is not really needed anymore.

As we currently require either one of pycryptodomex or cryptography,
even if pyaes is available, it will not be used.
We could strip it out completely from crypto.py...

In any case, pyaes is still pulled in by some hw wallet dependencies indirectly;
but the core library no longer depends on it.
2020-09-08 16:44:20 +02:00
SomberNight
6d2aee18d0 dnssec: fix compat with dnspython 1.16 2020-07-02 11:12:38 +02:00
SomberNight
a95738f925 requirements: specify min 'attrs' version
related: #6258
2020-06-23 22:49:08 +02:00
ThomasV
30f5be26ac Remove dependencies: jsonrpcserver, jsonrpcclient 2020-06-09 11:26:39 +02:00
SomberNight
b3abea7d19 requirements: bump min protobuf (follow-up prev) 2020-06-04 20:41:44 +02:00
SomberNight
d1f860ccf3 dependencies: update max qdarkstyle
Previously we stuck with version 2.6.8 as that had no deps but later
versions introduced several deps. However, now latest version only
has two dependencies (one of which has the same maintainer).
Futher, there are some bugs with 2.6.8 when used with new Qt,
e.g. with dropdowns that I want fixed (which it is in the newer ones).

related https://github.com/ColinDuquesnoy/QDarkStyleSheet/issues/182
2020-06-03 18:05:33 +02:00
ThomasV
da8b24d61a require aiohttp_socks>=0.3 2020-04-14 09:48:18 +02:00
SomberNight
adc97af58c clear up requirements re pycryptodomex 2020-03-04 20:33:02 +01:00
ThomasV
757467782a Use attr.s instead of namedtuples for channel config 2020-01-31 12:19:26 +01:00
Dennis Ruhe
252f0960fc Aiohttp must be lower than 4.0.0 2019-12-10 22:03:17 +01:00
SomberNight
5b88b8667e also grind ecdsa low R when using libsecp256k1, and fix tests
note: low R grinding would not have to be duplicated if we trusted the caller
to have done it already (as is the case with the classes in ecc.py), and if
we propagated the choice of "random_k" as part of the nonce_function passed
to libsecp256k1 (which is not currently done)
2019-12-05 20:27:55 +01:00
ThomasV
dfdc1e1d25 require ecdsa version >= 0.13.3 2019-11-29 18:38:53 +01:00
ThomasV
2e1829bc24 remove jsonrpclib dependency 2019-08-20 09:03:12 +02:00
ThomasV
8e2ebddc0b add jsonrpcserver/jsonrpcclient to requirements 2019-08-20 09:03:12 +02:00
ThomasV
238f3c949c get rid of sql_alchemy 2019-08-20 09:03:12 +02:00
ThomasV
cab0f7d9e0 add sqlalchemy to requirements 2019-08-20 09:03:11 +02:00
ThomasV
d493dd1953 add pycryptodomex to requirements 2019-08-20 09:03:11 +02:00
SomberNight
9256472485 rm 'cryptography' as dependency; use new pycryptodomex version
pycryptodomex 3.7 implemented chacha20_poly1305 and chacha20,
and it is already used (although optionally) to speed up AES,
so we can remove cryptography and make pycryptodomex mandatory for LN
2019-08-20 09:03:11 +02:00
Janus
6bec42d18a requirements: require bitstring for lnaddr, cryptography for lnbase 2019-08-20 09:03:10 +02:00
SomberNight
046518d7f7 requirements: restrict qdarkstyle to <2.7
qdarkstyle 2.7 pulls in new dependencies
see ColinDuquesnoy/QDarkStyleSheet#182
2019-06-04 20:35:46 +02:00
SomberNight
41f160dd74 update to aiorpcx 0.18 2019-05-27 19:35:30 +02:00
SomberNight
a0b711cfea requirements: bump python-ecdsa minimum
0.9 was not actually enough...
2019-05-06 19:12:40 +02:00
SomberNight
33f5b6a288 requirements: relax qdarkstyle version
upstream issue ColinDuquesnoy/QDarkStyleSheet#123 now fixed
2019-04-30 21:35:32 +02:00
SomberNight
51e0672da6 update to aiorpcx 0.17 2019-04-30 21:24:39 +02:00
SomberNight
fc72e661de requirements: set min version for aiohttp 2019-02-08 02:24:44 +01:00
ThomasV
95cb2fbebf remove requests from requirements 2018-12-14 07:19:26 +01:00
SomberNight
78f5afff74 use certifi directly instead of requests 2018-12-13 23:11:59 +01:00
SomberNight
d69ef890c0 downgrade qdarkstyle for now
see ColinDuquesnoy/QDarkStyleSheet#123
2018-12-03 16:04:17 +01:00
SomberNight
0dd3a58a63 requirements: also accept aiorpcx 0.10.x 2018-11-22 19:37:56 +01:00
SomberNight
bcdb0c46fc update to aiorpcx 0.9 and require it 2018-10-26 17:06:42 +02:00
SomberNight
deda6535e0 bump min aiorpcx to 0.8.2 2018-09-25 19:22:37 +02:00
SomberNight
a9fcf2fabf bump min aiorpcx to 0.8.1 2018-09-13 01:21:53 +02:00
SomberNight
6f7a065081 bump aiorpcx version 2018-09-12 18:43:07 +02:00
SomberNight
6b9a83ae80 don't test with python 3.5
also, typing is no longer needed (part of stdlib from 3.5)
2018-09-11 21:10:47 +02:00
SomberNight
bed35a65c7 bump min python to 3.6 2018-09-11 21:04:36 +02:00
ThomasV
061231494d revert rm requests 2018-09-10 13:26:50 +02:00
ThomasV
e8f87d2e62 remove requests and pysocks from requirements 2018-09-10 13:06:48 +02:00
Janus
6e80ba7b4f asyncio: labels, crash_reporter, fx: migrate requests use to aiohttp 2018-09-06 16:18:45 +02:00
Janus
b120584f97 aiorpcx address synchronizer 2018-09-06 14:11:36 +02:00
SomberNight
281805a0a4 linux sdist: 'typing' was not included, which is needed on py3.4
not making typing conditioned on py version as then freeze_packages would not pick it up.
2018-07-20 16:38:18 +02:00