You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildstream.apache.org by ju...@apache.org on 2021/03/04 13:11:37 UTC

[buildstream] branch juerg/remote-cache updated (425e8dc -> 85f4e6e)

This is an automated email from the ASF dual-hosted git repository.

juergbi pushed a change to branch juerg/remote-cache
in repository https://gitbox.apache.org/repos/asf/buildstream.git.


    omit 425e8dc  _sandboxremote.py: Make storage-service optional with remote cache
    omit 802f4f8  _context.py: Add support for remote-cache configuration
    omit e17157f  _cas: Add support for remote cache
    omit 206dbe0  Use CASCache.open()
    omit fa3018c  cascache.py: Add open() method
    omit 0ca4e53  cascache.py: Generalize remote_missing_blobs() into missing_blobs()
    omit c17c987  cascache.py: Optimize _fetch_tree() using add_objects()
    omit 5bc8122  cascache.py: Add add_objects() method
    omit d229eb5  cascache.py: Remove unused parameters from add_object()
    omit 9a7d796  cascache.py: Remove _ensure_blob() method
    omit 0a0573f  cascache.py: Also fetch file blobs in _fetch_directory()
    omit 1839329  cascache.py: Reimplement _fetch_directory() with FetchTree()
    omit 87975ab  Move _reachable_refs_dir() method from cascache.py to testutils
    omit bded35e  _sandboxremote.py: Drop unused output_files_required parameter
    omit 87e93c1  Always require artifact files
    omit 613ae89  Drop pull-artifact-files config option for remote execution
    omit 2bc6fd0  element.py: Move get_logs() to internal API
    omit 5ef4aba  Call _initialize_state() in Element._new_from_load_element()
    omit 7079ac7  Move artifact cache query to pull job
    omit 94a1fb4  Always schedule pull job
    omit b6bf642  _artifact.py: Add cached and strong_key parameters to set_cached()
    omit a3a794f  Move source cache query to fetch job
    omit 6d3518a  _stream.py: Add query_cache() method
    omit 23045bc  _elementsources.py: Make cache query explicit
    omit de981f9  _artifact.py: Make cache query explicit
    omit e9f34da  _pipeline.py: Drop the optimization for cached elements in the planner
    omit 17c3ee5  fetchqueue.py: Don't skip elements with a cached failure
    omit 9f2370e  tests/internals/pluginloading: Add missing get_ref() to FooSource
    omit 97fc9dd  tests/frontend/push.py: Allow pushing of dependencies
     add 57beae4  job.py: Remove the ability to send child data to the parent
     add 79d1eca  job.py: Stop sending the result from a job through the pipe
     add ded144e  job.py: Stop sending errors through the child-parent pipe, and set it directly
     add 3f07e60  job.py: Simplify handling of messages through the parent-child pipe
     add 5f68adb  Merge branch 'bschubert/optimize-job' into 'master'
     add 4828aa3  _yaml.pyi: Adding declaration for _yaml.load()
     add f10feb3  node.pyi: Adding missing forward declarations
     add 3fa8d74  sandbox/_config.py, element.py: Refactor SandboxConfig
     add 548b23d  _protos: Regenerated protos for artifact proto update
     add 965da0a  _artifact.py: Store additional metadata on the artifact
     add 837acb9  _artifactcache.py: Fixed logging messages to display cache keys
     add fd298b1  element.py: Added missing api doc comment for _walk_artifact_files()
     add 85bc237  _stream.py: Add _load_artifacts() here
     add 5352d7b  _stream.py: Centralize application state cleanup
     add 5ace573  _project.py, _artifactproject.py: Adding ArtifactProject
     add f9cf2e5  _artifact.py: Added properties for cache key access
     add 83ca987  Refactor ArtifactElement instantiation
     add 69e89fa  tests/integration/artifact.py: Test preservation of environment variables
     add 7f69411  Merge branch 'tristan/refactor-artifact-elements' into 'master'
     add 60fd8c3  requirements: Update all requirements
     add 642e423  Merge branch 'bschubert/coverage' into 'master'
     add 2b9fbf3  _context.py: don't delete bst1 extract directory
     add b6ea793  Merge branch 'abderrahim/no-delete-extract' into 'master'
     add c493a99  .gitlab-ci.yml: Disable parallel testing on centos-7.7 and ubuntu-18.04
     add 47ef74f  Merge branch 'juerg/ci' into 'master'
     add c35f843  Move _reachable_refs_dir() method from cascache.py to testutils
     add b480a2a  cascache.py: Reimplement _fetch_directory() with FetchTree()
     add 0b5155e  cascache.py: Also fetch file blobs in _fetch_directory()
     add 1029ea0  cascache.py: Remove _ensure_blob() method
     add 1c8e13c  cascache.py: Remove unused parameters from add_object()
     add 604fa06  cascache.py: Add add_objects() method
     add 698330a  cascache.py: Optimize _fetch_tree() using add_objects()
     add 8c69767  cascache.py: Generalize remote_missing_blobs() into missing_blobs()
     add a501b0e  cascache.py: Add open() method
     add c836b7b  Use CASCache.open()
     add 2704394  Merge branch 'juerg/cas' into 'master'
     add f9ac481  _state.py: Rename _Task -> Task
     add cbc8e78  Refactor: Use explicit invocation for retrying jobs.
     add 4c7656f  _state.py: Full type hinting
     add ae3344b  Merge branch 'tristan/refactor-retry-task' into 'master'
     add 766330f  doc/source/format_declaring.rst: Minor corrections and added references.
     add fe6523a  doc: Documenting "artifact names".
     add 61cc93d  plugins/elements/stack.py: Require all dependencies be build & run.
     add 0b94cd1  NEWS: Document breaking change, stack element dependencies must be build + run
     add 091c9c8  tests/format/stack.py: Test stack dependency types
     add 75eb8c1  Merge branch 'tristan/stack-require-depends-all' into 'master'
     add 66120e6  _stream.py, _frontend/widget.py: Fix weird hack
     add 2e4800f  Merge branch 'tristan/fix-artifact-name-hack' into 'master'
     add e35c19d  .gitlab-ci.yml: No need special runner for cached overnigth test
     add 5987418  Merge branch 'jjardon/bst_master_fix_overnigth' into 'master'
     add 95c3330  _stream.py: Added missing machine readable error codes
     add 98c8070  testing/runcli.py: Create the directory in Cli() __init__()
     add 9a12438  testing/__init__.py: Expose the Cli() instance
     add 6ea7077  testutils/__init__.py: Expose the internal ArtifactShare object
     add 20529b0  tests/integration/shellbuildtrees.py: Use module scope fixtures and parametrize
     add ba5664f  Merge branch 'tristan/refactor-shell-builtree-tests' into 'master'
     add a15c16c  _messenger.py: Adding (almost) full pep484 type annotations.
     add dc49eb8  _messenger.py: Adding convenience methods for issuing info and warn messages
     add 23b2ff1  _stream.py: Remove private _message() function
     add 0f658ee  _pipeline.py: Remove private _message() function
     add 6a703cd  _assetcache.py: Remove private _message() function
     add 54e59c0  _cas/casdprocessmanager.py: Use Messenger convinence functions.
     add 50c0e9c  _project.py: Use Messenger convenience functions
     add 4252f55  _loader/loader.py: Use Messenger convenience functions
     add cd5a8ef  _scheduler/scheduler.py: Use Messenger convenience functions
     add 7e76770  _pluginfactory/pluginfactory.py: Use Messenger convenience functions
     add 7eb616f  sandbox/sandbox.py: Use Messenger convenience functions
     add 90112aa  sandbox/_sandboxremote.py: Use Messenger convenience functions
     add ad4cbd3  sandbox/_sandboxbuildboxrun.py: Use Messenger conveinence functions
     add 096c729  Merge branch 'tristan/messenger-convenience-functions' into 'master'
     add 5a004b8  tests/frontend/push.py: Fix fallout from recent tests
     add 6904c13  Merge branch 'tristan/fix-broken-test' into 'master'
     add 73dde7d  tests/internals/pluginloading.py: Removed test
     add 24680e5  _stream.py: Add internal _resolve_remotely_cached()
     add 1d7acf2  _stream.py: Added internal _load_elements()
     add d3b6e9d  _stream.py: Add internal _resolve_elements()
     add 8c38451  _stream.py: Added internal _track_cross_junction_filter()
     add 5bf376f  _stream.py: Don't use Pipeline.add_elements()
     add fab2c73  _pipeline.py: Remove check_remotes()
     add 8fbfc4b  _pipeline.py: Remove load() method
     add 2c1bb09  _pipeline.py: Remove resolve_elements().
     add bcb339d  _pipeline.py: Remove track_cross_junction_filter()
     add 082a5ca  _pipeline.py: Remove add_elements()
     add 5ccacfc  _pipeline.py/_stream.py: Remove Pipeline object
     add 74833a7  Merge branch 'tristan/dissolve-pipeline' into 'master'
     add 32b155c  .asf.yaml: Adding initial github configuration
     add 1d8f470  .asf.yaml: Unprotecting branches until migration is complete
     add 9fd8558  Test Actions
     add 42d13b7  Remove notes
     add 0b187c8  Move CI_IMAGE to global scope
     add 23e2af9  Add no-usedevelop job
     add be8b9e5  Add tests-plugins-master job
     add bd3a7f3  Add missing-deps test job
     add a4e0056  Move PYTEST_ARGS to top-level env
     add b7c4258  .github/workflows/ci.yml: Use fresh docker images
     add 44ff8e1  .github/workflows/ci.yml: Fix TOXENV, there is no py6-plugins env.
     add 43b9284  .github/workflows/ci.yml: Add py38 to the toxenv list
     add 944d22e  .github/workflows/ci.yml: Disable parallelism in pytest
     add 41d3fe5  .github/workflows/ci.yml: Generate test runner script
     add af87b46  .github/workflows/ci.yml: Upload an artifact from the docs job
     add bf48af7  .github/workflows/ci.yml: Ensure we rebuild the docs sessions in CI
     add 51acea3  .github/workflows/release.yml: Add release.yml workflow for uploading releases
     add e52715c  .github/workflows/merge.yml: Publish docs post merge
     add 6faceda  Fixing merge CI to update github pages
     add 33aae13  .github/workflows/merge.yml: Generate the gh-pages branch with .nojekyll
     add a74dcb4  .github/workflows/ci.yml: Checkout using tags
     add e1b96c1  _types.pyx: Fixing new error from updated sphinx
     add ee9cf3a  .asf.yaml: Enable publishing master docs to github pages
     add cd2f743  Removing all traces of gitlab metadata
     add 1000229  BuildStream.doap: Remove BuildStream.doap
     add b8736e4  CONTRIBUTING.rst: Updating some references to gitlab
     add 91c6dce  COMMITTERS.rst: s/gitlab/github
     add ccd03ee  doc/source/arch_sandboxing.rst: s/gitlab/github
     add 2440543  doc/source/additional_docker.rst: s/gitlab/github
     add 044c917  doc/source/hacking/ui.rst: s/gitlab/github
     add 24bfee7  doc/source/main_install.rst: s/gitlab/github
     add c02e5c1  docs examples: s/gitlab/github
     add 7bbed2e  .github/workflows/ci.yml: Enable CI to run on pull request events.
     add 1d669eb  .github/workflows/ci.yml: Enhance CI run conditions
     add 00a339c  .github/CODEOWNERS: Added the CODEOWNERS file
     add 9cb0e58  .asf.yaml: Testing protection of multiple branches
     add 459fcd4  .asf.yaml: Testing protected branches with dictionary
     add 7e78955  .asf.yaml: Test removing review requirement
     add 0470fdc  .github/workflows/merge.yml: Publish docs in the docs/ subdirectory
     add 6f603d7  .github/workflows/merge.yml: Fix tab errors in previous commit
     add 20add16  .github/workflows/merge.yml: Fix publishing of docs tarball.
     add f0a0ffd  .asf.yaml: Configure pages to be published from /docs
     add f1f4560  doc/badges.py: Adjustment of badge generation
     add aeb7a8d  doc/badges.py: Adding staticly generated HTML page for automated redirects.
     add 8cad3f2  ci: Simplify pipelines using Docker Compose
     add 58fc11c  ci: Enable parallelism for tests
     add a666b0f  Merge pull request #1441 from apache/chandan/compose
     add 8cbbeb1  .asf.yaml: Redirect notifications to the commit list
     add ed48d1b  .github/common.env: Defining TOXENV candidates here
     add 517e7b3  .github/compose/ci.docker-compose.yml: Minor refactoring here
     add e087c8a  .github: Added remote execution CI
     add 443d3ba  Merge pull request #1444 from apache/tristan/remote-execution-testing
     add b51aa86  .github: Refactor how we run the remote execution test
     add 835c4b4  .github: Revived remote cache testing
     add 7e52067  Merge pull request #1445 from apache/tristan/remote-cache-testing
     add e8de0d5  _assetcache.py: Allow explicit re-initialization of remotes.
     add 8171596  element.py: Added internal API _mimic_artifact()
     add ab8f1dc  _artifactelement.py: Override _pull_done()
     add 432c195  _stream.py: Pre-emptive pulling of artifact metadata in some cases
     add 43c8206  _stream.py: Added new _reset() function.
     add 33a5107  tests/frontend/artifact_pull.py: Test pulling artifacts with various deps options
     add 01af64a  tests/frontend/artifact_checkout.py: Test checking out remote artifacts
     add 89d3af2  Merge pull request #1433 from apache/tristan/fix-recursive-artifact-pull
     add 19cd578  Allow certain operations to work without loading a project
     add 1c648cf  tests/frontend/artifact_list_contents.py: Use parametrized tests
     add 4eb2c07  tests/frontend/artifact_list_contents.py: Test listing artifact content without a project
     add 953c0ee  tests/frontend/artifact_checkout.py: Test artifact checkout without project
     add 15f0301  tests/frontend/artifact_delete.py: Test artifact deletion without a project
     add 1e4a48a  tests/frontend/artifact_log.py: Test artifact log without a project
     add 724337b  tests/frontend/artifact_pull.py: Test artifact pull without a project
     add cc66f9e  tests/frontend/artifact_show.py: Test artifact show without a project
     add 7dd7690  Merge pull request #1442 from apache/tristan/optional-project
     add 0b1f29f  .github: Add fedora 33 to CI suite
     add 04ed272  .github: Stop testing against Fedora 31
     add e02af38  Merge pull request #1446 from apache/chandan/fedora-33
     add aa6feac  node.pyx: Fixed error reporting in SequenceNode.as_str_list()
     add b6ad110  node.pyx: Fix segfault when calling MappingNode.get_str_list() with default None
     add 88625fb  node.pyi: Adding some missing type annotations
     add 36594b6  node.pyx, node.pxd, node.pyi: Type checking in MappingNode.get_sequence()
     add 77b0114  tests/internals/yaml.py: Test error reporting of SequenceNode.as_str_list()
     add fbda86d  tests/internals/yaml.py: Test MappingNode.get_str_list() with default None
     add fcb7c8b  Merge pull request #1452 from apache/tristan/yaml-fixes
     add 6957eeb  Temporarily disabling notifications
     add 363ae31  Revert "Temporarily disabling notifications"
     add 93a7a3a  buildelement: switch order of timed_activity and sandbox.batch
     add 3c2cace  Merge pull request #1437 from abderrahim/context-manager-order
     add dd80e0f  .asf.yaml: Publish pages from root of the gh-pages branch
     add 3827f3b  .github/workflows/merge.yml: Refactor docs generation
     add 2d5d486  .github/workflows/merge.yml: Fix docs publishing
     add f26dcd8  .asf.yaml: Updating github metadata.
     add c04352b  .asf.yaml: Explicitly setting pages to publish from the "/"
     add f7f9c97  element.py: Remove local __remote_execution_specs instance variable
     add eda23aa  _remotespec.py: Moving RemoteSpec and RemoteExecutionSpec to its own file
     add 497e1ca  Remote execution can only be configured in user configuration
     add 8cfa27f  plugins/elements/junction.py: Remove ambiguous cache related junction parameters
     add a61f9f1  _remotespec.py: Modified format to put the certs in an "auth" dictionary.
     add b8d1de7  Refactor remote asset user configuration
     add 300e813  node.pyi: Fleshing out more type information about nodes.
     add fd51cf2  _context.py: Changed artifact and source cache configuration again.
     add e89a17a  _frontend/widget.py: Print remote execution setup and project cache servers
     add d1d9f33  NEWS: Document breaking change, removed support for deprecated RE config
     add 10ad071  NEWS: Documenting breaking change, redesign of remote cache configuration
     add 7a35498  doc: Redocumenting artifact/source cache servers.
     add c143131  Merge pull request #1434 from apache/tristan/change-remote-config
     add 5034c9c  .github/compose/ci.remote-execution.yml: Fix tests
     add a7fd921  Merge pull request #1444 from apache/tristan/fix-remote-execution-tests
     add 77f2f48  _frontend/cli.py: Removing support for deprecated commands.
     add b05dd1f  _remotespec.py: Adding RemoteSpec.new_from_string()
     add 4b90394  Moving HostMount from _project.py -> types.py
     add 97deb41  Moving some cython functions into _utils.pyx
     add d2c9c89  Support specifying remotes on the command line.
     add f0e2e79  doc: Documenting how to specify remotes on the command line.
     add a292743  NEWS: Updating with some new breaking changes
     add d4cb3be  Merge pull request #1438 from apache/tristan/remote-cli-options
     add 7fcb131  _context.py: Remote `prompt` as a valid configuration key
     add b646a8f  _frontend/widget.py: Format full element names in `bst show --format %{deps}`
     add 651bb00  doc/source/using_config.rst: Completely and thoroughly document user config.
     add aabb43e  src/buildstream/data/userconfig.yaml: Remove some comments.
     add 822b83f  Merge pull request #1442 from apache/tristan/user-config-docs
     add e66910d  _frontend/cli.py: Add `--except` option to `bst source push`
     add 9de6fb3  Merge pull request #1445 from apache/tristan/add-except-option
     add 4f617ed  doc/source/main_install.rst: Update BuildBox components to 0.0.38
     add 5ebe6ab  Merge pull request #1443 from apache/juerg/buildbox
     add 13ac060  _messenger.py: Add a hook to explicitely start a new action context
     add a05e05a  job.py: Stop using the queue to send data between the child and parent
     add fa32cda  job.py: Completely remove the pipe between child and parent process
     add e429656  Merge pull request #1447 from apache/bschubert/remove-pipe-job
     add dc490ea  tests/frontend/push.py: Allow pushing of dependencies
     add 3a1ba18  fetchqueue.py: Don't skip elements with a cached failure
     add 6f47bd2  _pipeline.py: Drop the optimization for cached elements in the planner
     add 0efd0c0  _artifact.py: Make cache query explicit
     add c408501  _elementsources.py: Make cache query explicit
     add 73eaae8  element.py: Combine cache query and pull into `_load_artifact()`
     add 54e9ff0  Use _load_artifact() for ArtifactElement
     add b7ff365  Move artifact and source cache query trigger to Stream class
     add e01068c  Call _initialize_state() in Element._new_from_load_element()
     add 851d2be  _artifact.py: Add cached and strong_key parameters to set_cached()
     add af84f15  element.py: Move get_logs() to internal API
     add a36a383  Drop pull-artifact-files config option for remote execution
     add a71e63e  Always require artifact files
     add c5a5d7d  _sandboxremote.py: Drop unused output_files_required parameter
     add b4b2fb6  _cas: Add support for remote cache
     add d2e404c  _context.py: Add support for remote-cache configuration
     add 160c666  _sandboxremote.py: Make storage-service optional with remote cache
     add 6a97826  _scheduler: Add CacheQueryQueue to support cache query in job threads
     add 85f4e6e  _stream.py: Parallelize cache queries if a remote cache is configured

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (425e8dc)
            \
             N -- N -- N   refs/heads/juerg/remote-cache (85f4e6e)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .asf.yaml                                          |   58 +
 .github/CODEOWNERS                                 |    6 +
 .github/common.env                                 |    6 +
 .../compose/buildbarn-config}/asset.jsonnet        |    0
 .../compose/buildbarn-config}/storage.jsonnet      |    0
 .../compose/ci.buildbarn-remote-cache.yml          |   12 +-
 .../compose/ci.buildstream-remote-cache.yml        |    4 +-
 .github/compose/ci.docker-compose.yml              |  112 ++
 .../compose/ci.remote-execution.yml                |   10 +-
 .github/workflows/ci.yml                           |  153 +++
 .github/workflows/merge.yml                        |   86 ++
 .github/workflows/release.yml                      |   40 +
 .gitlab-ci.yml                                     |  464 --------
 .gitlab/CODEOWNERS                                 |    4 -
 .gitlab/issue_templates/bst_bug.md                 |   38 -
 .gitlab/issue_templates/bst_task.md                |   19 -
 .../merge_request_templates/bst_merge_request.md   |   19 -
 .../merge_request_templates/stale_MR_message.md    |   11 -
 .pylintrc                                          |    6 +-
 BuildStream.doap                                   |   32 -
 COMMITTERS.rst                                     |    4 +-
 CONTRIBUTING.rst                                   |   75 +-
 NEWS                                               |   21 +
 README.rst                                         |    4 +-
 doc/Makefile                                       |    4 +-
 doc/badges.py                                      |   45 +-
 doc/source/additional_docker.rst                   |    7 +-
 doc/source/arch_sandboxing.rst                     |    6 +-
 doc/source/developing/strict-mode.rst              |    2 +-
 doc/source/developing/workspaces.rst               |    2 +-
 doc/source/examples/flatpak-autotools.rst          |    4 +-
 doc/source/format_declaring.rst                    |   10 +-
 doc/source/format_project.rst                      |  162 +--
 doc/source/hacking/ui.rst                          |    9 +-
 doc/source/handling-files/composition.rst          |    2 +-
 doc/source/handling-files/filtering.rst            |    2 +-
 doc/source/handling-files/overlaps.rst             |    2 +-
 doc/source/junctions/junction-elements.rst         |    4 +-
 doc/source/junctions/junction-includes.rst         |    2 +-
 doc/source/junctions/junction-workspaces.rst       |    2 +-
 doc/source/main_glossary.rst                       |    4 +
 doc/source/main_install.rst                        |   19 +-
 doc/source/tutorial/autotools.rst                  |    2 +-
 doc/source/tutorial/directives.rst                 |    2 +-
 doc/source/tutorial/first-project.rst              |    2 +-
 doc/source/tutorial/integration-commands.rst       |    4 +-
 doc/source/tutorial/running-commands.rst           |    2 +-
 doc/source/using_commands.rst                      |   94 ++
 doc/source/using_config.rst                        | 1113 +++++++++++++++++---
 doc/source/using_configuring_cache_server.rst      |   57 +-
 requirements/cov-requirements.txt                  |   16 +-
 requirements/dev-requirements.txt                  |   20 +-
 requirements/requirements.txt                      |   16 +-
 setup.py                                           |    2 -
 src/buildstream/_artifact.py                       |  180 +++-
 src/buildstream/_artifactcache.py                  |   61 +-
 src/buildstream/_artifactelement.py                |  121 +--
 src/buildstream/_artifactproject.py                |   88 ++
 src/buildstream/_assetcache.py                     |  432 +++-----
 src/buildstream/_cas/cascache.py                   |    4 +-
 src/buildstream/_cas/casdprocessmanager.py         |   21 +-
 src/buildstream/_cas/casremote.py                  |   12 +-
 src/buildstream/_context.py                        |  407 +++++--
 src/buildstream/_elementsources.py                 |   25 +-
 src/buildstream/_elementsourcescache.py            |   13 +-
 src/buildstream/_frontend/app.py                   |   27 +-
 src/buildstream/_frontend/cli.py                   |  422 +++++---
 src/buildstream/_frontend/widget.py                |  106 +-
 src/buildstream/_loader/_loader.pyi                |    1 -
 src/buildstream/_loader/_loader.pyx                |   52 -
 src/buildstream/_loader/loader.py                  |    9 +-
 src/buildstream/_messenger.py                      |  283 +++--
 src/buildstream/_pipeline.py                       |  613 +++++------
 src/buildstream/_platform/platform.py              |    2 +-
 src/buildstream/_pluginfactory/pluginfactory.py    |    5 +-
 src/buildstream/_pluginfactory/pluginoriginpip.py  |    7 +-
 src/buildstream/_project.py                        |  269 ++---
 .../bazel/remote/asset/v1/remote_asset_pb2.py      |   90 +-
 .../bazel/remote/asset/v1/remote_asset_pb2_grpc.py |   17 +-
 .../remote/execution/v2/remote_execution_pb2.py    |  409 ++++---
 .../execution/v2/remote_execution_pb2_grpc.py      |   28 +-
 .../_protos/build/bazel/semver/semver_pb2.py       |   12 +-
 .../_protos/build/bazel/semver/semver_pb2_grpc.py  |    1 +
 .../_protos/build/buildgrid/local_cas_pb2.py       |  145 ++-
 .../_protos/build/buildgrid/local_cas_pb2_grpc.py  |   40 +-
 .../_protos/buildstream/v2/artifact.proto          |   19 +
 .../_protos/buildstream/v2/artifact_pb2.py         |   79 +-
 .../_protos/buildstream/v2/artifact_pb2_grpc.py    |    1 +
 .../_protos/buildstream/v2/buildstream_pb2.py      |   29 +-
 .../_protos/buildstream/v2/buildstream_pb2_grpc.py |   18 +-
 .../_protos/buildstream/v2/source_pb2.py           |    8 +-
 .../_protos/buildstream/v2/source_pb2_grpc.py      |    1 +
 .../_protos/google/api/annotations_pb2.py          |    5 +-
 .../_protos/google/api/annotations_pb2_grpc.py     |    1 +
 src/buildstream/_protos/google/api/http_pb2.py     |   36 +-
 .../_protos/google/api/http_pb2_grpc.py            |    1 +
 .../_protos/google/bytestream/bytestream_pb2.py    |   37 +-
 .../google/bytestream/bytestream_pb2_grpc.py       |   10 +-
 .../_protos/google/longrunning/operations_pb2.py   |   46 +-
 .../google/longrunning/operations_pb2_grpc.py      |   13 +-
 src/buildstream/_protos/google/rpc/code_pb2.py     |   55 +-
 .../_protos/google/rpc/code_pb2_grpc.py            |    1 +
 src/buildstream/_protos/google/rpc/status_pb2.py   |   10 +-
 .../_protos/google/rpc/status_pb2_grpc.py          |    1 +
 src/buildstream/_remote.py                         |  212 +---
 src/buildstream/_remotespec.py                     |  496 +++++++++
 src/buildstream/_scheduler/__init__.py             |    1 +
 src/buildstream/_scheduler/jobs/_job.pyi           |    1 -
 src/buildstream/_scheduler/jobs/_job.pyx           |   15 -
 src/buildstream/_scheduler/jobs/elementjob.py      |    9 -
 src/buildstream/_scheduler/jobs/job.py             |  250 +----
 .../queues/{pullqueue.py => cachequeryqueue.py}    |   52 +-
 src/buildstream/_scheduler/queues/fetchqueue.py    |   24 +-
 src/buildstream/_scheduler/queues/pullqueue.py     |   40 +-
 src/buildstream/_scheduler/queues/queue.py         |   15 +-
 src/buildstream/_scheduler/scheduler.py            |   19 +-
 src/buildstream/_sourcecache.py                    |   15 +-
 src/buildstream/_state.py                          |  361 ++++---
 src/buildstream/_stream.py                         |  938 ++++++++++++-----
 src/buildstream/_types.pyx                         |    2 +-
 src/buildstream/_utils.pyi                         |    2 +
 src/buildstream/_utils.pyx                         |   50 +
 src/buildstream/_versions.py                       |    2 +-
 src/buildstream/_workspaces.py                     |   10 +-
 src/buildstream/_yaml.pyi                          |    8 +-
 src/buildstream/buildelement.py                    |    2 +-
 src/buildstream/data/userconfig.yaml               |   55 +-
 src/buildstream/element.py                         |  369 ++++---
 src/buildstream/node.pxd                           |    2 +-
 src/buildstream/node.pyi                           |  103 +-
 src/buildstream/node.pyx                           |   82 +-
 src/buildstream/plugins/elements/junction.py       |   13 +-
 src/buildstream/plugins/elements/stack.py          |   95 +-
 src/buildstream/sandbox/_config.py                 |  131 ++-
 src/buildstream/sandbox/_sandboxbuildboxrun.py     |    7 +-
 src/buildstream/sandbox/_sandboxremote.py          |  206 +---
 src/buildstream/sandbox/sandbox.py                 |    9 +-
 src/buildstream/testing/__init__.py                |    2 +-
 src/buildstream/testing/_sourcetests/track.py      |    2 +-
 src/buildstream/testing/runcli.py                  |   11 +-
 src/buildstream/types.py                           |   22 +-
 tests/artifactcache/capabilities.py                |    6 +-
 tests/artifactcache/config.py                      |  130 +--
 tests/artifactcache/junctions.py                   |  159 +--
 tests/artifactcache/pull.py                        |   15 +-
 tests/artifactcache/push.py                        |   27 +-
 tests/cachekey/project/elements/build1.expected    |    2 +-
 tests/cachekey/project/elements/build2.expected    |    2 +-
 tests/cachekey/project/elements/build3.expected    |    2 +-
 tests/cachekey/project/elements/compose1.expected  |    2 +-
 tests/cachekey/project/elements/compose2.expected  |    2 +-
 tests/cachekey/project/elements/compose3.expected  |    2 +-
 tests/cachekey/project/elements/compose4.expected  |    2 +-
 tests/cachekey/project/elements/compose5.expected  |    2 +-
 tests/cachekey/project/elements/import1.expected   |    2 +-
 tests/cachekey/project/elements/import2.expected   |    2 +-
 tests/cachekey/project/elements/import3.expected   |    2 +-
 tests/cachekey/project/elements/script1.expected   |    2 +-
 tests/cachekey/project/sources/bzr1.expected       |    2 +-
 tests/cachekey/project/sources/git1.expected       |    2 +-
 tests/cachekey/project/sources/git2.expected       |    2 +-
 tests/cachekey/project/sources/git3.expected       |    2 +-
 tests/cachekey/project/sources/local1.expected     |    2 +-
 tests/cachekey/project/sources/local2.expected     |    2 +-
 tests/cachekey/project/sources/patch1.expected     |    2 +-
 tests/cachekey/project/sources/patch2.expected     |    2 +-
 tests/cachekey/project/sources/patch3.expected     |    2 +-
 tests/cachekey/project/sources/pip1.expected       |    2 +-
 tests/cachekey/project/sources/remote1.expected    |    2 +-
 tests/cachekey/project/sources/remote2.expected    |    2 +-
 tests/cachekey/project/sources/tar1.expected       |    2 +-
 tests/cachekey/project/sources/tar2.expected       |    2 +-
 tests/cachekey/project/sources/zip1.expected       |    2 +-
 tests/cachekey/project/sources/zip2.expected       |    2 +-
 tests/cachekey/project/target.expected             |    2 +-
 .../dependencies1/elements/builddep-list.bst       |    4 +-
 .../format/dependencies1/elements/list-combine.bst |    2 +-
 .../dependencies1/elements/runtimedep-list.bst     |    4 +-
 tests/format/project.py                            |    7 +-
 tests/format/stack.py                              |   22 +
 .../stack/elements/build-only-stack.bst}           |    2 +-
 tests/format/stack/elements/dependency.bst         |    2 +
 .../stack/elements/runtime-only-stack.bst}         |    3 +-
 tests/format/{dependencies1 => stack}/project.conf |    0
 tests/frontend/artifact_checkout.py                |   84 ++
 tests/frontend/artifact_delete.py                  |   11 +-
 tests/frontend/artifact_list_contents.py           |  107 +-
 tests/frontend/artifact_log.py                     |   34 +-
 tests/frontend/artifact_pull.py                    |   83 ++
 tests/frontend/artifact_show.py                    |   11 +-
 tests/frontend/buildcheckout.py                    |    9 +-
 tests/frontend/completions.py                      |   13 +-
 .../default-target/elements/dummy_stack.bst        |    2 +-
 tests/frontend/default_target.py                   |   46 +-
 tests/frontend/help.py                             |    4 +-
 tests/frontend/large_directory.py                  |    2 +-
 .../foo.bst => project/elements/target-import.bst} |    4 +
 tests/frontend/pull.py                             |   70 +-
 tests/frontend/push.py                             |  111 +-
 tests/frontend/remote-caches.py                    |    8 +-
 .../strict-depends/elements/non-strict-depends.bst |    2 +-
 .../strict-depends/elements/strict-depends.bst     |    2 +-
 tests/frontend/track.py                            |    2 +-
 tests/frontend/workspace.py                        |    2 +-
 tests/integration/artifact.py                      |   81 +-
 tests/integration/cachedfail.py                    |    8 +-
 .../project/elements/compose/test-integration.bst  |    2 +-
 .../elements/{integration.bst => echo-env-var.bst} |    3 +-
 .../project/elements/echo-target.bst}              |    2 +-
 tests/integration/project/project.conf             |    2 +
 tests/integration/pullbuildtrees.py                |   16 +-
 tests/integration/shell.py                         |    4 +-
 tests/integration/shellbuildtrees.py               |  459 ++++----
 tests/internals/cascache.py                        |   26 +-
 tests/internals/pluginloading.py                   |   38 -
 .../customelement/elements/simple.bst              |    4 -
 .../customelement/pluginelements/__init__.py       |    0
 .../customelement/pluginelements/foo.py            |   19 -
 .../pluginloading/customelement/project.conf       |    8 -
 .../pluginloading/customsource/elements/simple.bst |    6 -
 .../customsource/pluginsources/__init__.py         |    0
 .../customsource/pluginsources/foo.py              |   22 -
 .../pluginloading/customsource/project.conf        |    8 -
 tests/internals/yaml.py                            |   31 +
 tests/internals/yaml/list-of-dict.yaml             |    5 +
 tests/internals/yaml/list-of-list.yaml             |    3 +
 tests/remotecache/simple.py                        |    2 +-
 tests/remoteexecution/buildtree.py                 |    4 +-
 tests/sandboxes/remote-exec-config.py              |   63 +-
 .../missing-certs}/project.conf                    |    0
 tests/sourcecache/capabilities.py                  |   12 +-
 tests/sourcecache/fetch.py                         |   18 +-
 tests/sourcecache/push.py                          |   24 +-
 tests/sourcecache/staging.py                       |    6 +-
 tests/sourcecache/workspace.py                     |    6 +-
 tests/testutils/__init__.py                        |    2 +-
 236 files changed, 7335 insertions(+), 5305 deletions(-)
 create mode 100644 .asf.yaml
 create mode 100644 .github/CODEOWNERS
 create mode 100644 .github/common.env
 rename {.gitlab-ci/config => .github/compose/buildbarn-config}/asset.jsonnet (100%)
 rename {.gitlab-ci/config => .github/compose/buildbarn-config}/storage.jsonnet (100%)
 rename .gitlab-ci/buildbarn-remote-cache.yml => .github/compose/ci.buildbarn-remote-cache.yml (82%)
 rename .gitlab-ci/cache-server.yml => .github/compose/ci.buildstream-remote-cache.yml (82%)
 create mode 100644 .github/compose/ci.docker-compose.yml
 rename .gitlab-ci/buildgrid-remote-execution.yml => .github/compose/ci.remote-execution.yml (77%)
 create mode 100644 .github/workflows/ci.yml
 create mode 100644 .github/workflows/merge.yml
 create mode 100644 .github/workflows/release.yml
 delete mode 100644 .gitlab-ci.yml
 delete mode 100644 .gitlab/CODEOWNERS
 delete mode 100644 .gitlab/issue_templates/bst_bug.md
 delete mode 100644 .gitlab/issue_templates/bst_task.md
 delete mode 100644 .gitlab/merge_request_templates/bst_merge_request.md
 delete mode 100644 .gitlab/merge_request_templates/stale_MR_message.md
 delete mode 100644 BuildStream.doap
 create mode 100644 src/buildstream/_artifactproject.py
 delete mode 100644 src/buildstream/_loader/_loader.pyi
 delete mode 100644 src/buildstream/_loader/_loader.pyx
 create mode 100644 src/buildstream/_remotespec.py
 delete mode 100644 src/buildstream/_scheduler/jobs/_job.pyi
 delete mode 100644 src/buildstream/_scheduler/jobs/_job.pyx
 copy src/buildstream/_scheduler/queues/{pullqueue.py => cachequeryqueue.py} (53%)
 create mode 100644 tests/format/stack.py
 copy tests/{frontend/strict-depends/elements/non-strict-depends.bst => format/stack/elements/build-only-stack.bst} (62%)
 create mode 100644 tests/format/stack/elements/dependency.bst
 copy tests/{frontend/default-target/elements/dummy_stack.bst => format/stack/elements/runtime-only-stack.bst} (51%)
 copy tests/format/{dependencies1 => stack}/project.conf (100%)
 create mode 100644 tests/frontend/artifact_checkout.py
 create mode 100644 tests/frontend/artifact_pull.py
 copy tests/frontend/{logging/elements/foo.bst => project/elements/target-import.bst} (54%)
 copy tests/integration/project/elements/{integration.bst => echo-env-var.bst} (68%)
 copy tests/{format/project/empty-depends/manual.bst => integration/project/elements/echo-target.bst} (53%)
 delete mode 100644 tests/internals/pluginloading.py
 delete mode 100644 tests/internals/pluginloading/customelement/elements/simple.bst
 delete mode 100644 tests/internals/pluginloading/customelement/pluginelements/__init__.py
 delete mode 100644 tests/internals/pluginloading/customelement/pluginelements/foo.py
 delete mode 100644 tests/internals/pluginloading/customelement/project.conf
 delete mode 100644 tests/internals/pluginloading/customsource/elements/simple.bst
 delete mode 100644 tests/internals/pluginloading/customsource/pluginsources/__init__.py
 delete mode 100644 tests/internals/pluginloading/customsource/pluginsources/foo.py
 delete mode 100644 tests/internals/pluginloading/customsource/project.conf
 create mode 100644 tests/internals/yaml/list-of-dict.yaml
 create mode 100644 tests/internals/yaml/list-of-list.yaml
 copy tests/sandboxes/{missing-command => remote-exec-config/missing-certs}/project.conf (100%)