[tahoe-lafs-trac-stream] [Tahoe-LAFS] #709: hard to run against alternate dependencies, e.g. trunk version of Foolscap
Tahoe-LAFS
trac at tahoe-lafs.org
Sat Mar 26 21:20:55 UTC 2016
#709: hard to run against alternate dependencies, e.g. trunk version of Foolscap
---------------------------+------------------------
Reporter: warner | Owner: warner
Type: defect | Status: closed
Priority: major | Milestone: 1.11.0
Component: packaging | Version: 1.4.1
Resolution: fixed | Keywords: setuptools
Launchpad Bug: 821000 |
---------------------------+------------------------
Changes (by warner):
* keywords: setuptools test-needed => setuptools
* status: new => closed
* resolution: => fixed
* milestone: undecided => 1.11.0
Old description:
> For the #653 work I'm doing now (which requires a change to foolscap:
> [http://foolscap.lothar.com/trac/ticket/105 foolscap#105]), I need to run
> a
> Tahoe trunk tree against a Foolscap trunk tree (to test changes I'm
> considering putting into the upcoming foolscap release). The normal way
> to do
> this (which used to work before we switched to setuptools) was:
>
> {{{
> PYTHONPATH=~/foolscap/trunk make test
> }}}
>
> I tried to do this yesterday, and here are the problems I ran into:
>
> * the Foolscap .egg that was built in support/lib overrides anything
> else on
> PYTHONPATH, so I must delete the .egg first
> * on OS-X, there's also an .egg put in the root of the tahoe tree (the
> #657
> problem), so I must delete that one too
> * "make test" takes forever (#591) and rebuilds a Foolscap .egg before
> running any tests, so I use "make quicktest" instead
> * A Foolscap source tree (in my {{{~/foolscap/trunk}}} directory) does
> not
> appear to qualify as fulfilling the setuptools dependency for
> {{{foolscap[secure_connections]>=0.3.1}}}.
> {{{src/allmydata/scripts/runner.py}}} has a line which does
> {{{pkg_resources.require('allmydata-tahoe')}}}, and that throws a
> !DistributionNotFound exception. I commented that line out.
> * the {{{pkg_resources.load_entry_point}}}-based support/bin/tahoe
> script
> does an implicit {{{pkg_resources.require}}}, also failing because it
> thinks it doesn't have Foolscap available.
>
> I think the only way I can work around this is to use "setup.py develop
> TARGETDIR" on my Foolscap tree, and then set PYTHONPATH to point at
> TARGETDIR
> instead of {{{~/foolscap/trunk}}}.
>
> This is annoying. I really wish that PYTHONPATH could be used as it was
> originally intended, and that these eggs weren't getting in the way.
New description:
For the #653 work I'm doing now (which requires a change to foolscap:
[http://foolscap.lothar.com/trac/ticket/105 foolscap#105]), I need to run
a
Tahoe trunk tree against a Foolscap trunk tree (to test changes I'm
considering putting into the upcoming foolscap release). The normal way to
do
this (which used to work before we switched to setuptools) was:
{{{
PYTHONPATH=~/foolscap/trunk make test
}}}
I tried to do this yesterday, and here are the problems I ran into:
* the Foolscap .egg that was built in support/lib overrides anything else
on
PYTHONPATH, so I must delete the .egg first
* on OS-X, there's also an .egg put in the root of the tahoe tree (the
#657
problem), so I must delete that one too
* "make test" takes forever (#591) and rebuilds a Foolscap .egg before
running any tests, so I use "make quicktest" instead
* A Foolscap source tree (in my {{{~/foolscap/trunk}}} directory) does
not
appear to qualify as fulfilling the setuptools dependency for
{{{foolscap[secure_connections]>=0.3.1}}}.
{{{src/allmydata/scripts/runner.py}}} has a line which does
{{{pkg_resources.require('allmydata-tahoe')}}}, and that throws a
!DistributionNotFound exception. I commented that line out.
* the {{{pkg_resources.load_entry_point}}}-based support/bin/tahoe script
does an implicit {{{pkg_resources.require}}}, also failing because it
thinks it doesn't have Foolscap available.
I think the only way I can work around this is to use "setup.py develop
TARGETDIR" on my Foolscap tree, and then set PYTHONPATH to point at
TARGETDIR
instead of {{{~/foolscap/trunk}}}.
This is annoying. I really wish that PYTHONPATH could be used as it was
originally intended, and that these eggs weren't getting in the way.
--
Comment:
This is now resolved: by using a virtualenv, I can `pip install --editable
~/my/foolscap` to use a locally-modified Foolscap along with my locally-
modified Tahoe. It's not $PYTHONPATH manipulation, but it works just as
well.
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/709#comment:15>
Tahoe-LAFS <https://Tahoe-LAFS.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list