Merge lp://staging/~barry/pkgme/envar into lp://staging/pkgme

Proposed by Barry Warsaw
Status: Merged
Merged at revision: 44
Proposed branch: lp://staging/~barry/pkgme/envar
Merge into: lp://staging/pkgme
Diff against target: 74 lines (+28/-7)
3 files modified
README.txt (+8/-0)
pkgme/__init__.py (+7/-5)
pkgme/backend.py (+13/-2)
To merge this branch: bzr merge lp://staging/~barry/pkgme/envar
Reviewer Review Type Date Requested Status
James Westby Approve
Review via email: mp+43952@code.staging.launchpad.net

Description of the change

  Several changes to make running pkgme from the virtualenv easier.

  * Move package imports into the function so that the side effect of
    'import pkgme' to get the distutils extension command doesn't try to import
    a lot of unrelated, unnecessary, and potentially unavailable stuff.
  * Add support for $PKGME_EXTERNAL_BACKEND_PATHS environment variable,
    primarily useful so that pkgme can find its built-in backends when run from
    a virtualenv (since the landmark search will fail).
  * Add a bit of documentation to the README.

To post a comment you must log in.
lp://staging/~barry/pkgme/envar updated
39. By Barry Warsaw

Trunk merge

Revision history for this message
James Westby (james-w) wrote :

8 +To run pkgme out of your virtualenv, set the ``$PKGME_EXTERNAL_BACKEND_PATHS``
9 +environment variable to the directory inside the pkgme source tree named
10 +``backends/``. For example::

Is this needed as it currently doesn't install the backends?

62 +if PKGME_EXTERNAL_BACKEND_PATHS is None:
63 + EXTERNAL_BACKEND_PATHS = ["/usr/share/pkgme/backends/"]
64 +else:
65 + EXTERNAL_BACKEND_PATHS = PKGME_EXTERNAL_BACKEND_PATHS.split(os.pathsep)
66 root_dir = os.path.join(
67 os.path.dirname(os.path.abspath(__file__)), os.pardir)
68 if os.path.exists(os.path.join(root_dir, "setup.py")):
69 - EXTERNAL_BACKEND_PATHS.insert(0, os.path.join(root_dir, "pkgme", "backends"))
70 + EXTERNAL_BACKEND_PATHS.insert(
71 + 0, os.path.join(root_dir, "pkgme", "backends"))

If PKGME_EXTERNAL_BACKEND_PATHS overrides /usr/share/pkgme/backends/ should
it also override the ones in the source tree? Is that what "EXTERNAL" is there
for? I'm not sure why you would want to override, but not completely override.
Given that most backends are likely to be in your source tree, the env variable
won't have a lot of effect if you are running from source.

I have no problem adding an env var for this, but I think we should make it
so that it isn't needed when doing development.

Thanks,

James

review: Approve
Revision history for this message
Barry Warsaw (barry) wrote :

On Dec 18, 2010, at 01:29 AM, James Westby wrote:

>Review: Approve
>8 +To run pkgme out of your virtualenv, set the ``$PKGME_EXTERNAL_BACKEND_PATHS``
>9 +environment variable to the directory inside the pkgme source tree named
>10 +``backends/``. For example::
>
>Is this needed as it currently doesn't install the backends?

Right. I do think the right thing (eventually) to do is to install the
backends via 'python setup.py install'.

>62 +if PKGME_EXTERNAL_BACKEND_PATHS is None:
>63 + EXTERNAL_BACKEND_PATHS = ["/usr/share/pkgme/backends/"]
>64 +else:
>65 + EXTERNAL_BACKEND_PATHS = PKGME_EXTERNAL_BACKEND_PATHS.split(os.pathsep)
>66 root_dir = os.path.join(
>67 os.path.dirname(os.path.abspath(__file__)), os.pardir)
>68 if os.path.exists(os.path.join(root_dir, "setup.py")):
>69 - EXTERNAL_BACKEND_PATHS.insert(0, os.path.join(root_dir, "pkgme", "backends"))
>70 + EXTERNAL_BACKEND_PATHS.insert(
>71 + 0, os.path.join(root_dir, "pkgme", "backends"))
>
>If PKGME_EXTERNAL_BACKEND_PATHS overrides /usr/share/pkgme/backends/ should
>it also override the ones in the source tree? Is that what "EXTERNAL" is there
>for? I'm not sure why you would want to override, but not completely override.
>Given that most backends are likely to be in your source tree, the env variable
>won't have a lot of effect if you are running from source.

I think you're right, it should. But then, the envar should probably be
called $PKGME_BACKEND_PATHS (drop the EXTERNAL).

>I have no problem adding an env var for this, but I think we should make it
>so that it isn't needed when doing development.

My test-fixes branch should take care of that, but I still think this
environment variable will be useful.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches

to all changes: