From 8fb25f71f30733b24304a09ae401800dfa82324d Mon Sep 17 00:00:00 2001 From: Calum Lind Date: Fri, 21 Jun 2019 10:56:10 +0100 Subject: [PATCH] [Install] Update and fix python optional requirements * Added required dependency setuptools to install_requires * Remove optional dependency ipaddress from install_requires * Created extras_require in setup.py. The optional dependencies should not be included in install_requires so that users can either install forked dependencies or remove problematic ones. Updated documentation to detail how to install these optional dependencies. * Fixed README badge Refs: * https://dev.deluge-torrent.org/ticket/3470 * https://dev.deluge-torrent.org/ticket/3282 * https://dev.deluge-torrent.org/ticket/3353 --- .github/workflows/ci.yml | 2 +- .github/workflows/docs.yml | 2 +- .github/workflows/lint.yml | 2 +- README.md | 21 ++++++++++++++------- docs/source/intro/01-install.md | 4 ++++ requirements.txt | 2 +- setup.py | 15 +++++++++------ 7 files changed, 31 insertions(+), 17 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d43dffa65..f4333a374 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,4 @@ -name: Deluge CI +name: CI on: push: diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index f2eaaaa1a..cafdfa53c 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -1,4 +1,4 @@ -name: Deluge Documentation +name: Docs # Controls when the action will run. on: diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index e0792ac10..3a347fd98 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,4 +1,4 @@ -name: Deluge Linting +name: Linting on: push: diff --git a/README.md b/README.md index 6165c65ea..f0a2139c3 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Deluge BitTorrent Client -[![build-status]][travis-deluge] [![docs-status]][rtd-deluge] +[![build-status]][github-ci] [![docs-status]][rtd-deluge] Deluge is a BitTorrent client that utilizes a daemon/client model. It has various user interfaces available such as the GTK-UI, Web-UI and @@ -13,10 +13,17 @@ From [PyPi](https://pypi.org/project/deluge): pip install deluge +with all optional dependencies: + + pip install deluge[all] + From source code: - python setup.py build - python setup.py install + pip install . + +with all optional dependencies: + + pip install .[all] See [DEPENDS](DEPENDS.md) and [Installing/Source] for dependency details. @@ -56,8 +63,8 @@ See the [Thinclient guide] to connect to the daemon from another computer. [user guide]: https://dev.deluge-torrent.org/wiki/UserGuide [thinclient guide]: https://dev.deluge-torrent.org/wiki/UserGuide/ThinClient [installing/source]: https://dev.deluge-torrent.org/wiki/Installing/Source -[build-status]: https://travis-ci.org/deluge-torrent/deluge.svg "Travis Status" -[travis-deluge]: https://travis-ci.org/deluge-torrent/deluge -[docs-status]: https://readthedocs.org/projects/deluge/badge/?version=develop -[rtd-deluge]: https://deluge.readthedocs.io/en/develop/?badge=develop "Documentation Status" +[build-status]: https://github.com/deluge-torrent/deluge/actions/workflows/ci.yml/badge.svg?branch=develop "CI" +[github-ci]: https://github.com/deluge-torrent/deluge/actions/workflows/ci.yml +[docs-status]: https://readthedocs.org/projects/deluge/badge/?version=latest +[rtd-deluge]: https://deluge.readthedocs.io/en/latest/?badge=latest "Documentation Status" [lt]: https://libtorrent.org diff --git a/docs/source/intro/01-install.md b/docs/source/intro/01-install.md index 9d7ab1a9a..dea4e9c59 100644 --- a/docs/source/intro/01-install.md +++ b/docs/source/intro/01-install.md @@ -22,6 +22,10 @@ Install with pip: pip install deluge +Install with all optional dependecies: + + pip install deluge[all] + ## Windows Unfortunately due to move to GTK3 and Python 3 there is no installer package currently diff --git a/requirements.txt b/requirements.txt index 89ca5b167..c9cfee9eb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,4 +10,4 @@ setproctitle pywin32; sys_platform == 'win32' certifi; sys_platform == 'win32' zope.interface>=4.4.2 -distro; 'win' not in sys_platform +distro; 'linux' in sys_platform or 'bsd' in sys_platform diff --git a/setup.py b/setup.py index 184a29a25..4727417b3 100755 --- a/setup.py +++ b/setup.py @@ -543,17 +543,20 @@ install_requires = [ 'rencode', 'pyopenssl', 'pyxdg', - 'pillow', 'mako', - 'chardet', 'six', - 'setproctitle', + 'setuptools', "pywin32; sys_platform == 'win32'", - "py2-ipaddress; sys_platform == 'win32' and python_version == '2'", "certifi; sys_platform == 'win32'", 'zope.interface', ] -tests_require = ['pytest', 'pytest-twisted'] +extras_require = { + 'all': [ + 'setproctitle', + 'pillow', + 'chardet', + ] +} # Main setup setup( @@ -597,7 +600,7 @@ setup( cmdclass=cmdclass, setup_requires=setup_requires, install_requires=install_requires, - tests_require=tests_require, + extras_require=extras_require, data_files=_data_files, package_data=_package_data, exclude_package_data=_exclude_package_data,