mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-26 16:11:08 +00:00
224 lines
7.7 KiB
INI
224 lines
7.7 KiB
INI
# https://setuptools.pypa.io/en/latest/userguide/declarative_config.html#declarative-config
|
|
[metadata]
|
|
name = tahoe-lafs
|
|
|
|
[options]
|
|
description = secure, decentralized, fault-tolerant file store
|
|
long_description = file: README.rst
|
|
author = the Tahoe-LAFS project
|
|
author_email = tahoe-dev@lists.tahoe-lafs.org
|
|
project_urls =
|
|
website=https://tahoe-lafs.org/
|
|
documentation=https://tahoe-lafs.readthedocs.org/
|
|
source=https://github.com/tahoe-lafs/tahoe-lafs
|
|
classifiers = file: CLASSIFIERS.txt
|
|
license_files = COPYING.GPL, COPYING.TGPPL.rst
|
|
# tell setuptools to find our package source files automatically
|
|
packages = find:
|
|
# find packages beneath the src directory
|
|
package_dir=
|
|
=src
|
|
include_package_data = True
|
|
|
|
# We support Python 3.7 or later. 3.11 is not supported yet.
|
|
python_requires = >=3.7, <3.11
|
|
|
|
install_requires =
|
|
# we don't need much out of setuptools but the version checking stuff
|
|
# needs pkg_resources and PEP 440 version specifiers.
|
|
setuptools >= 28.8.0
|
|
|
|
zfec >= 1.1.0
|
|
|
|
# zope.interface >= 3.6.0 is required for Twisted >= 12.1.0.
|
|
zope.interface >= 3.6.0
|
|
|
|
# * foolscap < 0.5.1 had a performance bug which spent O(N**2) CPU for
|
|
# transferring large mutable files of size N.
|
|
# * foolscap < 0.6 is incompatible with Twisted 10.2.0.
|
|
# * foolscap 0.6.1 quiets a DeprecationWarning.
|
|
# * foolscap < 0.6.3 is incompatible with Twisted 11.1.0 and newer.
|
|
# * foolscap 0.8.0 generates 2048-bit RSA-with-SHA-256 signatures,
|
|
# rather than 1024-bit RSA-with-MD5. This also allows us to work
|
|
# with a FIPS build of OpenSSL.
|
|
# * foolscap >= 0.12.3 provides tcp/tor/i2p connection handlers we need,
|
|
# and allocate_tcp_port
|
|
# * foolscap >= 0.12.5 has ConnectionInfo and ReconnectionInfo
|
|
# * foolscap >= 0.12.6 has an i2p.sam_endpoint() that takes kwargs
|
|
# * foolscap 0.13.2 drops i2p support completely
|
|
# * foolscap >= 21.7 is necessary for Python 3 with i2p support.
|
|
foolscap >= 21.7.0
|
|
|
|
# * cryptography 2.6 introduced some ed25519 APIs we rely on. Note that
|
|
# Twisted[conch] also depends on cryptography and Twisted[tls]
|
|
# transitively depends on cryptography. So it's anyone's guess what
|
|
# version of cryptography will *really* be installed.
|
|
cryptography >= 2.6
|
|
|
|
# * The SFTP frontend depends on Twisted 11.0.0 to fix the SSH server
|
|
# rekeying bug <https://twistedmatrix.com/trac/ticket/4395>
|
|
# * The SFTP frontend and manhole depend on the conch extra. However, we
|
|
# can't explicitly declare that without an undesirable dependency on gmpy,
|
|
# as explained in ticket #2740.
|
|
# * Due to a setuptools bug, we need to declare a dependency on the tls
|
|
# extra even though we only depend on it via foolscap.
|
|
# * Twisted >= 15.1.0 is the first version that provided the [tls] extra.
|
|
# * Twisted-16.1.0 fixes https://twistedmatrix.com/trac/ticket/8223,
|
|
# which otherwise causes test_system to fail (DirtyReactorError, due to
|
|
# leftover timers)
|
|
# * Twisted-16.4.0 introduces `python -m twisted.trial` which is needed
|
|
# for coverage testing
|
|
# * Twisted 16.6.0 drops the undesirable gmpy dependency from the conch
|
|
# extra, letting us use that extra instead of trying to duplicate its
|
|
# dependencies here. Twisted[conch] >18.7 introduces a dependency on
|
|
# bcrypt. It is nice to avoid that if the user ends up with an older
|
|
# version of Twisted. That's hard to express except by using the extra.
|
|
#
|
|
# * Twisted 18.4.0 adds `client` and `host` attributes to `Request` in the
|
|
# * initializer, needed by logic in our custom `Request` subclass.
|
|
#
|
|
# In a perfect world, Twisted[conch] would be a dependency of an sftp
|
|
# extra. However, pip fails to resolve the dependencies all
|
|
# dependencies when asked for Twisted[tls] *and* Twisted[conch].
|
|
# Specifically, Twisted[conch] (as the later requirement) is ignored.
|
|
# If there were an Tahoe-LAFS sftp extra that dependended on
|
|
# Twisted[conch] and install_requires only included Twisted[tls] then
|
|
# `pip install tahoe-lafs[sftp]` would not install requirements
|
|
# specified by Twisted[conch]. Since this would be the *whole point* of
|
|
# an sftp extra in Tahoe-LAFS, there is no point in having one.
|
|
# * Twisted 19.10 introduces Site.getContentFile which we use to get
|
|
# temporary upload files placed into a per-node temporary directory.
|
|
Twisted[tls,conch] >= 19.10.0
|
|
|
|
PyYAML >= 3.11
|
|
|
|
six >= 1.10.0
|
|
|
|
# for 'tahoe invite' and 'tahoe join'
|
|
magic-wormhole >= 0.10.2
|
|
|
|
# A new enough version to support custom JSON encoders.
|
|
eliot >= 1.13.0
|
|
|
|
# Pyrsistent 0.17.0 (which we use by way of Eliot) has dropped
|
|
# Python 2 entirely; stick to the version known to work for us.
|
|
pyrsistent
|
|
|
|
# A great way to define types of values.
|
|
attrs >= 18.2.0
|
|
|
|
# WebSocket library for twisted and asyncio
|
|
autobahn >= 19.5.2
|
|
|
|
# Support for Python 3 transition
|
|
future >= 0.18.2
|
|
|
|
# Discover local network configuration
|
|
netifaces
|
|
|
|
# Utility code:
|
|
pyutil >= 3.3.0
|
|
|
|
# Linux distribution detection:
|
|
distro >= 1.4.0
|
|
|
|
# For the RangeMap datastructure. Need 2.0.2 at least for bugfixes.
|
|
collections-extended >= 2.0.2
|
|
|
|
# Duplicate the Twisted pywin32 dependency here. See
|
|
# https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2392 for some
|
|
# discussion.
|
|
pywin32 != 226 ; sys_platform=="win32"
|
|
|
|
# HTTP server and client
|
|
klein
|
|
|
|
# 2.2.0 has a bug: https://github.com/pallets/werkzeug/issues/2465
|
|
werkzeug != 2.2.0
|
|
treq
|
|
cbor2
|
|
pycddl >= 0.2
|
|
|
|
# for pid-file support
|
|
psutil
|
|
filelock
|
|
|
|
[options.packages.find]
|
|
# inform the setuptools source discovery logic to start in this directory
|
|
where = src
|
|
|
|
[options.package_data]
|
|
allmydata.web =
|
|
*.xhtml
|
|
static/*.js
|
|
static/*.png
|
|
static/*.css
|
|
static/img/*.png
|
|
static/css/*.css
|
|
|
|
[options.extras_require]
|
|
build =
|
|
dulwich
|
|
gpg
|
|
|
|
test =
|
|
flake8
|
|
# On Python 3.7, importlib_metadata v5 breaks flake8.
|
|
# https://github.com/python/importlib_metadata/issues/407
|
|
importlib_metadata < 5; python_version < "3.8"
|
|
|
|
# Pin a specific pyflakes so we don't have different folks
|
|
# disagreeing on what is or is not a lint issue. We can bump
|
|
# this version from time to time, but we will do it
|
|
# intentionally.
|
|
pyflakes == 2.2.0
|
|
coverage ~= 5.0
|
|
mock
|
|
tox
|
|
pytest
|
|
pytest-twisted
|
|
hypothesis >= 3.6.1
|
|
towncrier
|
|
testtools
|
|
fixtures
|
|
beautifulsoup4
|
|
html5lib
|
|
junitxml
|
|
tenacity
|
|
# Pin old version until
|
|
# https://github.com/paramiko/paramiko/issues/1961 is fixed.
|
|
paramiko < 2.9
|
|
pytest-timeout
|
|
# Does our OpenMetrics endpoint adhere to the spec:
|
|
prometheus-client == 0.11.0
|
|
|
|
# Make sure the tor and i2p tests can run by duplicating the requirements
|
|
# for those extras here.
|
|
%(tor)s
|
|
%(i2p)s
|
|
|
|
tor =
|
|
# This is exactly what `foolscap[tor]` means but pip resolves the pair of
|
|
# dependencies "foolscap[i2p] foolscap[tor]" to "foolscap[i2p]" so we lose
|
|
# this if we don't declare it ourselves!
|
|
txtorcon >= 0.17.0
|
|
|
|
i2p =
|
|
# txi2p has Python 3 support in master branch, but it has not been
|
|
# released -- see https://github.com/str4d/txi2p/issues/10. We
|
|
# could use a fork for Python 3 until txi2p's maintainers are back
|
|
# in action. For Python 2, we could continue using the txi2p
|
|
# version about which no one has complained to us so far.
|
|
txi2p-tahoe >= 0.3.5
|
|
|
|
[options.entry_points]
|
|
console_scripts =
|
|
tahoe = allmydata.scripts.runner:run
|
|
|
|
[flake8]
|
|
# Enforce all pyflakes constraints, and also prohibit tabs for indentation.
|
|
# Reference:
|
|
# https://flake8.pycqa.org/en/latest/user/error-codes.html
|
|
# https://pycodestyle.pycqa.org/en/latest/intro.html#error-codes
|
|
select = F, W191
|