Page MenuHomePhabricator

D14259.diff
No OneTemporary

D14259.diff

diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -203,23 +203,7 @@
Contributing to Electrum ABC
----------------------------
-To contribute to Electrum ABC, you will need `python` >= 3.7.
-
-Install the mandatory dependencies with:
-
-```
-pip3 install -r electrum/contrib/requirements/requirements.txt
-```
-
-Optionally, you can install the GUI dependencies with:
-```
-pip3 install -r electrum/contrib/requirements/requirements-binaries.txt
-```
-
-To work on hardware wallet plugins, also install these additional dependencies:
-```
-pip3 install -r electrum/contrib/requirements/requirements-hw.txt
-```
+See the dedicated [CONTRIBUTING.md](electrum/CONTRIBUTING.md) document.
Working with The Bitcoin ABC Repository
---------------------------------------
diff --git a/electrum/CONTRIBUTING.md b/electrum/CONTRIBUTING.md
new file mode 100644
--- /dev/null
+++ b/electrum/CONTRIBUTING.md
@@ -0,0 +1,174 @@
+# Contributing to Electrum ABC
+
+## Main repository
+
+The Electrum ABC source repository has been merged into the Bitcoin ABC repository,
+and the development is now taking place at [reviews.bitcoinabc.org](https://reviews.bitcoinabc.org/).
+
+Please read the main [CONTRIBUTING.md](https://github.com/Bitcoin-ABC/bitcoin-abc/blob/master/CONTRIBUTING.md)
+document to familiarize yourself with the development philosophy and find out how to
+set up the Bitcoin ABC repository.
+
+The original Electrum ABC github repository is maintained as a mirror of the `electrum/`
+directory in the main repository.
+
+The rest of this document provides instructions that are specific to Electrum ABC.
+
+## Contacting developers
+
+[Join the Electrum ABC telegram group](https://t.me/ElectrumABC) to get in contact
+with developers or to get help from the community.
+
+## Installing dependencies
+
+All commands in this document assume that your current working directory is the
+`electrum/` directory that resides at the root of the Bitcoin ABC repository.
+
+### Python
+
+Python 3.7 or above is required to run Electrum ABC.
+
+If your system lacks Python 3.7+, you can use `pyenv` to install newer versions, or
+install an [alternative python distribution](https://www.python.org/download/alternatives/)
+in addition to your system's version.
+
+### Python packages
+
+The simplest way to install all needed packages is to run the following command:
+```
+pip install .[all]
+```
+
+This will install Electrum ABC and all its dependencies as a python package and application.
+
+This is equivalent to:
+```
+pip install .
+pip install .[gui]
+pip install .[hardware]
+```
+
+If you do not want to install Electrum ABC as a package, you can install only the dependencies
+using the following commands:
+```
+pip3 install -r contrib/requirements/requirements.txt
+pip3 install -r contrib/requirements/requirements-binaries.txt
+pip3 install -r electrum/contrib/requirements/requirements-hw.txt
+```
+
+## Running Electrum ABC from source
+
+If you installed the application as a python package, you can run it from anywhere
+using `electrum-abc` (assuming that your system has the python script directory in
+its PATH).
+
+If you installed all dependencies, you can also start the application by invoking
+the `./electrum-abc` script. See the following sections for additional instructions
+and optional dependencies.
+
+### Running from source on old Linux
+
+If your Linux distribution has a version of python 3 lower than the minimum required
+version, it is recommended to do a user dir install with
+[pyenv](https://github.com/pyenv/pyenv-installer). This allows Electrum ABC
+to run completely independently of your system configuration.
+
+1. Install `pyenv` in your user
+ account. Follow the printed instructions about updating your environment
+ variables and `.bashrc`, and restart your shell to ensure that they are
+ loaded.
+2. Run `pyenv install 3.9.7`. This will download and compile that version of
+ python, storing it under `.pyenv` in your home directory.
+3. `cd` into the Electrum ABC directory. Run `pyenv local 3.9.7` which inserts
+ a file `.python-version` into the current directory.
+4. [Install Electrum ABC requirements](#python-packages)
+5. [Compile libsecp256k1](#compiling-libsecp256k1)
+
+### Running from source on macOS
+
+You need to install **either** [MacPorts](https://www.macports.org) **or**
+[HomeBrew](https://www.brew.sh). Follow the instructions on either site for
+installing (Xcode from [Apple's developer site](https://developer.apple.com)
+is required for either).
+
+1. After installing either HomeBrew or MacPorts, clone this repository and
+ switch to the directory:
+ `git clone https://github.com/Bitcoin-ABC/ElectrumABC && cd ElectrumABC`
+2. Install python 3.7+. For brew:
+ `brew install python3`
+ or if using MacPorts:
+ `sudo port install python37`
+3. Install PyQt5: `python3 -m pip install --user pyqt5`
+4. [Install Electrum ABC requirements](#python-packages)
+5. [Compile libsecp256k1](#compiling-libsecp256k1)
+
+## Running tests
+
+Running unit tests:
+```
+python3 test_runner.py
+```
+
+This can also be run as a `ninja` target in the context of a Bitcoin ABC build:
+```
+ninja check-electrum
+```
+
+Additional functional tests can be run with the following command:
+```
+pytest electrumabc/tests/regtest
+```
+
+This requires additional dependencies such as `pytest`, `docker` and `docker-compose`.
+<!-- TODO: ninja target, install instructions for additional dependencies -->
+
+## Compiling libsecp256k1
+
+Compiling libsecp256k1 is highly-recommended when running from source, to use fast
+cryptographic algorithms instead of using fallback pure-python algos.
+
+It is required when using CashFusion, as slow participants can cause a fusion round
+to fail.
+
+On Debian or Ubuntu linux:
+```
+sudo apt-get install libtool automake
+./contrib/make_secp
+```
+
+On MacOS:
+```
+brew install coreutils automake
+./contrib/make_secp
+```
+
+or if using MacPorts: `sudo port install coreutils automake`
+
+## Compiling the icons file for Qt
+
+If you change or add any icons to the `icons` subdirectory, you need to run the following
+script before you can use them in the application:
+```
+contrib/gen_icons.sh
+```
+
+This requires the `pyrcc5` command which can be installed using your package manager.
+For instance for Ubuntu or Debian, run:
+```
+sudo apt-get install pyqt5-dev-tools
+```
+
+## Creating translations
+<!-- FIXME: we are still relying on Electron Cash translations-->
+```
+sudo apt-get install python-requests gettext
+./contrib/make_locale
+```
+
+## Plugin development
+
+For plugin development, see the [plugin documentation](electrumabc_plugins/README.rst).
+
+## Creating Binaries
+
+See the *Building the release files* section in [contrib/release.md](contrib/release.md)
diff --git a/electrum/README.md b/electrum/README.md
--- a/electrum/README.md
+++ b/electrum/README.md
@@ -1,54 +1,34 @@
-#Electrum ABC - Lightweight eCash client
+# Electrum ABC - Lightweight eCash client
-##Getting started
+Electrum ABC is an open source, fast and secure eCash wallet for Windows, MacOS and Linux.
+It supports mnemonic seed phrases, hardware wallets, multisig wallets, and importing
+private keys or addresses.
-**Note: If running from source, Python 3.7 or above is required to run Electrum ABC.**
-If your system lacks Python 3.7, you have other options, such as the
-[AppImage / binary releases](https://github.com/Bitcoin-ABC/ElectrumABC/releases/)
-or running from source using `pyenv` (see section
-[Running from source on old Linux](#running-from-source-on-old-linux) below).
+It enables you to verify that your transactions are in the blockchain without downloading
+the entire blockchain or trusting a centralized server, by using the
+Simple Payment Verification described in the Bitcoin whitepaper.
-**macOS:** It is recommended that macOS users run
-[the binary .dmg](https://github.com/Bitcoin-ABC/ElectrumABC/releases)
-as that's simpler to use and has everything included. Otherwise, if you
-want to run from source, see section
-[Running from source on macOS](#running-from-source-on-macos) below.
+Anyone can run a backend server for Electrum ABC — no single entity controls the network.
-If you want to use the Qt interface, install the Qt dependencies:
-```
-sudo apt-get install python3-pyqt5 python3-pyqt5.qtsvg
-```
+## Getting started
-If you downloaded the official package (tar.gz), you can run
-Electrum ABC from its root directory, without installing it on your
-system; all the python dependencies are included in the 'packages'
-directory. To run Electrum ABC from its root directory, just do:
-```
-./electrum-abc
-```
-
-You can also install Electrum ABC on your system, by running this command:
-```
-pip3 install . --user
-```
+Electrum ABC can be run from source or from one of the binary releases
+that can be downloaded from [bitcoinabc.org/electrum](https://www.bitcoinabc.org/electrum).
+The binary releases are recommended for most users.
-This will download and install the Python dependencies used by
-Electrum ABC, instead of using the 'packages' directory.
+Running from source is useful for developers or if no binary release is provided for your OS.
-Compile the icons file for Qt (normally you can skip this step, run this command if icons are missing):
-```
-sudo apt-get install pyqt5-dev-tools
-pyrrc5 icons.qrc -o electrumabc_gui/qt/icons.py
-```
+Documentation about how to run the application from source is provided in the
+[CONTRIBUTING.md](CONTRIBUTING.md) file.
-If you cloned the git repository, you need to compile extra files
-before you can run Electrum ABC. Read the next section, "Development
-Version".
+A `.tar.gz` source package is provided for each release. This package contains all
+required dependencies and some optional compiled libraries (`libsecp256k1`, `libzbar`)
+to run the application from source on Linux.
-##Hardware Wallet
+## Hardware Wallets
Electrum ABC natively supports Ledger, Trezor and Satochip hardware wallets.
-You need additional dependencies. To install them, run this command:
+You need additional dependencies when running from source:
```
pip3 install -r contrib/requirements/requirements-hw.txt
```
@@ -56,102 +36,23 @@
If you still have problems connecting to your Nano S please have a look at this
[troubleshooting](https://support.ledger.com/hc/en-us/articles/115005165269-Fix-connection-issues) section on Ledger website.
+## Verifying Release Binaries
-##Development version
-
-Check your python version >= 3.7, and install pyqt5, as instructed above in the
-[Getting started](#getting-started) section above or [Running from source on old Linux](#running-from-source-on-old-linux) section below.
-
-If you are on macOS, see the [Running from source on macOS](#running-from-source-on-macos) section below.
-
-Check out the code from Github:
-```
-git clone https://github.com/Bitcoin-ABC/ElectrumABC
-cd ElectrumABC
-```
-
-Install the python dependencies:
-```
-pip3 install -r contrib/requirements/requirements.txt --user
-pip3 install -r contrib/requirements/requirements-binaries.txt --user
-```
-
-Create translations (optional):
-```
-sudo apt-get install python-requests gettext
-./contrib/make_locale
-```
-
-Compile libsecp256k1 (optional, yet highly recommended):
-```
-sudo apt-get install libtool automake
-./contrib/make_secp
-```
+See [contrib/pubkeys/README.md](contrib/pubkeys/README.md)
-For plugin development, see the [plugin documentation](electrumabc_plugins/README.rst).
+## Release notes
-Running unit tests (optional):
-```
-python3 test_runner.py
-```
+Find out about new features and bugfixes in the [release notes](RELEASE-NOTES.md).
-##Running from source on old Linux
-
-If your Linux distribution has a different version of python 3 (such as python
-3.5 in Debian 9), it is recommended to do a user dir install with
-[pyenv](https://github.com/pyenv/pyenv-installer). This allows Electrum ABC
-to run completely independently of your system configuration.
-
-1. Install `pyenv` in your user
- account. Follow the printed instructions about updating your environment
- variables and `.bashrc`, and restart your shell to ensure that they are
- loaded.
-2. Run `pyenv install 3.9.7`. This will download and compile that version of
- python, storing it under `.pyenv` in your home directory.
-3. `cd` into the Electrum ABC directory. Run `pyenv local 3.9.7` which inserts
- a file `.python-version` into the current directory.
-4. While still in this directory, run `pip install pyqt5`.
-5. If you are installing from the source file (.tar.gz or .zip) then you are
- ready and you may run `./electrum-abc`. If you are using the git version,
- then continue by following the Development version instructions above.
-
-##Running from source on macOS
-
-You need to install **either** [MacPorts](https://www.macports.org) **or**
-[HomeBrew](https://www.brew.sh). Follow the instructions on either site for
-installing (Xcode from [Apple's developer site](https://developer.apple.com)
-is required for either).
-
-1. After installing either HomeBrew or MacPorts, clone this repository and
- switch to the directory:
- `git clone https://github.com/Bitcoin-ABC/ElectrumABC && cd ElectrumABC`
-2. Install python 3.7+. For brew:
- `brew install python3`
- or if using MacPorts:
- `sudo port install python37`
-3. Install PyQt5: `python3 -m pip install --user pyqt5`
-4. Install Electrum ABC requirements:
- `python3 -m pip install --user -r contrib/requirements/requirements.txt`
-5. Compile libsecp256k1 (optional, yet highly recommended):
- `./contrib/make_secp`.
- This requires GNU tools and automake, install with brew:
- `brew install coreutils automake`
- or if using MacPorts: `sudo port install coreutils automake`
-6. At this point you should be able to just run the sources: `./electrum-abc`
-
-
-##Creating Binaries
-
-See the *Building the release files* section in [contrib/release.md](contrib/release.md)
-
-##Verifying Release Binaries
+## Contributing or contacting developers
-See [contrib/pubkeys/README.md](contrib/pubkeys/README.md)
+See the dedicated [CONTRIBUTING.md](CONTRIBUTING.md) document for instructions
+about how to contribute to the project and how to contact developers for support.
-##Contacting developers
+## Credits
-[Join the Electrum ABC telegram group](https://t.me/ElectrumABC) to get in contact
-with developers or to get help from the community.
+Electrum ABC is a fork of the open source BCH *Electron Cash* wallet, which is itself a
+fork of the BTC *Electrum* wallet.
-To contribute to the project, read the main [CONTRIBUTING.md](/CONTRIBUTING.md)
-document at the root of the Bitcoin ABC repository.
+The Electrum ABC software is NOT affiliated, associated, or endorsed by
+Electron Cash, electroncash.org, Electrum or electrum.org.
diff --git a/electrum/RELEASE-NOTES.md b/electrum/RELEASE-NOTES.md
--- a/electrum/RELEASE-NOTES.md
+++ b/electrum/RELEASE-NOTES.md
@@ -1,9 +1,3 @@
-Electrum ABC is a fork of the open source Electron Cash wallet for eCash.
-
-The Electrum ABC software is NOT affiliated, associated, or endorsed by
-Electron Cash, electroncash.org, Electrum or electrum.org.
-
-
# Release notes
## Release 5.2.5

File Metadata

Mime Type
text/plain
Expires
Tue, May 20, 19:23 (3 h, 40 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5865779
Default Alt Text
D14259.diff (15 KB)

Event Timeline