Deploying a buildout environment to other users?

35 views
Skip to first unread message

Mikey D

unread,
Nov 20, 2017, 9:55:16 AM11/20/17
to Buildout Development
I really like buildout, and it is indispensable in keeping our Hadoop nodes clean of extra software. One thing I can't seem to get is when I deploy an archived zip file to another user, anything with sources/links is put in a develop-egg link to the actual source code in the project. This path is then hardcoded. If it was relative, that would work fine, or is there another way to deploy this project without those develop-egg links?

Even if it's a gentle push in the right direction, I greatly appreciate it.

# Notes
# 'bin/buildout -vvn' will be more verbose and N for buildout 
# will not seek new distributions if installed distributions
# satisfy it's requirements.

#
# Buildout configruation for basic use of python-opstools
#

[buildout]
extensions = mr.developer
versions = versions
newest = true
show-picked-versions = true
sources = sources
always-checkout = force
auto-checkout = *
parts = 
python
scripts
test

# Define any test/develop directories that contain setup.py for rapid testing (space separated)
# This allows you do test a multitude of versions without dirtying the buidout env.
#develop = /home/mtdeguzis/pyknoxtool

# Specify any root indexes
# Use 'find-links' for additional sources
index =

# Specify additional source links
# It may be best to use all git sources, as pypi devs will archive older versions often
# Format: <LINK>#egg=<module>-<version>
#find-links = 

# Define any external rev. control sources we want to use
# Requires Mr. Devleoper

###############################
# buildout on windows has issues with checking out sources
# For now, use a locally cloned copy of python-opstools
# See above
###############################

[sources]

[versions]
# You may need to pin setuptools here to the latest version that works cleanly
# This should be periodically reviewed
#setuptools = 36.0.1
#requests = 2.6.0

[python]
recipe = zc.recipe.egg
interpreter = python
dependent-scripts = true
eggs =
myproj
pep8
requests-kerberos
thrift-sasl
urllib3

[scripts]
recipe = zc.recipe.egg:scripts
eggs =
nose

[test]
recipe = zc.recipe.testrunner
eggs =
nose

Then
$ cat buildout/develop-eggs/
myproj.egg-link

$ cat buildout/develop-eggs/
myproj.egg-link

$ cat buildout/develop-eggs/myproj.egg-link
/home/user/myproj/buildout/src/myproj




Leonardo Rochael Almeida

unread,
Nov 20, 2017, 10:13:59 AM11/20/17
to Buildout Development
Hi Mikey,

As far as setuptools is concerned, `.egg-link` files could contain relative paths, instead of absolute ones. It's just that `python setup.py develop` generates absolute paths by default (which is what buildout does under the hood to create these files AFAIK).

Incidentally, it's setuptools itself that is involved in generating the `.egg-link` files when calling `python setup.py develop`, so I guess fixing this would take a PR to setuptools (or Buildout manually modifying the files after the fact, which I think is heavy handed).

Regards,

Leo

--
You received this message because you are subscribed to the Google Groups "Buildout Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to buildout-development+unsub...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages