chore(release): 1.0.0-alpha.1 [skip ci]
# 1.0.0-alpha.1 (2025-01-21) ### Bug Fixes * allow files in labgrid_genrule's 'srcs' ([fe6666de](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/fe6666de1808e57481a54cd9535d64f0762e9349)) * bump minimum Bazel version to `7.4.0` ([ded9a866](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/ded9a8660c004f24db0af1977e7ab5d18d5c0f04)) * **config:** forward data runfiles ([122923ba](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/122923baeb356a70140642b129a4ec1a87ece8f6)) * **config:** split tools from data ([eab3953f](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/eab3953fb102a2043234d08701b1ab3956b0660f)) * **debian/launcher:** patch the ELF interpreter ([c13d3c2b](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/c13d3c2baad912877ed7b103d1844218580ccfe3)) * **debian/launcher:** return `RunEnvironmentInfo` ([132ec20a](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/132ec20abb9a83089e03fc6bcc8885b0db6aa0e7)) * **executor:** avoid setting empty LG_STATE ([6ac2640d](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/6ac2640d882feff85a3872c74d4cfd61a57afbc3)) * **executor:** catch `CalledProcessError` ([d8e89377](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/d8e89377a6c879e340c7aa703b4d969bf4f7029e)) * **executor:** catch `KeyboardInterrupt` ([6f2f5479](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/6f2f54792f6c6303ab4de3474c4eaaf60cec1ada)) * **executor:** reset RUNFILES_DIR ([ecf4ad16](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/ecf4ad16aebc9f31289f43cccdd012dd9e92b138)) * **executor:** use `[@rules](https://git.gitlab.arm.com/rules)_python#py_library` ([b9e5a75a](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/b9e5a75a6bec0420b473bd7da5c25fe4d666a3bf)) * **executor:** use `label.repo_name` ([227f5e90](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/227f5e908e270ca91723d4e18bf9d2dd0608edb4)) * **executor:** use `os.environ` as a basis for `env` ([f2d30c1b](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/f2d30c1ba5a0c1ed4b00f0d11e307bc0b6a7251f)) * **executor:** workaround running APE binaries ([27d2f038](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/27d2f0382bc6873021af02a5c6466f2bd189e2dc)) * fold `emulator` constraint setting onto `device` ([c55649b7](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/c55649b70b53c395142dc2fdfea6bca293c9c084)) * **genrule:** forward executor environment variables ([d31e01ff](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/d31e01ffff110290a2d658fd063bbcb28515bfdc)) * **genrule:** Include runfiles from binary ([660b0de2](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/660b0de2806f2bc514905da1276231e32a04c206)) * **genrule:** remove quoting of `$(OUTS)`/`$(SRCS)` ([f25ead68](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/f25ead68e872c35c68a210ca32b74b0efb0e4218)) * **genrule:** use the `default_shell_env` ([49dd3aa7](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/49dd3aa7453cb1b95d04b13304973b5426343f30)) * **labgrid_genrule:** use `@ape//ape:bash` target ([13189df7](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/13189df7544673fe3d7abed95a439d2680b090c4)) * make Python hub name unique ([25ef7842](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/25ef7842a20fe0ab558388114e08d088d4ec1301)) * permissions on qemu image resize ([58572662](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/58572662ddc08910c97f618042757bdfc7cfa82a)) * pin Debian cloud image version ([537ae9b4](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/537ae9b46b030c7703e457bc61c77284a21bfc87)) * **qemu:** set `TMPDIR` to writeable directory ([fed696f9](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/fed696f9080b16a11ef6a3e13da1ed3f9b9dd736)) * **QEMUStrategy:** add missing decorator ([cbb355ba](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/cbb355ba60a80803f05b2621359e57c2b4a3e850)) * return 'results.xml' if tests fail for 'labgrid_test' ([da39d6cf](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/da39d6cf985272ad613bfee0fe1bcb3198e11904)) * **run:** allow subprocesses to have their own runfiles ([b2537578](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/b25375784077bbe291b43e195c93a621f775f4c8)) * **run:** improve arg handling ([257abec8](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/257abec8dde188fe28ec580ab2c4cb9e2523a042)) * **run:** remove `BAZEL_GEN_DIR` base for `--get` ([0a5a4954](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/0a5a495448165b1528e0dae7db73184a6020b238)) * **Subprocess:** join `std{out,err}` lines ([a159d21c](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/a159d21c877d791558bad77967d088c7a0cd7294)) * **TemporaryDirectory:** correctly stringify paths and use tuples for commands ([be249f08](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/be249f08df8e29c2881cdf897e1c3a9458cb61f3)) * **TemporaryDirectory:** remove root on exceptions ([26085d32](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/26085d325dd7483fd75567c02d593fce9d50e3ff)) * **toolchain/executor:** correct resolved alias ([ba2ed3d6](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/ba2ed3d65104831c2485ad5a9601f17d96b85721)) * update LabGrid to `24.0a1` ([b850dbf5](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/b850dbf52adde4b6c6eaaef6a78d87b9dcf3574e)) * use hermetic OpenSSH tools ([5b35c0e0](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/5b35c0e0f531b88d5904db0fcbe321122d854c87)) ### chore * remove unused label ([bd1baa0c](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/bd1baa0cb455ee7ed841114ace7f0f6341eb048e)) ### Code Refactoring * **executor:** pass env vars in generic way ([ca2cd05f](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/ca2cd05f851659b06c0586409ee7eb2366a72cce)) * **executor:** return data rather than a `run` function ([44fb1041](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/44fb104140d7f99eb70915418e7d64341a7616ae)) * fold `labgrid_manager` into `labgrid_config` ([9bb71ee4](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/9bb71ee459e2394cc440227c6155b1e7562ef9e6)) * move `//labgrid/python` to `//labgrid:pkg` ([a4a9a153](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/a4a9a153e7c598143b5771c8e7b164fe22a1ab32)) * moving `labgrid/executor` Python targets to `bazel/labgrid/executor` ([b87d5201](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/b87d5201c3b6f9b4461e81619d019b9e1d0d828e)) * replace config manager with a passthrough ([3963acb1](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/3963acb1022ede9c8224c0dbca8fcdc7a6a3c056)) * **run_binary:** conform directory structure ([f2a29cac](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/f2a29cacdbd253dfc290ad3427bc320186ed8491)) ### Features * **//qemu/debian/image:** increase disk space ([66a982d4](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/66a982d4fb786477fa066092e14277572955f527)) * add `[@rules](https://git.gitlab.arm.com/rules)_labgrid//labgrid/exporter` target ([be5123c9](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/be5123c9966eec674d1f4afc6f23903b7320a134)) * add `//debian/{amd64,arm64}/qemu-system-{arm,x86}` targets ([9d5f4cab](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/9d5f4cab112d81e6db8ad9c81c09bd83f15c991b)) * add `//labgrid/toolchain/qemu-system:type` toolchain ([0650f378](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/0650f378c3fc611dbf26f724ed92da7929b929a7)) * add `executor` toolchain ([5938ce1e](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/5938ce1e6ec66ae10a60746d88fa67d5adc28050)) * add `labgrid_config_toolchain` ([044a11b5](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/044a11b59437caccea7c731b55b117f5b6aa73e3)) * add `labgrid_executor` macro ([7ed0a00b](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/7ed0a00bf6085456cd43fe666aa0e40f3b071cf8)) * add `labgrid_genrule` ([139ef983](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/139ef983f285783c5da6cf9b2ce577ead384f8ee)) * add `labgrid_transition` rule ([3e197419](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/3e197419286b40ce991db466587253ba462cdae6)) * add `labgrid-client` toolchain ([7eebd427](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/7eebd427208e263e906a2cebc839f1f1fb879ad5)) * add a LabGrid executor ([2bb5aa5a](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/2bb5aa5a16c01d3e9c1b8f3b9798c252fcd17cb2)) * add a labgrid_run_binary rule ([21194a2a](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/21194a2a349b445b4746cfe88ba201062494d8ca)) * add context manager for reserve and lock ([45504da5](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/45504da5b4f92407f62f2705575a0a8aab12c833)) * add emulator constraint for QEMU ([62234fa1](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/62234fa1d1370f0cb40d56aa650dd0e36b31dc54)) * add QEMU strategy ([216797ca](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/216797ca5714ab1ad9e8e2d081b5d7bf19cdd295)) * added semantic release to bazel template ([a8a66341](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/a8a663411461dfd66fcc36635b1659a1beb3bd6b)) * adds exec/target qemu toolchain configs ([4918c981](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/4918c981e9a5929b2d13d88909dae044c8f4b1f0)) * **config_toolchain:** accept state ([f8c321cd](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/f8c321cd951f447d5718a511ed81f46fdf34d0fc)) * **config_toolchain:** expose `env` and `data` ([e9113a17](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/e9113a17f64068f3ce32bf802b31b6e309e600f8)) * **config_toolchain:** support `toolchains` ([e3bb7a33](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/e3bb7a33c9914485b478e43456195c8a06785c1d)) * **config:** accept multiple managers ([d2aa4a85](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/d2aa4a85799d3bb9a57b6059fda368592801741b)) * **config:** remove to_list when merging default info ([140dba2b](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/140dba2bb368fe4198f72743a4aad5d00cbfd7b0)) * **config:** support `$(location)` for data lookup ([c6d9ff09](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/c6d9ff0995720d68bbfa11903202abb98ad7f2a3)) * create isolated remote execution root ([5c246606](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/5c246606370e302a8a9b180523eae06f3e4f8025)) * **debian/launcher:** bake environment variables ([7f4283e1](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/7f4283e10d41870a825fab844c42722ea0ec22d9)) * **debian/launcher:** create temporary directory ([099264d4](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/099264d4007b5db7a21a53785d8c2c0819cc2cc0)) * **debian:** use the debian snapshot archive as package backup ([6f511e15](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/6f511e150728a0723901d1945b084fa31579f69b)) * **e2e:** add QEMU test ([0fee819b](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/0fee819b13aa003df1db998406d1fbebd15d1b9e)) * **e2e:** Transfer runfiles alongside binary ([923feb9b](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/923feb9b2cb212238141e9a0815ab749e825788c)) * **e2e:** Use binary that needs runfiles ([21fbbb7a](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/21fbbb7a86a8bd780458920bf98a63d6d1a1cf44)) * **executor:** all `env` keywork ([240e8448](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/240e84484a0406aad66308f3f6dba716acd8a859)) * **executor:** load extra args from root-symlinked file ([f77f96c8](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/f77f96c8b08395a02c704a703ff2b2b6d1e8fead)) * expose LabGrid Python package ([1331f3c6](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/1331f3c62d7d18ab102cfc12cd15f08fc58b6707)) * generate a seed image ([9d24c4f5](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/9d24c4f5798b27e3c39ccb100ff9e9871eb7d1f2)) * **genrule:** accept optional platform attribute ([12dc5c65](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/12dc5c657d625e2bd9e4d1d451e1d6ce3f6ffed3)) * **genrule:** add `$(RULEDIR)`/`$D` Make variable ([a60fec2e](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/a60fec2e654e34a89cb943d7feeb226464f8f4e7)) * introduce labgrid_state ([5ac438be](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/5ac438be4a1a452f2597c3ef6fbdf13e4c391ac2)) * kill labgrid_run ([6d2a0768](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/6d2a0768233efdc35c51fb9a98242f1720d85064)) * **labgrid/executor:** read `args` from runfiles ([b867756b](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/b867756bc17367cf1615de596c0d608d6a506e45)) * provide `qemu-img` toolchain ([6b8d8d3c](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/6b8d8d3c7fde3a6d81858156d9a6ab808b61a458)) * provide a mock coordinator for testing ([45626566](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/456265669ced433548249c4e49d39ed98c88e086)) * provide QEMU platforms ([e414b8fa](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/e414b8fa903079e4a4c724aa2505f7f32fecc7da)) * provide toolchain for host machine ([69fc28e0](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/69fc28e08267b432b9c5da2334786172419e05f9)) * **qemu-system:** use consistent "Make" variable name ([c301b669](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/c301b6699a57456712dfece775c21e6e7578d516)) * **QEMUStrategy:** replace `accessible` with `shell` ([8d892075](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/8d892075491132a4fd27a5c850c59cfc56337aa6)) * **qemu:** update CloudVM to latest version ([870d7130](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/870d7130981b6cb1c58b061217fe7137d531c0fa)) * **qmeu:** add `//qemu/debian:image` target to download Debian CloudVM ([18ded763](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/18ded763d74aa7c77826d32661fbad06934a899e)) * register QEMU toolchain for `arm64` ([2974243f](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/2974243fbb7d05294d085f2dfa7505bf43cfb87a)) * replace SSH key with password authentication ([ac8e8031](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/ac8e8031729917ed6c427fe42c8c80856f6dadab)) * **run:** add env variable passing ([9e797288](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/9e79728824a297110e22900ada698828eaddb0b4)) * **run:** add logging ([becce69f](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/becce69f2ee92842ac9d88a3be3a2cf8690f6fa2)) * **run:** allow optional platform transition ([43294378](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/43294378b269348f898430e0cf80d3d260036854)) * **run:** create macro to encapsulate SSH logic ([9eed0d28](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/9eed0d289689c49a1b49ce720bb9e2bcb353d8d8)) * **run:** do strategy clean-up at the end ([f05c0f8e](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/f05c0f8e8648808c472ab808d05bd86fd77d8a66)) * **run:** support transferring files back ([ba3579e5](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/ba3579e5793e5a0a54af75e8e203011f6bd893fe)) * **run:** use strategy from config ([5a954c11](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/5a954c11c2929bf436da77d7c454ac9cf195cec7)), closes [/github.com/labgrid-project/labgrid/blob/6b541210c6063e97d81e257d2d6bda1444d9ec78/labgrid/remote/client.py#L800](https://git.gitlab.arm.com//github.com/labgrid-project/labgrid/blob/6b541210c6063e97d81e257d2d6bda1444d9ec78/labgrid/remote/client.py/issues/L800) * support generic device constraints ([d8bbbd67](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/d8bbbd672155ed658630132f1d9cd20faf14d553)) * support parallel execution in QEMU toolchains ([cc33fd5f](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/cc33fd5f5bf52cc704f9c8e27f51d8fad80bf3e7)) * **test:** allow running test executables on the device ([265e22c9](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/265e22c94a78bdce07cdd895be8086b796288309)) * **transition:** remove rule ([518bc30c](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/518bc30c234b18ae23b51dfc664289b1f0be7ebc)) ### Performance Improvements * **qemu:** enable virtualization on `arm64` ([1abc3e1c](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/1abc3e1cf03b035c3fe18ba3ea65f4930e7e38e0)) * **qemu:** increase number of vCPUs for `arm64` ([d9406f90](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/d9406f90462a8b15dc4e93fb0f13a700be55d217)) * **qemu:** use `virtio-net-pci` on `arm64` ([917bb0fa](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/917bb0fa393e14df5f8afc1058cc41013484534c)) * **qemu:** use faster pointer authentication algorithm on `arm64` ([397fea8f](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/397fea8fb51927c514fddf5dfc3391e4cb74e464)) ### Reverts * **qemu:** temporarily remove `arm64` test ([ff63d598](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/ff63d598785df43bd8aec9ea538b4d74ba1ae15b)) * use custom image with SSH and Bazelisk ([ef5993bb](https://git.gitlab.arm.com/bazel/rules_labgrid/commit/ef5993bba26962cb4e4d67812a497f1e9fe02b07)) ### BREAKING CHANGES * labgrid_run has been removed Users need to use labgrid_genrule with //labgrid/run. * `//constraint/emulator:qemu` is now `//constraint/device:qemu` * `labgrid_manager` has been removed in favour of a `manager` attribute in `labgrid_config` As a result, `//labgrid/manager` has now become `//labgrid/config:manager`. Also, `//labgrid/toolchain/manager:type` has been removed. * `//labgrid/config:src` has been removed. * `//labgrid/manager:config` has been replaced with `//labgrid/manager:passthrough`. * **executor:** `state` has been replaced by the more generic `env` `labgrid_config` now takes `env` instead of `state`. As a consequence, `//labgrid/config:state` has been replaced with `//labgrid/config:env` (which is private). * **run_binary:** `labgrid_run_binary` is now loaded from `@rules_labgrid//labgrid/run/binary:defs.bzl` This conforms to the directory layout that our rulesets follow. * `//labgrid/python` is now `//labrid:pkg` (or `//labgrid`) This mirrors what a `pip.parse` hub labels have. * `//labgrid/toolchain/executor:type` has been removed. Use `labgrid_config_toolchain` instead. An issue has been found that prevents a LabGrid configuration being loaded because the Python dependencies for the configuration are not available. This manifests in the current end-to-end Docker tests as the `DockerDriver` not being able to find the `docker` module. The issue is that we need a `py_library` dependency for the resolved LabGrid configuration for the target platform. However, where the toolchain gets resolved in `labgrid_genrule` is too high up the rule graph. The resolution needs to happen within the passed in Python tool. This patch provides three lazily resolved labels: - `//labgrid/config:src` (aliased as `//labgrid/config`) - `//labgrid/config:deps` - `//labgrid/manager:src` (aliased as `//labgrid/manager`) A script that is provided to `labgrid_genrule` can do: ```py py_binary( name = "something", srcs = ["something.py"], deps = ["@rules_labgrid//labgrid/config:deps"], ) ``` When the tool loads the LabGrid configuration from `LG_ENV`, it is guranteed to have the correct Python dependencies available. The crucial feature is that the labels are extract their values from two toolchains. Two are required otherwise there is a circular dependency between the manager and the configuration. - `//labgrid/toolchain/config:type` - `//labgrid/toolchain/manager:type` To do the lazy resolution of the toolchain, we do a configuration trick to transition further down the stack back into the target/exec combo that `labgrid_genrule` is in. This is contained under `//labgrid/cfg`. The way this works is: - `labgrid_genrule` uses `//labgrid/cfg/store.bzl` as an incoming transition - That transition stores the current platform in `//labgrid/cfg:platform` - Later, the `/labgrid/{config,manager}` targets use the `//labgrid/cfg/unstore.bzl` transition to put `//labgrid/cfg:platform` back into the target platform - Those rules then resolve the toolchains to get the registered information for the LabGrid target platform As of this patch, the Docker end-to-end test shows an example of the usage of `labgrid_config_toolchain`. `bazelisk test docker:test` has the same operation as before. * `@rules_labgrid//labgrid/executor:manager` is now `@rules_labgrid//bazel/labgrid/executor` * **executor:** LabGrid context managers now return `labgrid.manager#Data` rather than `Run` functions.