-
3d308894
by Richard Maw
at 2018-07-31T16:31:36Z
element.py: Cache the result of checking whether an artifact is cached weakly
Normally we'd only need it in the case of scheduling a weakly cached build,
but to allow caching of failed builds we need to be able to distinguish
between cached successes and cached failures
for both strong and weak cache keys.
To allow other cache lookup codepaths to look up via the weak key
requires changes through the call stack to consult which key to use,
and cache invalidation of the saved state when it changes.
-
b3a68e28
by Richard Maw
at 2018-07-31T16:31:36Z
element.py: Add metadata to distinguish between successful and failed builds
This just puts the metadata in place,
we're adding code paths to add failed builds later.
-
f4573df3
by Richard Maw
at 2018-07-31T16:31:36Z
Convert call-sites of Element._cached() that assume success
When we later add cached failures it needs to not treat them as successes.
-
553df108
by Richard Maw
at 2018-07-31T16:31:36Z
_frontend/widget.py: Render cached failures differently to successes
-
d14d8ee2
by Richard Maw
at 2018-07-31T16:32:35Z
Cache failed builds
This creates an artifact when element assembly fails too,
and if it's the right kind of exception uses the now-included install directory
similarly to if it had returned successfully.
If there's a failure during install the artifact contains any installed files,
but may contain nothing at all.
-
d83122bb
by Richard Maw
at 2018-07-31T16:32:35Z
_scheduler/queues/buildqueue.py: Skip rebuilding cached failures
This flags up a failure and if run in an interactive prompt
permits the user to attempt a rebuild.
-
78944e9a
by Richard Maw
at 2018-07-31T16:32:35Z
tests: Add tests for cached behaviours
-
3fa79d8d
by Richard Maw
at 2018-07-31T16:32:35Z
_scheduler/queues: Add failed builds to "done" queue
This allows the scheduler to move jobs from the current queue to the next.
As a result of this change later queues than the build queue
mustn't skip a cached failure, so the logic is specialised to build queues only.
-
e8cd43dc
by Richard Maw
at 2018-07-31T16:32:58Z
NEWS: Describe caching of failures
Closes #76.
-
88cd61ea
by knownexus
at 2018-07-31T16:32:58Z
Added the missing `_get_build_log` function
-
4fc1f5d1
by Phillip Smyth
at 2018-07-31T17:17:34Z
Merge branch 'richardmaw/cache-fail' into 'master'
Store failed builds in the cache
Closes #76
See merge request BuildStream/buildstream!475
-
6cd3df09
by Phil Dawson
at 2018-08-01T08:05:45Z
doc/sessions: Add terminal sessions for use in workspaces tutorial
This is part of the the work towards issue #437
-
8c0522ad
by Phil Dawson
at 2018-08-01T08:05:45Z
Add project for workspaces tutorial
This is part of the work towards issue #437
-
dc60b713
by Phil Dawson
at 2018-08-01T08:05:45Z
tutorials: Add workspaces tutorial
This is part of the work towards issue #437
-
bf8c3dfb
by Phil Dawson
at 2018-08-01T08:05:45Z
testutils/patch.py: Add methods for applying and removing patches
-
b69783d4
by Phil Dawson
at 2018-08-01T08:05:45Z
tests/examples/developing.py: Add tests for workspaces walkthrough
-
480565c2
by Phil Dawson
at 2018-08-01T09:04:26Z
Merge branch 'phil/437-workspaces-tutorial' into 'master'
Phil/437 workspaces tutorial
Closes #437
See merge request BuildStream/buildstream!519
-
84cabdbf
by Jim MacArthur
at 2018-08-01T10:37:38Z
Add BST_VIRTUAL_DIRECTORY flag for element plugins
-
4221c19c
by Jim MacArthur
at 2018-08-01T10:37:38Z
utils.py: add getmtime() and magic_timestamp
magic_timestamp is moved into file scope so other classes
can use it.
-
a37c4f52
by Jim MacArthur
at 2018-08-01T10:37:38Z
Sandbox.py: Rename __root to _root.
This is to allow to allow its use by subclasses.
Since access to get_directories is now blocked for some plugins,
and the subclasses of Sandbox do not have configuration defined
by YAML files, they need another way to get at the root directory.
-
483bd0fa
by Jim MacArthur
at 2018-08-01T10:37:38Z
Add the virtual directory class 'Directory' and one implementation.
buildstream/storage/Directory.py: New file.
buildstream/storage/_filebaseddirectory.py: New file.
buildstream/_exceptions.py: New VIRTUAL_FS exception source.
-
279dc29b
by Jim MacArthur
at 2018-08-01T10:37:38Z
storage: Add __init__.py
-
b6514b37
by Jim MacArthur
at 2018-08-01T10:37:38Z
sandbox.py: Add function to get virtual directory.
-
c1206f8b
by Jim MacArthur
at 2018-08-01T10:37:38Z
_stream.py: Convert to virtual directories.
This removes _add_directory_to_tarfile since it is now implemented in
_filebaseddirectory.py.
-
18017982
by Jim MacArthur
at 2018-08-01T10:51:04Z
element.py: Conversion to use virtual directories
-
47d04e83
by Jim MacArthur
at 2018-08-01T10:51:06Z
plugins/elements/compose.py: Convert to virtual directories
-
f73eda1a
by Jim MacArthur
at 2018-08-01T10:51:06Z
plugins/elements/import.py: Convert to virtual directories
-
a721a7e8
by Jim MacArthur
at 2018-08-01T10:51:06Z
sandbox: Remove instances of get_directory
sandbox/_mount.py, sandbox/_sandboxbwrap.py:
Remove instances of get_directory
-
6f0cca41
by Jim MacArthur
at 2018-08-01T10:51:07Z
plugins/elements/stack.py: Convert to virtual directories
-
50b7c3d8
by Jim MacArthur
at 2018-08-01T10:51:07Z
scriptelement.py: Convert to virtual directories
-
24ab0a38
by Jim MacArthur
at 2018-08-01T10:51:07Z
compose.py: Remove unused getmtime()
-
81f37c2f
by Jim MacArthur
at 2018-08-01T10:51:07Z
sandbox.py: Use _root in _has_command
This will need more attention when we bring in another virtual
directory backend, however, we've said it is acceptable for the
sandbox itself to access the underlying directory, and this is
the best fix in the meantime.