| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Add `_stage_into_cas()` private method. Calls `self._stage` on
a `CasBasedDirectory`.
|
| |
|
| |
|
|
|
|
|
| |
'strip_node_info' would be useful for multiple plugins. We should
therefore allow users to use it.
|
|
|
|
| |
This is now handled in Context.prepare_fork().
|
|
|
|
| |
This aligns the method name with has_open_grpc_channels().
|
|
|
|
|
|
|
|
|
| |
Remove XFAIL mark from test_workspace_visible and remove the explicit
SourceCache.commit() in the workspace source plugin. Allow buildstream
to handle the commit logic.
Add handling for non-cached workspace sources in
`source.Source._generate_keys()`.
|
|
|
|
|
|
|
|
|
|
| |
As a first step, add type hints to variables whose type `mypy` cannot
infer automatically. This is the minimal set of type hints that allow
running `mypy` without any arguments, and having it not fail.
We currently ignore C extensions that mypy can't process directly.
Later, we can look into generating stubs for such modules (potentially
automatically).
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adding the element full name and display key into all element related
messages removes the need to look up the plugintable via a plugin
unique_id just to retrieve the same values for logging and widget
frontend display. Relying on plugintable state is also incompatible
if the frontend will be running in a different process, as it will
exist in multiple states.
The element full name is now displayed instead of the unique_id,
such as in the debugging widget. It is also displayed in place of
'name' (i.e including any junction prepend) to be more informative.
|
|
|
|
|
|
|
|
|
| |
Pave the way toward supporting the 'spawn' method of creating jobs, by
adding support for pickling ChildJobs. Introduce a new 'jobpickler'
module that provides an entrypoint for this functionality.
This also makes replays of jobs possible, which has made the debugging
of plugins much easier for me.
|
|
|
|
|
| |
This variable is accessed multiple times per run and can be slow on
slow file systems.
|
|
|
|
|
| |
We need to update every place where we were passing a yaml 'dict' to
now pass a 'MappingNode'
|
|
|
|
|
|
|
|
| |
A 'clone' operation has an implicit understanding that it is expensive,
which is not the case of a 'copy' operation, which is more usually
a shallow copy.
Therefore renaming to 'clone'
|
| |
|
|
|
|
|
|
|
| |
- _composite -> __composite (internal)
- composite -> _composite (BuildStream private)
- composite_under -> _composite_under (BuildStream private)
- get -> _get (internal)
|
|
|
|
|
| |
Users should not need to get access to any of those, and should only
need access to the ProvenanceInformation to print it.
|
|
|
|
|
|
|
|
| |
This replaces the helper method by adding a 'get_provenance' on the node
directly
- Adapt all call sites
- Delay getting provenance wherever possible without major refactor
|
|
|
|
| |
- adapt all call sites to use the new API
|
|
|
|
|
| |
- Also take care of node_composite_move in the same way.
- Adapt all calling places
|
| |
|
|
|
|
|
|
|
|
|
| |
Some call places do not need calls to 'node_sanitize' anymore, therefore
removing the call entirely.
Other still use it for convenience, but that doesn't seem the right way
to do it for consistency. Those places have been replaced by calls to
'Node.strip_node_info()'.
|
| |
|
|
|
|
|
|
|
| |
- node_find_target with 'key' is only used once in the codebase.
We can remove and simplify this function
- Allow 'MappingNode.get_node()' to be called without any
'expected_types'
|
|
|
|
| |
Also adaprt every part of the code calling it
|
|
|
|
|
|
|
|
| |
This allows to get a mapping node from another 'MappingNode',
replacing 'node_get(my_mapping, key, type=dict)'
Also changes all places where 'node_get' was called like that by
the new API.
|
| |
|
|
|
|
|
|
|
|
|
| |
This changes the location of source refs from `cache/cas/refs` to
`cache/sources_protos` and fixes tests that looked in the old reference
place. Source cache now uses the new protocol buffer and grpc methods
defined, for storing locally, and pushing and pulling to remotes.
Part of #1038
|
|
|
|
|
|
| |
Instead of having methods in Context forward calls on to the Messenger,
have folks call the Messenger directly. Remove the forwarding methods in
Context.
|
|
|
|
|
|
|
|
|
|
|
| |
Calls to `isinstance` can be particularily costly. Using type() is
much faster. The only known case where the `isinstance` was useful
is for dictionnaries where we would ask for a 'Mapping' instead.
Disallowing 'Mapping' for expected_type considerably speeds up the
calls to this functions.
Also add into NEWS
|
|
|
|
|
|
|
|
| |
Add flag to indicate whether sources can stage directly to a virtual
directory. Adds `__stage_previous_sources` method which stages previous
sources taking into account whether they use virtual directories or not.
Part of #983
|
|
This was discussed in #1008.
Fixes #1009.
|