[electrum] initial monorepo integration
Summary:
This is a copy of the ElectrumABC repository as of commit https://github.com/Bitcoin-ABC/ElectrumABC/commit/9b72b3efe62a12f8f5abf883656af17992dd6c85
Two files related to CI and linting have been removed: .pre-commit-config.yaml and .cirrus.yml.
A new configuration file .isort.cfg has been added to mark the main packages as know first party packages to prevent isort from sorting them as third-party packages.
Permanent linter settings:
- The main modules are excluded from lint-python-shebang as a shebang does not make sense for non-scripts.
- Auto-generated files (protobuf and icons.py) are excluded from linters.
Temporary linter exclusions (to be fixed in separate diffs):
- flake8, because of remaining warnings from flake8 plugins (A001, A002, C401...)
- lint-python-encoding
- shellcheck
- flynt (low priority)
- mypy (low priority and difficult to fix)
Linter related changes:
- corrected spelling
- corrected and added bash shebangs
- added export LC_ALL=C.UTF-8 to shell
Other changes:
- adapted the build scripts to work when the directory mapped to ELECTRUM_ROOT inside the docker is not the root of a git repo
Test Plan:
arc lint --everything
Make sure Electrum ABC works: cd electrum && ./electrum-abc
Check the Help > Report Bug menu now points to the Bitcoin-ABC repo
Make sure the build toolchains work:
cd electrum contrib/build-wine/build.sh contrib/build-linux/appimage/build.sh contrib/build-linux/srcdist-docker/build.sh
Reviewers: #bitcoin_abc, Fabien
Reviewed By: #bitcoin_abc, Fabien
Subscribers: Fabien
Differential Revision: https://reviews.bitcoinabc.org/D14088