-
ec4bbf35
by Benjamin Schubert
at 2019-02-13T14:59:47Z
Cleanup internal Loader cache after loading elements
-
b41a82d3
by Benjamin Schubert
at 2019-02-13T14:59:47Z
Don't register exceptions when not running the testsuite
This fix a problem with the garbage collector not being able to
clean the MetaElements that are loaded.
On small projects this is not a problem, but in bigger projects, this
can save a few hundred of MBs at runtime
The reason behind this is, whenever we have a "stack" element, which
has no stack.yaml configuration, since it doesn't need it, we would
get an exception thrown when initiating the first one, as loading the
yaml file would fail.
This would capture the frame in which this command was executed, which
references meta_elements. Therefore, as long as another exception is not
thrown, the garbage collector would not be able to clean all the
MetaElements.
-
9db7f489
by Benjamin Schubert
at 2019-02-13T16:13:16Z
Merge branch 'bschubert/cleanup-local-state' into 'master'
Cleanup MetaElement local state
See merge request BuildStream/buildstream!1147
-
c2c10d68
by Daniel Silverstone
at 2019-02-14T13:02:07Z
Cache Keys: Update to use JSON rather than pickle
This affects the cache key version (updated to 7) and introduces
a dependency on `ujson` which is BSD licenced as of the version
locked in `requirements.txt`
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
868c057e
by Tristan Van Berkom
at 2019-02-14T13:58:39Z
Merge branch 'danielsilverstone-ct/json-cache-key' into 'master'
Update cache keys to use JSON
See merge request BuildStream/buildstream!1151
-
ace15fa6
by Benjamin Schubert
at 2019-02-14T14:04:45Z
Don't keep MetaSource around in Source
We can easily rebiuld MetaSource from any source so there is no
reason to keep them around.
This will slightly improve memory usage.
-
174f5394
by Tristan Van Berkom
at 2019-02-14T15:04:27Z
Merge branch 'bschubert/dont-keep-metasource' into 'master'
Don't keep MetaSource around in Source
See merge request BuildStream/buildstream!1150
-
e7e4086e
by Jürg Billeter
at 2019-02-14T15:05:38Z
utils.py: Change _ensure_real_directory() to not resolve symlinks
Resolving symlinks during staging causes various issues:
* Split rules may not work properly as the resolved paths will differ
depending on whether another artifact with a directory symlink has
been staged in the same root directory or not, e.g., as part of
compose.
* The order of symlinks in file lists is difficult to get right to
guarantee consistent and predictable behavior as paths in a file list
might rely on symlinks in the same file list. See #647 and #817.
* Staging order differences can lead to surprising results. See #390.
* Difficult to properly support absolute symlinks. Absolute symlinks are
currently converted to relative symlinks, however, this doesn't always
work. See #606 and #830.
This will require changes in projects that rely on the current behavior.
However, the changes are expected to be small and are often a sign of
buggy element files. E.g., elements that don't fully obey `bindir` or
`sbindir` variables.
-
c0570871
by Jürg Billeter
at 2019-02-14T15:05:38Z
_casbaseddirectory.py: Do not resolve symlinks
This matches the change in utils._process_list().
This also removes the _Resolver class as it is now unused. We may want
to support controlled symlink resolution in the future, in which case
the _Resolver class can be resurrected from this commit.
-
55bccf63
by Jürg Billeter
at 2019-02-14T15:05:38Z
utils.py: Do not mangle absolute symlinks
Copy symlinks as they are, absolute or relative. We no longer resolve
symlinks when copying files, which makes this safe.
-
94c6d59b
by Jürg Billeter
at 2019-02-14T15:05:38Z
Bump artifact version for changes in symlink handling
-
949962f8
by Jürg Billeter
at 2019-02-14T15:05:38Z
NEWS: Add entry for change in symlink handling
-
56c07baa
by Jürg Billeter
at 2019-02-14T16:08:42Z
Merge branch 'juerg/symlinks2' into 'master'
Do not resolve or mangle symlinks during staging
See merge request BuildStream/buildstream!1140
-
69520011
by Chandan Singh
at 2019-02-15T06:58:27Z
contrib/bst-graph: Add script to print graph in DOT format
This script leverages the recently added format strings
(`%{build-deps}`, `%{runtime-deps}`) to `bst show` to print a graph in
DOT format. This requires users to have the `graphviz` python package
installed.
Additionally, users can also render the graph using the `--format`
option if they have the `graphviz` command line tool installed.
-
51dae747
by Chandan Singh
at 2019-02-15T08:50:21Z
Merge branch 'chandan/dot-graph' into 'master'
contrib/bst-graph: Add script to print graph in DOT format
Closes #705
See merge request BuildStream/buildstream!1148
-
0687283b
by Raoul Hidalgo Charman
at 2019-02-15T10:38:09Z
cachedir: add new dir option that's default root to other dirs
Makes artifactdir and builddir obsolete.
Fixes #870
-
dd5d46d7
by Raoul Hidalgo Charman
at 2019-02-15T10:38:09Z
context: remove artifactdir
Will check and move old artifact directory if it exists, and create
symlink linking old directory to new.
Part of #870
-
ea27adbf
by Raoul Hidalgo Charman
at 2019-02-15T10:38:09Z
CASQuota: Move cache check methods into new Class
This sits in Context allowing artifact cache to check the cas quota
while not being used for CASServer.
A lot of code that checks cache quota has been touched.
Part of #870