Project

General

Profile

Actions

Idea #2803

closed

Python SDK and FUSE driver are separate packages

Added by Brett Smith almost 10 years ago. Updated almost 10 years ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
-
Story points:
1.0

Description

These are conceptually two different packages, and our efforts to share build infrastructure are requiring weirder and wilder hacks to keep it going. Properly separating them will keep our infrastructure clean and avoid bugs caused by pip tripping over all our unorthodox choices.


Subtasks 1 (0 open1 closed)

Task #2804: Review 2803-python-package-split-wipResolvedTom Clegg05/09/2014Actions
Actions #1

Updated by Brett Smith almost 10 years ago

  • Description updated (diff)
  • Assigned To set to Brett Smith
Actions #2

Updated by Tom Clegg almost 10 years ago

Notes
  • Assigning the git-rev suffix in the "build+upload" command line makes much more sense than hacking it into setup.py. Thanks for that.
  • Unless we change /COPYING, moving arv-mount from /sdk/ to /services/ changes its license from Apache2 to GPL. Unless we want this for some reason, I think we should either update /COPYING or (for a simpler license↔tree map) put arv-mount in /sdk/fuse (or...?).
  • Perhaps change package name to just "arvados-fuse"? (Whatever we do, it's nice to have symmetry between package name, directory name, and module name -- except that I wouldn't necessarily want lots of directories in arvados called arvados-something.)

Test procedure (not including Keep server), starting with no arvados package installed in system dirs:

sudo apt-get remove python-yaml
sudo apt-get install libyaml-dev

export PYTHONBASE=/tmp/pythonpath
mkdir -p $PYTHONBASE
export PYTHONPATH=$PYTHONBASE/lib/python2.7/site-packages

cd ~/arvados/sdk/python
pip install --install-option="--prefix=$PYTHONBASE" -r requirements.txt
python -m unittest discover
python setup.py egg_info -b ".$(git log --format=format:%ct.%h -n1 .)" sdist
pip install --install-option="--prefix=$PYTHONBASE" dist/arvados-python-client-0.1.*.tar.gz

cd ~/arvados/services/fuse
pip install --install-option="--prefix=$PYTHONBASE" -r <(grep -v arvados requirements.txt)
python -m unittest discover
python setup.py egg_info -b ".$(git log --format=format:%ct.%h -n1 .)" sdist
pip install --install-option="--prefix=$PYTHONBASE" dist/arvados_fuse-0.1.*.tar.gz

And it all worked!

Actions #3

Updated by Brett Smith almost 10 years ago

[I believe all of this is per discussion in IRC.]

Tom Clegg wrote:

  • Unless we change /COPYING, moving arv-mount from /sdk/ to /services/ changes its license from Apache2 to GPL. Unless we want this for some reason, I think we should either update /COPYING or (for a simpler license↔tree map) put arv-mount in /sdk/fuse (or...?).

A license change seems OK. Updated setup.py to match.

  • Perhaps change package name to just "arvados-fuse"? (Whatever we do, it's nice to have symmetry between package name, directory name, and module name -- except that I wouldn't necessarily want lots of directories in arvados called arvados-something.)

Filename is now /services/fuse, and both the package and module are named arvados_fuse.

Actions #4

Updated by Brett Smith almost 10 years ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 100

Applied in changeset arvados|commit:949e27e0dd0a97cf78f0b90636df387fa0d65be3.

Actions

Also available in: Atom PDF