Commit Graph

340 Commits

Author SHA1 Message Date
Sajith Sasidharan
e893254855 Use Pyrsistent < 0.17.0 2020-09-08 17:23:08 -04:00
Sajith Sasidharan
810c7eefd8 Pin Pyrsistent at a Python 2.7 compatible version 2020-09-08 16:31:57 -04:00
Jason R. Coombs
c48548a7ca Allow installation on later versions of Python. 2020-08-21 19:55:34 -04:00
Sajith Sasidharan
a9fa70c3d5 Add upper bound for attrs library 2020-08-21 15:55:39 -04:00
Itamar Turner-Trauring
4dae5d867c Add retry logic, listenOnUnused is potentially flaky. 2020-07-28 11:09:02 -04:00
Itamar Turner-Trauring
04db52b9e4 Some manual tweaks to be more likely to work with Python 3.
The Linux distribution porting code was obsolete (using Python APIs not present
in Python 3, /etc/lsb-release isn't a thing on Fedora 31, for example), so
replaced it with maintained third-party library.
2020-07-24 14:06:12 -04:00
Chad Whitacre
3f887f9279 Respond to review
- Use the subunitv2-file reporter to allow for nicer error handling
- Undo the depgraph.sh change, see if it really matters
- Rename passing -> ratchet-passing to distinguish from ported modules
  tracker
- Misc. documentation and ratchet.sh improvements
2020-07-14 20:11:58 -04:00
Chad Whitacre
d25c8b1a25 Start ratcheting up passing tests under Python 3 2020-07-13 22:42:48 -04:00
Chad Whitacre
5a2ee5387a Bump txi2p to unreleased version that supports Py3
The plan is to keep i2p support around, in the hopes that upstream libs
(txi2p, foolscap) are ported to Python 3 by the time we _really_ need
them.
2020-07-13 22:27:59 -04:00
Chad Whitacre
2eab253b0f Change python_requires in setup.py 2020-07-13 22:27:59 -04:00
Itamar Turner-Trauring
0bc8a441a9 Add pyutil as direct dependency; it was previously indirect dependency via zfec. 2020-07-08 11:56:53 -04:00
Itamar Turner-Trauring
e06d41442a Merge remote-tracking branch 'origin/master' into 3324-humanreadable-python-3 2020-07-07 11:03:33 -04:00
Itamar Turner-Trauring
906d6ac291 Switch to flake8 as a better way of running pyflakes. 2020-07-06 13:50:06 -04:00
Itamar Turner-Trauring
83182e1d38 Remove extraneous semicolon. 2020-07-03 13:15:13 -04:00
Itamar Turner-Trauring
70a029fb81 Tests pass on both Python 2 and Python 3. 2020-07-02 14:26:35 -04:00
Itamar Turner-Trauring
c207a0c932 Port test_humanreadable.py to Python 3. 2020-07-02 14:10:38 -04:00
Jean-Paul Calderone
76d667865e
Remove some top-level packaging related to magic-folders 2020-02-13 10:21:45 -05:00
Jean-Paul Calderone
5bd84895fd
Merge pull request #685 from tahoe-lafs/2392.pywin32
Replace pypiwin32 with pywin32

Fixes: ticket:2392
2020-01-20 14:09:32 -05:00
Jean-Paul Calderone
5dd355fbfa Stop accessing the maybe-deprecated Request.channel attribute 2020-01-17 11:45:08 -05:00
Jean-Paul Calderone
feb6c2f2fc depend on pywin32 instead 2020-01-17 10:59:23 -05:00
Jean-Paul Calderone
c8bd3e9a05 pin a known working foolscap 2020-01-13 10:52:09 -05:00
Jean-Paul Calderone
599419c820 comment about this requirement 2019-12-18 15:31:17 -05:00
Jean-Paul Calderone
8cb91f6f23 Try narrowing the coverage.py requirement
Perhaps the 5.0 release is causing problems
2019-12-18 13:11:59 -05:00
meejah
3b07a2873e
Merge pull request #659 from tahoe-lafs/3255.python3-porting-done-oracle
Add a Python 3 porting-done oracle to the test suite
2019-11-05 05:00:25 +00:00
Jean-Paul Calderone
d8eeaf6196 Declare a cryptography dependency. 2019-10-16 15:20:14 -04:00
Jean-Paul Calderone
971ead3148 Get the syntax right 2019-09-17 11:35:37 -04:00
Jean-Paul Calderone
98b3a644da add some tests 2019-09-17 11:35:37 -04:00
hab
985f659afe Merge remote-tracking branch 'upstream/master' into move-to-twt--introducer 2019-08-16 17:52:05 +01:00
Jean-Paul Calderone
739df66c80 can't have nice things 2019-08-14 14:48:12 -04:00
hab
e2aba7f4bb Use beautifulsoup4+html5lib for web tests.
Assertions about the rendered template will be easier to write and
don't rely on perfect substring matches.
2019-08-14 19:45:16 +01:00
Jean-Paul Calderone
faed622ee9 Add an "sftp" extra and put the Conch dependency there 2019-08-14 09:04:20 -04:00
Jean-Paul Calderone
e977395808 We can use the "compatibility" comparison now. 2019-08-13 19:11:44 -04:00
Jean-Paul Calderone
f1bc71811e Update this dated comment 2019-08-13 19:11:35 -04:00
Jean-Paul Calderone
e2ec4d3fa4 Get rid of _auto_deps.{install_requires,setup_requires} 2019-08-13 18:54:16 -04:00
heartsucker
67abb02a83 include package data for crypto tests 2019-06-13 22:19:28 -06:00
Jean-Paul Calderone
b477a4656d Also install the test plugins. 2019-05-08 18:42:17 -06:00
Chris Wood
76bb84a77f Express "watchdog" dependency via a setup.py extra
For consistency with PR #388 (a06cf2ea4c)
2019-03-14 11:23:16 -04:00
Jean-Paul Calderone
f20184ce95 Declare our new dependencies 2019-02-25 11:55:47 -05:00
Jean-Paul Calderone
f6e00248bb Explicitly select a pyflakes version 2019-01-24 10:23:26 -05:00
Jean-Paul Calderone
b13f1cc531 try with only one extra 2018-08-06 12:13:33 -04:00
Jean-Paul Calderone
f71bbff877 Basic towncrier skeleton 2018-08-06 10:13:16 -04:00
Brian Warner
05edde9a64 setup.py: unpin pypiwin32, should be fixed by now
At the time we pinned this to v219, I think the v220 on PyPI was broken for
py2.7, or they'd stopped producing newer wheels for py2 but the most recent
py2-capable one was broken. The upstream bug is fixed, so I'll unpin this and
see if it works.
2018-03-30 11:46:15 -07:00
meejah
5f8105ffdd pin pypiwin32 version until upstream bug fixed 2018-01-30 12:51:56 -07:00
Brian Warner
04fc0e43f7 setup.py: use python_requires= to complain about py3, not an exception
This allows a python3-based tox (as is common on modern debian/ubuntu
systems) to test our py2-only package. The first thing Tox does is to build a
wheel to install into the target virtualenv (which is a py2-based venv, for
tahoe). But Tox bug (https://github.com/tox-dev/tox/issues/507) in which this
wheel is built with the same python that Tox is using, instead of the python
from the target environment. Our setup.py would see sys.version_info with py3
and launch a crowbar into the works.

With python_requires=, pip is smart enough to know that it's ok to build
wheels with the wrong python, but "pip install" still throws a sensible error
message:

```
(ve36) ~/stuff/tahoe/tahoe$ pip install .
Processing /home/warner/stuff/tahoe/tahoe
tahoe-lafs requires Python '<3.0' but the running Python is 3.6.1
```

Closes ticket:2876
2017-08-15 18:37:39 -07:00
Jean-Paul Calderone
31f4272919 Use find_packages
It is a shorter and more reliably way to provide a value for the packages parameter.
2017-08-08 12:06:30 -04:00
Brian Warner
dc6398d265 setup.py: depend on 'treq' for [test] 2017-07-12 17:07:27 -07:00
David Stainton
e68b331bb1 Add servers of happiness hypothesis testing
Fix happiness test var names

Remove unused imports

Get rid of trailing whitespace
2017-06-05 16:26:46 -06:00
meejah
b0e291b431 remove comment to kick builders 2017-04-26 15:27:06 -06:00
tpltnt
c0888de394 raise RuntimeError if not Python 2 2017-04-21 00:36:16 +02:00
str4d
f139f46803 Use txi2p 0.3.2 to work around SSL issue
See https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2861#comment:14
2017-04-10 12:15:00 -07:00
str4d
9b53cc7676 Specify foolscap[i2p] >= 0.12.6 in setup.py
Missing from be6e0a9c29
2017-04-10 12:15:00 -07:00
Brian Warner
9da041cf0e setup.py/MANIFEST.in: include missing files
Oops, we didn't include test.web in the previous release tarball, or the
tests under integration/ .
2017-01-18 16:28:23 -08:00
David Stainton
223b694313 Remove shutilwhich from setup.py extras 2017-01-09 19:51:38 +00:00
Brian Warner
79ff7ae5cb move 'shutilwhich' dependency out to the [test] extra
This is only used by integration/conftest.py, so we don't need an
unconditional dependency on it.

closes ticket:2856
2016-12-25 14:15:52 -05:00
Brian Warner
a06cf2ea4c express pypiwin32 dep via a setup.py extra
Previously this looked at sys.platform to decide what dependencies to
include. The problem with that approach is that wheels built on a unix box
won't work on windows (and vice versa), when the (pure-python) Tahoe wheels
aren't supposed to be platform-dependent.

setup.py provides a syntax to express this properly, so wheels created on
either platform will include the pypiwin32 dependency in the metadata, but
marked as only being relevant when installing on a win32 platform.

closes ticket:2763
2016-12-24 18:00:13 -05:00
Brian Warner
de4295ae60 require foolscap >= 0.12.5, for ReconnectionInfo 2016-12-08 15:41:37 -08:00
str4d
6071c2b6f8
Implement i2p_provider and --listen=i2p
Closes ticket:2838
2016-10-23 20:30:01 -05:00
Brian Warner
272cb78af1 bump txtorcon dep to 0.17.0
This is the first version that allows us to use unix-domain control
ports for the launched tor.
2016-10-09 01:25:51 -04:00
Brian Warner
2a44a8e8cc setup.py: use python3-safe print() call 2016-09-09 17:09:42 -07:00
Brian Warner
3aac5aa577 'setup.py test' prints message about tox
closes ticket:2799
2016-09-09 16:43:58 -07:00
Brian Warner
7f9b715b3e bump foolscap dep to 0.12.3, for the new tor API
The current version of Foolscap is compatible with the current version
of txtorcon, but not with tahoe. This fixes that.
2016-09-01 20:26:08 -07:00
meejah
72f17afa76 Move check_magicfolder_smoke.py to proper integration tests
This introduces a py.test-based integration suite (currently just
containing magic-folder end-to-end tests). Also adds a tox environment
("integration") to run them.

The test setup is:

 - a "flogtool gather" instance
 - an Introducer
 - five Storage nodes
 - Alice and Bob client nodes
 - Alice and Bob have paired magic-folders
2016-08-30 20:47:47 -06:00
Brian Warner
eb230d1e5f setup.py: add 'tox' and 'i2p' extras
Now you can do `pip install tahoe-lafs[tor]` to get tor support.

The necessary support libraries are also installed with `[test]`, so
unit tests can rely upon importing txtorcon and friends.
2016-08-28 02:42:51 -07:00
Brian Warner
b637636ef9 remove _appname.py file
We no longer need the complexity of choosing the application name at
runtime. This removes the setup.py code which populates the _appname.py
file, and the code in __init__.py which reads it. It does not yet remove
the tests which compare the output of e.g. `tahoe --version` against
`allmydata.__appname__`, which I think could be removed, but that's more
invasive than I want to do right now.

closes ticket:2754
2016-08-11 23:24:11 -07:00
meejah
fd978bfed6 whitespace, and add 'tox' to 'test' extra 2016-08-08 12:35:54 -06:00
Brian Warner
e431faf58c test_cli_*: move files into test/cli/* 2016-08-03 19:10:53 -04:00
Brian Warner
4f56c4b053 split test_mutable.py into smaller files 2016-08-03 14:54:32 -04:00
Zooko
f300801226 remove configuration which causes "python setup.py test" to run all the files in src/allmydata/test 2016-07-12 13:57:30 +00:00
Brian Warner
84a1064b87 setup.py: depend on 'mock' when using [test] extra
I think this is useful enough that we should have it available when
running tests.

refs ticket:2777
2016-04-26 11:21:59 -07:00
Brian Warner
23f871a409 add [test] "extra" to install testing-only dependencies
closes ticket:2776
2016-04-12 12:32:46 -07:00
Brian Warner
3dcb3c8ed5 setup: remove zip_safe, no one uses eggs anymore
Modern wheels are installed unpacked.
2016-03-26 12:21:57 -07:00
Daira Hopwood
0598c830ed Rename distribution from allmydata-tahoe to tahoe-lafs. fixes ticket:2011
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-25 19:16:01 +00:00
Brian Warner
831b39d8fb remove src/buildtest/ and related build_helper/ test files
This was used to exercise our old virtualenv-like scheme. Now that we
use virtualenv, they're unnecessary. Plus, removing it lets us stop
polluting end-user installs with the extra package (that might
conceivably conflict with some other project that names itself
"buildtest").
2016-03-22 22:56:03 -07:00
Brian Warner
dd84abd9f2 setup.py: work with tox under py3
This allows a python3-based "tox" (as shipped with modern debian and
ubuntu systems) to run setup.py egg_info, update_version, and sdist
commands. It moves the main "tahoe requires py2" check out of setup.py
and into allmydata.scripts.runner.run, where it gets applied at runtime
rather than build time.

It also changes the execfile(_auto_deps.py) and Versioneer-like "ask git
what our version string should be" code to work under both py2 and py3.

fixes ticket:2747
2016-03-22 22:34:42 -07:00
Brian Warner
ce088ad27c setup: remove 'trial' command. Tox is the way.
This removes the "setup.py trial" and "setup.py test" aliases from
setup.cfg, and the custom Trial class from setup.py .

Note that once you have tahoe installed into a virtualenv, "trial
allmydata" is how tests are actually run (that's what tox does).

Having a command for it in setup.py offered two things: a common
setup.py-based target to start tests (like "make check" in a
GNU/automake -style project), and a convenient way to get the
PATH/PYTHONPATH right. "tox" is now the standard way to invoke tests in
python projects, and tox sets up $PATH for us.
2016-03-22 14:00:31 -07:00
Brian Warner
ae1b1e02fc setup.py: remove MySdist and SUMO tarball support. 2016-03-22 13:57:30 -07:00
Brian Warner
5acd63dda3 setup.py: remove dead code 2016-03-22 13:56:57 -07:00
Brian Warner
0f3ce7a17f setup.py: remove 'make_executable' command 2016-03-15 18:19:54 -07:00
Brian Warner
dbe314e8df setup.py: remove __requires__
This is more cleanup from the 1582 zetuptoolzs-ectomy. __requires__ was
used to make sure that 'setup.py test' would have all our dependencies
on sys.path, but has the severe drawback of requiring all deps to be
available before any setup.py command can work, including the 'setup.py
sdist' that tox uses (to populate the new virtualenvs it creates). Now
that we use tox for tests, we don't need 'setup.py test' any more, but
I'll remove that later (after this release). Right now we just need to
get rid of this __requires__ line, as it was causing 'tox' sdist
failures.
2016-03-15 12:33:38 -07:00
Daira Hopwood
19a4bc90e5 Tolerate arguments for 'install' passed to 'update_version' and 'make_executable'.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-15 17:31:32 +00:00
Brian Warner
0651991474 copy bin/tahoe from $PATH for the sake of test_runner
This is needed to allow virtualenv-based builds to exercise
test_runner.BinTahoe (and a few others), which expect to run an
executable program in "bin/tahoe". This also helps users who aren't yet
accustomed to the new virtualenv world where they can just run "tahoe"
instead of "bin/tahoe".

This changes the "setup.py make_executable" command to copy the first
"tahoe" executable found on $PATH into bin/tahoe . Previously bin/tahoe
was created by modifying the shbang line of a template stored in
bin/tahoe-script.template (which has been deleted).

It also changes setup.cfg to run "make_executable" before tests,
and *after* an install. Note that you must use "setup.py install" before
"setup.py test", since make_executable requires the installed "tahoe" on
$PATH.

In the future, we hope to get rid of bin/tahoe altogether, and have
these tests run the "tahoe" from $PATH directly.
2016-03-15 17:31:32 +00:00
Daira Hopwood
d8549a2c7f setuptools delenda est. fixes ticket:1582 :-D
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-15 17:19:10 +00:00
Leif Ryge
000c148ad8 drop Python 2.6 (.travis.yml, doc, setup.py)
Twisted 15 dropped support for it, which causes Travis CI tests to fail on 2.6.
We still theoretically support older versions of Twisted, so perhaps we should
configure Travis to test with those? I think we should drop Python 2.6 in any
case since distros are all on 2.7 now.

I'm leaving Travis running (and ignoring) the failing PyPy tests because I
don't know why that is there.
2015-12-02 20:18:33 +00:00
Daira Hopwood
7309aed524 Change some instances of "filesystem" that were missed to "file store".
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2015-07-31 18:21:47 +01:00
Daira Hopwood
07aa5e76b5 Retire the setup_requires hack in cases where it isn't needed (and can cause build problems). refs #2286
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2015-05-13 12:49:18 +01:00
Daira Hopwood
409cf22ee9 Bump zetuptoolz version (file changes).
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2015-04-28 18:52:59 +01:00
Daira Hopwood
19fffc059f Explicitly using "git.cmd" on Windows doesn't always work; use shell=True on Windows instead.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2015-02-17 19:10:54 +00:00
Daira Hopwood
e1a3a2001f setup.py: look for a tag named after APPNAME, not necessarily "allmydata-tahoe". refs #1146
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2014-11-21 08:41:45 +00:00
Daira Hopwood
2eeb8ee6f5 setup.py: set distribution.metadata.version from _version.py if we couldn't find it from git.
This simplifies reporting when we don't have the version. Also print the normalized version. refs #2340

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2014-11-21 08:38:37 +00:00
Daira Hopwood
b43447003e setup.py: use constant for _version.py filename.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2014-11-21 07:56:21 +00:00
Daira Hopwood
8e0ec757e7 setup.py: improve error reporting when git commands fail. refs #2340
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2014-11-21 05:29:09 +00:00
Daira Hopwood
3ff7f9bea3 Specify the setuptools egg filename explicitly rather than globbing for it.
(Note that if the version changes in future, this will fail loudly so we'll know we have to change it.)

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2014-10-07 19:28:53 +01:00
Daira Hopwood
d29e956a0f Delete obsolete Trove classifiers.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2014-10-02 16:26:47 +01:00
Daira Hopwood
6a38a3c54e Rename README.txt to README.rst, and add Travis-CI and Coveralls badges to it.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2014-09-09 18:51:44 +01:00
Brian Warner
6ffcb50173 Remove 'trialcoverage' plugin and support code
Closes ticket:2281 (trac).

This removes src/allmydata/test/trial_coverage.py, which was a
in-process way to run trial tests under the "coverage" code-coverage
tool. These days, the preferred way to do this is with "coverage run",
although the actual invocation is a bit messy because of the way
bin/trial uses subprocess.call() to invoke the real entrypoint script
with the right PYTHONPATH (see #1698 for details). Hopefully this will
be improved to use a simpler "coverage run .." command in the future.

This patch also removes twisted/plugins/allmydata_trial.py, which
enabled the "--reporter=bwverbose-coverage" option. Finally it modifies
setup.py to stop looking for that option and adding "trialcoverage" to
the dependencies list, which gets us closer to removing "setup_requires"
entirely.
2014-09-08 17:28:26 -07:00
Daira Hopwood
11809c3367 Add a --coverage option to 'python setup.py test' and 'python setup.py trial'. refs #1698
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2014-09-08 22:45:24 +01:00
Brian Warner
a1cc7df23d remove obsolete debian-package building tools
setup.py: stop sometimes-depending upon 'stdeb'
setup.cfg: don't try to alias 'sdist_dsc'
misc/build_helpers/build-deb.py: delete this, it was really old anyways

Closes ticket:2282 (trac).
2014-09-04 22:05:08 -07:00
Daira Hopwood
7db853a777 setup.py: include data files in package_data= with paths relative to src/allmydata/web.
Remove packages= entries and unneeded __init__.py files for those subdirectories.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2014-03-29 00:41:33 +00:00
Daira Hopwood
37c8b733a5 setup.py: add allmydata/web/static/img/*.png to package_data. refs #1969
Signed-off-by: Daira Hopwood <david-sarah@jacaranda.org>
2013-05-14 17:55:17 +01:00
Daira Hopwood
8a1b2c7aa6 Show git branch in version output. fixes #1953
Also make sure strings in _version.py are correctly escaped, and repair a test.

Signed-off-by: Daira Hopwood <david-sarah@jacaranda.org>
2013-05-01 22:38:08 +01:00