| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|\
| |
| |
| |
| | |
_yaml: Remove useless calls to '_yaml.node_sanitize'
See merge request BuildStream/buildstream!1412
|
|/
|
|
|
|
| |
Calling '_yaml.dump' will itself call '_yaml.node_sanitize', therefore
we can remove all calls to it in places where we directly after call
dump.
|
|\
| |
| |
| |
| | |
Improve subproject fetching
See merge request BuildStream/buildstream!1414
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
This is in preparation for moving subproject fetching to the Stream
class. Project loading may require subproject fetching as part of
processing include directives.
|
|/
|
|
|
|
| |
Treat junction element sources the same as sources of any other element
and always fetch subprojects as needed. Do not ask the user to manually
fetch subprojects.
|
|\
| |
| |
| |
| | |
Notify direct reverse dependencies when an Element becomes ready for runtime and cached
See merge request BuildStream/buildstream!1406
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
An Element becomes ready for runtime and cached when:
1. It has a strong cache key
2. It is cached
3. Its runtime dependencies are ready for runtime and cached
(this ensures the runtimes of runtimes are also cached).
This patch introduces the method attempt_to_notify_reverse_dependencies
which will notify all direct reverse dependencies of an Element once
said Element becomes ready for runtime and cached.
|
| | |
|
|/
|
|
|
| |
Each other callback callsite immediately sets the callback to None
once invoked. We should be consistent.
|
|\
| |
| |
| |
| |
| |
| | |
CLI options for on demand blob fetching
Closes #1044
See merge request BuildStream/buildstream!1400
|
| |
| |
| |
| | |
Part of #1044
|
| |
| |
| |
| | |
Part of #1044
|
| |
| |
| |
| |
| |
| | |
This will fetch artifacts if they're not local or are incomplete.
Part of #1044
|
| |
| |
| |
| |
| |
| |
| |
| | |
One test to check that artifacts are pulled and a checkout is successful
when the --pull option is specified. Another to check that it attempts
to pull but fails gracefully if the artifact isn't present.
Part of #1044
|
| |
| |
| |
| |
| |
| |
| | |
This will set up a pull queue and pull relevant artifacts if not present
or incomplete.
Part of #1044
|
| |
| |
| |
| | |
Add test that ensures method is actually covered now and it works.
|
|/
|
|
|
|
|
| |
This never will have worked because digests aren't hashable, and this
method wasn't being covered in any tests. Also changed
`remote_missing_blobs` to ensure the blobs list is an iterator and
updated its docs.
|
|
|
|
| |
Fixes #1046
|
|\
| |
| |
| |
| | |
_frontend/cli.py: Tweak 'try' & 'always' bst shell buildtree handling
See merge request BuildStream/buildstream!1392
|
|/
|
|
|
|
|
|
|
|
|
| |
If the cached Artifact wasn't originally generated with a buildtree,
then there's no need to attempt to find it in remotes by entering
Stream(). In interactive mode we only present the user the option to
attempt the pull with the above assumption on buildtree_exists, so
apply the same to applicable non interactive choices.
This also includes some tweaks in integration/shellbuildtrees.py
to reflect changes and cover cases that were missing.
|
|\
| |
| |
| |
| | |
Guard against gRPC channels in the main process
See merge request BuildStream/buildstream!1405
|
| | |
|
|/ |
|
|\
| |
| |
| |
| | |
jobs/job: send ChildJob the context, not scheduler
See merge request BuildStream/buildstream!1407
|
|/
|
|
|
|
|
| |
Instead of passing the whole scheduler to the ChildJob, only pass the
part that is used - the context. Reducing the amount of shared state
makes it easier to follow what's going on, and will make it more
economical to move to away from the 'fork' model later.
|
|\
| |
| |
| |
| | |
enable PyLint "arguments-differ" error, and fixup complaints
See merge request BuildStream/buildstream!1390
|
| |
| |
| |
| |
| |
| | |
Don't return, instead of returning 'the result' of os.unlink - it also
doesn't return anything (and neither does the semantically identical
os.remove).
|
| | |
|
| |
| |
| |
| |
| | |
Ignore the warning for `_init_project_interactive`, as we really don't
care what the arguments are.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Update OptionEnum and OptionFlags to match the Option base-class.
Introduce 'load_special' to allow explicit usage of extended
functionality, which wouldn't necessarily be supported by different
subclasses.
By making the signatures of overridden methods deliberately match, we
can use PyLint to ensure the signatures don't accidentally differ.
Also replace `super(cls, self)` with the equivalent and less error-prone
`super()`, wherever we've touched it. In separate work we may want to
replace this across the project.
We must introduce __init__() functions for OptionEnum and OptionFlags to
get a clean pass from PyLint. It seems that it's unable to see that
load_special() is also transitively called from __init__().
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Update 'source_config' of Git and _SimpleGit to match the Repo base
class. This ensures that they are fully substitutable Repos.
Introduce 'source_config_extra' to allow explicit usage of extended
functionality, which wouldn't necessarily be supported by a different
subclass.
By making the signatures deliberately match, we can use PyLint to ensure
the signatures don't accidentally differ.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Update 'run' to match the base class. This ensures that it is a fully
substitutable sub-class.
Introduce 'run_project_config' to allow explicit usage of extended
functionality, which wouldn't necessarily be supported by a different
subclass.
By making the signatures deliberately match, we can use PyLint to ensure
the signatures don't accidentally differ.
Since we're already relying on `kwargs['project']` succeeding, enforce
that run_project_config() only takes keyword arguments.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Update import_single_file and export_to_tar to match the Directory base
class. This ensures that FileBasedDirectory is a fully substitutable
Directory.
By making the signatures deliberately match, we can use PyLint to ensure
the signatures don't accidentally differ.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Update import_single_file and list_relative_paths to match the Directory
base class. This ensures that CasBasedDirectory is a fully substitutable
Directory.
By making the signatures deliberately match, we can use PyLint to ensure
the signatures don't accidentally differ.
|
| |
| |
| |
| |
| |
| |
| | |
Update signatures of SafeHardlinkOps methods to match the
fuse.Operations base class. This helps ensure there's no confusion about
what the arguments are for, and that SafeHardlinkOps can actually be
substituted for any other Operations subclass.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Make the base-class fuse.Operations class match the subclass
SafeHardlinkOps.
Remove the complication of worrying about raw_fi mode - we already
rely on it being inactive.
Remove ambiguity from FUSE.create() - we only support the non-raw_fi
case. In separate work, we may want to remove raw_fi completely.
Update Operations.create() to use a 'flags' param explicitly, rather
than the more confusing dual-meaning of the 'fi' param.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Get consistency between the Operations base class and the
SafeHardlinkOps subclass.
Use the 'target, source' convention as it appears in Operations.
This avoids the confusion of 'target' changing meaning in the
'name, target' convention introduced by SafeHardlinkOps. The naming is
also consistent with 'man ln', and more consistent with Python's
equivalent functions.
Unfortunately FUSE.link() and Operations.link() swap the order of
'target' and 'source', but the meaning is the same.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
PyLint helpfully points out that _GitMirror.fetch() does not match
SourceFetcher.fetch() - it is missing the *kwargs argument. The same for
_GitSourceBase.track().
Move towards being able to enable the 'arguments-differ' error faster
by side-stepping the class design debate and ignoring the error for now.
Change _GitSourceBase.set_ref() argument names to match
Source.set_ref().
|
|/
|
|
|
|
|
|
|
| |
Make the signature of LogFile.render() match Widget.render() by making a new
LogFile.render_abbrev() method with the extra functionality. Fix up the
single call site to use that instead.
This means that we won't get linter warnings that helpful inform us that
Widgets are not really substitutable.
|
|\
| |
| |
| |
| | |
_platform.get_cpu_count: use psutil instead of os
See merge request BuildStream/buildstream!1394
|
|/
|
|
|
|
|
|
| |
Be Windows-friendly by using the portable
`psutil.Process().cpu_affinity()` instead of `os.sched_getaffinity`.
Note that unfortunately this still doesn't work on Mac, so we keep that
platform-specific override.
|
|\
| |
| |
| |
| | |
tests/frontend/pull.py: Fix typo
See merge request BuildStream/buildstream!1404
|
|/ |
|
|\
| |
| |
| |
| | |
Make ErrorDomain a unique enumeration
See merge request BuildStream/buildstream!1399
|
|/
|
|
|
|
|
|
| |
For some reason PROG_NOT_FOUND and APP were both under 12 which could be
confusing. Changed PROG_NOT_FOUND to 16 and added a unique decorator to
prevent this from happening again.
Updated shellbuildtrees test to check correct error domain.
|
|\
| |
| |
| |
| | |
_scheduler/scheduler.py: Remove unused elapsed_time() calls
See merge request BuildStream/buildstream!1398
|