Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
slapos.buildout
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
6
Merge Requests
6
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
slapos.buildout
Commits
52c93ffa
Commit
52c93ffa
authored
Sep 07, 2012
by
Hanno Schlichting
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #19 from buildout/3.3
3.3
parents
66fee301
87cb4b31
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
70 additions
and
52 deletions
+70
-52
2.4.cfg
2.4.cfg
+6
-0
dev.py
dev.py
+2
-0
src/zc/buildout/buildout.py
src/zc/buildout/buildout.py
+26
-9
src/zc/buildout/buildout.txt
src/zc/buildout/buildout.txt
+5
-9
src/zc/buildout/debugging.txt
src/zc/buildout/debugging.txt
+1
-1
src/zc/buildout/dependencylinks.txt
src/zc/buildout/dependencylinks.txt
+1
-2
src/zc/buildout/downloadcache.txt
src/zc/buildout/downloadcache.txt
+1
-2
src/zc/buildout/easy_install.txt
src/zc/buildout/easy_install.txt
+3
-5
src/zc/buildout/testing.py
src/zc/buildout/testing.py
+11
-4
src/zc/buildout/tests.py
src/zc/buildout/tests.py
+1
-1
zc.recipe.egg_/src/zc/recipe/egg/custom.txt
zc.recipe.egg_/src/zc/recipe/egg/custom.txt
+13
-19
No files found.
2.4.cfg
0 → 100644
View file @
52c93ffa
[buildout]
extends = buildout.cfg
[versions]
zope.interface = 3.8.0
zope.exceptions = 3.7.1
dev.py
View file @
52c93ffa
...
...
@@ -72,4 +72,6 @@ if sys.platform.startswith('java'):
# Jython needs the script to be called twice via sys.executable
assert
subprocess
.
Popen
([
sys
.
executable
]
+
[
bin_buildout
]).
wait
()
==
0
if
sys
.
version_info
<
(
2
,
6
):
bin_buildout
=
[
bin_buildout
,
'-c2.4.cfg'
]
sys
.
exit
(
subprocess
.
Popen
(
bin_buildout
).
wait
())
src/zc/buildout/buildout.py
View file @
52c93ffa
...
...
@@ -1083,7 +1083,7 @@ class Options(DictMixin):
self
.
_raw
=
self
.
_do_extend_raw
(
name
,
self
.
_raw
,
[])
# force substitutions
for
k
,
v
in
list
(
self
.
_raw
.
items
()):
for
k
,
v
in
sorted
(
self
.
_raw
.
items
()):
if
'${'
in
v
:
self
.
_dosub
(
k
,
v
)
...
...
@@ -1403,7 +1403,7 @@ def _open(base, filename, seen, dl_options, override, downloaded):
return
result
ignore_directories
=
'.svn'
,
'CVS'
ignore_directories
=
'.svn'
,
'CVS'
,
'__pycache__'
_dir_hashes
=
{}
def
_dir_hash
(
dir
):
dir_hash
=
_dir_hashes
.
get
(
dir
,
None
)
...
...
@@ -1411,15 +1411,31 @@ def _dir_hash(dir):
return
dir_hash
hash
=
md5
()
for
(
dirpath
,
dirnames
,
filenames
)
in
os
.
walk
(
dir
):
dirnames
[:]
=
[
n
for
n
in
dirnames
if
n
not
in
ignore_directories
]
filenames
[:]
=
[
f
for
f
in
filenames
dirnames
[:]
=
sorted
(
n
for
n
in
dirnames
if
n
not
in
ignore_directories
)
filenames
[:]
=
sorted
(
f
for
f
in
filenames
if
(
not
(
f
.
endswith
(
'pyc'
)
or
f
.
endswith
(
'pyo'
))
and
os
.
path
.
exists
(
os
.
path
.
join
(
dirpath
,
f
)))
]
)
hash
.
update
(
' '
.
join
(
dirnames
).
encode
())
hash
.
update
(
' '
.
join
(
filenames
).
encode
())
for
name
in
filenames
:
hash
.
update
(
open
(
os
.
path
.
join
(
dirpath
,
name
),
'rb'
).
read
())
path
=
os
.
path
.
join
(
dirpath
,
name
)
if
name
==
'entry_points.txt'
:
f
=
open
(
path
)
# Entry points aren't written in stable order. :(
try
:
sections
=
zc
.
buildout
.
configparser
.
parse
(
f
,
path
)
data
=
repr
([(
sname
,
sorted
(
sections
[
sname
].
items
()))
for
sname
in
sorted
(
sections
)]).
encode
(
'utf-8'
)
except
Exception
:
f
.
close
()
f
=
open
(
path
,
'rb'
)
data
=
f
.
read
()
else
:
f
=
open
(
path
,
'rb'
)
data
=
f
.
read
()
f
.
close
()
hash
.
update
(
data
)
_dir_hashes
[
dir
]
=
dir_hash
=
hash
.
hexdigest
()
return
dir_hash
...
...
@@ -1501,7 +1517,8 @@ recipe being used:
def
_check_for_unused_options_in_section
(
buildout
,
section
):
options
=
buildout
[
section
]
unused
=
[
option
for
option
in
options
.
_raw
if
option
not
in
options
.
_data
]
unused
=
[
option
for
option
in
sorted
(
options
.
_raw
)
if
option
not
in
options
.
_data
]
if
unused
:
buildout
.
_logger
.
warn
(
"Unused options for %s: %s."
%
(
section
,
' '
.
join
(
map
(
repr
,
unused
)))
...
...
src/zc/buildout/buildout.txt
View file @
52c93ffa
...
...
@@ -465,8 +465,7 @@ leave previously created paths in place:
An internal error occured due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
...
OSError: ... exists...
... exists...
We meant to create a directory bins, but typed bin. Now foo was
left behind.
...
...
@@ -497,8 +496,7 @@ If we fix the typo:
An internal error occured due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
...
OSError: ... exists...
... exists...
Now they fail because foo exists, because it was left behind.
...
...
@@ -585,8 +583,7 @@ When we rerun the buildout:
An internal error occured due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
...
OSError: ... exists...
... exists...
we get the same error, but we don't get the directory left behind:
...
...
@@ -661,8 +658,7 @@ directories will be created:
An internal error occured due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
...
OSError: ... exists...
... exists...
>>> os.path.exists('foo')
False
...
...
@@ -1137,7 +1133,7 @@ extension that prints out the options.
... import sys
... def ext(buildout):
... sys.stdout.write(str(
... [part['option'] for name, part in
buildout.items(
)
... [part['option'] for name, part in
sorted(buildout.items()
)
... if name.startswith('part')])+'\\n')
... """)
...
...
src/zc/buildout/debugging.txt
View file @
52c93ffa
...
...
@@ -69,7 +69,7 @@ supply some input:
>>> print_(system(buildout+" -D", """\
... up
... p s
elf.options.keys(
)
... p s
orted(self.options.keys()
)
... q
... """), end='')
Develop: '/sample-buildout/recipes'
...
...
src/zc/buildout/dependencylinks.txt
View file @
52c93ffa
...
...
@@ -21,9 +21,8 @@ testing repository.
Turn on logging on this server so that we can see when eggs are pulled
from it.
>>> get(link_server2 + 'enable_server_logging')
>>>
_ =
get(link_server2 + 'enable_server_logging')
GET 200 /enable_server_logging
''
Let's create a develop egg in our buildout that specifies
dependency_links which point to the new server.
...
...
src/zc/buildout/downloadcache.txt
View file @
52c93ffa
...
...
@@ -50,9 +50,8 @@ download:
We'll enable logging on the link server so we can see what's going on:
>>> get(link_server+'enable_server_logging')
>>>
_ =
get(link_server+'enable_server_logging')
GET 200 /enable_server_logging
''
We also specified a download cache.
...
...
src/zc/buildout/easy_install.txt
View file @
52c93ffa
...
...
@@ -376,9 +376,8 @@ We have a link server that has a number of eggs:
Turn on logging on this server so that we can see when eggs are pulled
from it.
>>> get(link_server2 + 'enable_server_logging')
>>>
_ =
get(link_server2 + 'enable_server_logging')
GET 200 /enable_server_logging
''
Now we can create an egg that specifies that its dependencies are
found on this server.
...
...
@@ -1160,7 +1159,7 @@ We have a link server that has a number of eggs:
And that the source directory contains the compiled extension:
>>> contents = os.listdir(extdemo)
>>>
any([f for f in contents if f.endswith(('.so', '.pyd')
)])
>>>
bool([f for f in contents if f.endswith('.so') or f.endswith('.pyd'
)])
True
Download cache
...
...
@@ -1192,9 +1191,8 @@ We have a link server that has a number of eggs:
We'd like to see what is being fetched from the server, so we'll
enable server logging:
>>> get(link_server+'enable_server_logging')
>>>
_ =
get(link_server+'enable_server_logging')
GET 200 /enable_server_logging
''
Now, if we install demo, and extdemo:
...
...
src/zc/buildout/testing.py
View file @
52c93ffa
...
...
@@ -311,15 +311,21 @@ class Handler(BaseHTTPRequestHandler):
if
'__stop__'
in
self
.
path
:
raise
SystemExit
def
k
():
self
.
send_response
(
200
)
out
=
'<html><body>k</body></html>
\
n
'
.
encode
()
self
.
send_header
(
'Content-Length'
,
str
(
len
(
out
)))
self
.
send_header
(
'Content-Type'
,
'text/html'
)
self
.
end_headers
()
self
.
wfile
.
write
(
out
)
if
self
.
path
==
'/enable_server_logging'
:
self
.
__server
.
__log
=
True
self
.
send_response
(
200
)
return
return
k
()
if
self
.
path
==
'/disable_server_logging'
:
self
.
__server
.
__log
=
False
self
.
send_response
(
200
)
return
return
k
()
path
=
os
.
path
.
abspath
(
os
.
path
.
join
(
self
.
tree
,
*
self
.
path
.
split
(
'/'
)))
if
not
(
...
...
@@ -361,6 +367,7 @@ class Handler(BaseHTTPRequestHandler):
self
.
send_header
(
'Content-Type'
,
'application/x-gzip'
)
else
:
self
.
send_header
(
'Content-Type'
,
'text/html'
)
self
.
end_headers
()
self
.
wfile
.
write
(
out
)
...
...
src/zc/buildout/tests.py
View file @
52c93ffa
...
...
@@ -137,10 +137,10 @@ It is an error to create a variable-reference cycle:
Initializing.
Getting section buildout.
Initializing section buildout.
Getting option buildout:x.
Getting option buildout:y.
Getting option buildout:z.
Getting option buildout:x.
Getting option buildout:y.
Error: Circular reference in substitutions.
It is an error to use funny characters in variable refereces:
...
...
zc.recipe.egg_/src/zc/recipe/egg/custom.txt
View file @
52c93ffa
...
...
@@ -232,12 +232,12 @@ But if we run the buildout in the default on-line and newest modes, we
will. This time we also get the test-variable message again, because the new
version is imported:
>>> print_(system(buildout), end='')
>>> print_(system(buildout), end='')
# doctest: +ELLIPSIS
Develop: '/sample-buildout/demo'
Updating extdemo.
zip_safe flag not set; analyzing archive contents...
Updating demo.
Generated script '/sample-buildout/bin/demo'
.
..
.
>>> ls(sample_buildout, 'develop-eggs')
- demo.egg-link
...
...
@@ -270,14 +270,9 @@ We can specify a specific version using the egg option:
... entry-points = demo=demo:main
... """ % dict(server=link_server))
>>> print_(system(buildout+' -D'), end='')
>>> print_(system(buildout+' -D'), end='')
# doctest: +ELLIPSIS
Develop: '/sample-buildout/demo'
Uninstalling demo.
Uninstalling extdemo.
Installing extdemo.
zip_safe flag not set; analyzing archive contents...
Installing demo.
Generated script '/sample-buildout/bin/demo'.
...
>>> ls(sample_buildout, 'develop-eggs')
- demo.egg-link
...
...
@@ -346,7 +341,7 @@ Create our buildout:
... recipe = recipes:environ
...
... """ % dict(server=link_server))
>>> print_(system(buildout), end='')
>>> print_(system(buildout), end='')
# doctest: +ELLIPSIS
Develop: '/sample-buildout/recipes'
Uninstalling demo.
Uninstalling extdemo.
...
...
@@ -354,7 +349,7 @@ Create our buildout:
Have environment test-variable: foo
zip_safe flag not set; analyzing archive contents...
Installing checkenv.
checkenv: test-variable left over: False
...
The setup.py also printed out that we have set the environment `test-variable`
...
...
@@ -400,14 +395,14 @@ are interpolated with os.environ before the're set:
... recipe = recipes:environ
...
... """ % dict(server=link_server))
>>> print_(system(buildout), end='')
>>> print_(system(buildout), end='')
# doctest: +ELLIPSIS
Develop: '/sample-buildout/recipes'
Uninstalling extdemo.
Installing extdemo.
Have environment test-variable: foo:bar
zip_safe flag not set; analyzing archive contents...
Updating checkenv.
checkenv: test-variable left over: True
...
>>> os.environ['test-variable']
'bar'
...
...
@@ -429,12 +424,11 @@ Create a clean buildout.cfg w/o the checkenv recipe, and delete the recipe:
... include-dirs = include
...
... """ % dict(server=link_server))
>>> print_(system(buildout), end='')
>>> print_(system(buildout), end='')
# doctest: +ELLIPSIS
Develop: '/sample-buildout/recipes'
Uninstalling checkenv.
Uninstalling extdemo.
Installing extdemo.
zip_safe flag not set; analyzing archive contents...
Installing extdemo...
>>> rmdir(sample_buildout, 'recipes')
...
...
@@ -530,12 +524,12 @@ Note that we added a define option to cause the preprocessor variable
TWO to be defined. This will cause the module-variable, 'val', to be
set with a value of 2.
>>> print_(system(buildout), end='')
>>> print_(system(buildout), end='')
# doctest: +ELLIPSIS
Develop: '/sample-buildout/demo'
Uninstalling extdemo.
Installing extdemo.
Installing demo.
Generated script '/sample-buildout/bin/demo'
.
..
.
Our develop-eggs now includes an egg link for extdemo:
...
...
@@ -547,7 +541,7 @@ Our develop-eggs now includes an egg link for extdemo:
and the extdemo now has a built extension:
>>> contents = os.listdir(extdemo)
>>>
any([f for f in contents if f.endswith(('.so', '.pyd')
)])
>>>
bool([f for f in contents if f.endswith('.so') or f.endswith('.pyd'
)])
True
Because develop eggs take precedence over non-develop eggs, the demo
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment