| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
This command now fetches the absolute paths of the log files in
the local CAS cache and opens a pager for each path.
The test has also been updated to ensure that a log file is
actually obtained.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
bst init was failing due to project_name_proc() incorrectly
passing args to the method, remove erroneous None.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
When loading an element, if it has duplicated dependencies of any kind
then we reject the element with a LoadError(DUPLICATE_DEPENDENCY). This
means that an element `foo.bst` can only appear once in any given dependency
kind, allowing it to be both `runtime` and `build`, but not either of those
twice, nor either plus `all`, nor `all` twice.
Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
|
|
|
|
| |
Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Once project & type are resolved, the full_name can be computed
and cached for efficiency. The accessor for getting the private
member should also be moved to the correct section.
|
| |
|
|
|
|
|
| |
With blob-based expiry in buildbox-casd, the presence of the artifact
proto will no longer be sufficient.
|
|
|
|
| |
This is in preparation for blob-based expiry as used by buildbox-casd.
|
| |
|
|
|
|
|
| |
If `check_exists` is set, missing directories should raise a
FileNotFoundError.
|
|
|
|
|
|
|
|
|
| |
We need to ensure artifact files are available locally also for elements
that don't run any commands (e.g., compose elements). It's also not
necessary to fetch file blobs after every command. This moves file blob
fetching from SandboxRemote.process_job_output() (part of Sandbox.run())
to a separate fetch_missing_blobs() method, which is invoked by
Element._cache_artifact().
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
It was agreed on the mailing list to move all plugins to a single
repository, before moving them into domain-specific repositories. As
a result it seems reasonable to move everything to the
bst-plugins-experimental repo as this stepping stone, rather than
creating a whole new repo.
This commit starts the process of moving things over by moving only the
cmake plugin to bst-plugins-experimental, and altering the tests to
reflect the new location.
|
|
|
|
|
|
|
|
| |
This option allows us to completely ignore remotes defined in the
subproject. As a user, we may not wish to interact with subproject
remotes as we may not be able to trust them, for example.
An appropriate test and some documentation has also been added.
|
|
|
|
|
|
|
|
|
| |
The 'cache-junction-elements' configuration option for junction's
is a boolean which enables elements from within the junction to
interact with the parent project's remote(s).
A test has been added to enforce this behaviour and the
BST_FORMAT_VERSION has been bumped.
|
|
|
|
|
|
|
|
|
|
|
| |
Originally, the intended default behaviour of BuildStream was to
only cache project elements in project specific remotes.
This behaviour was broken by: 24c0de16faec2b8b9bd6a03504ce951dc49afbe2.
Introduced in !1113.
This patch reverts the behaviour and asserts that junctioned elements
are not pushed to their parent's project-specific remote.
|
|
|
|
|
|
| |
This method updates the value of Element.__cache_keys_stable
which is initially set in the Element.__update_cache_keys()
method.
|
|
|
|
|
| |
The exception was incorrectly marked as 'KeyError', but enum throw
'ValueError' instead.
|
|
|
|
|
|
|
| |
Previously we would have the exceptions making debugging quite harder.
When requesting '--debug', it seems ok to show the stack trace that
created the error
|
|
|
|
| |
This improves the consistency of our error reporting
|
|
|
|
|
|
| |
This allows removing completely the '_node_get_option_str' on context
and ensures every method relying on a few set of keys set their errors
consistently
|
|
|
|
| |
Also add helpers for the cli to be able to represent 'FastEnum' directly
|
|
|
|
|
|
|
|
| |
This adds a method to ensure that a value is from a set of valid values
and raises an error message accordingly.
- Define Enum types for each of the relevant cases
- Adapt call places that were doing such things manually
|
|
|
|
|
|
| |
This allows for stronger guarantees when checking the level of
consistency since it will only be comparable with itself, and ensures
unicity
|
|
|
|
|
|
|
| |
'Enum' has a big performance impact on the running code. Replacing
it with a safe subset of functionality removes lots of this overhead
without removing the benefits of using enums (safe comparisions,
uniqueness)
|
|
|
|
|
|
| |
Changes made to allow artifact checkout/push/pull to take
artifact references as well as element names.
Added test to ensure this works
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
If we're running BuildStream tests then pickle child jobs.
This ensures that we keep things picklable, whilst we work towards being
able to support platforms that need to use the 'spawn' method of
starting processes.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Make ScalarNode, MappingNode, and SequenceNode pickable by implementing
`__reduce__` for them.
|
|
|
|
|
| |
In order to enable the 'spawn' method of creating jobs, make sure that
OptionPool is pickable, otherwise it cannot be sent to the job process.
|
|
|
|
|
| |
Make the _platform implementations pickable by moving the nested
_setup_*_sandbox methods up into their enclosing classes.
|