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

juergbi pushed a commit to branch jbilleter/digest-environment
in repository https://gitbox.apache.org/repos/asf/buildstream.git

commit ff49f8fe8ebdd2bc244a6302997aac556266d205
Author: Jürg Billeter <[email protected]>
AuthorDate: Fri Jul 18 15:17:09 2025 +0200

    buildelement.py: Move digest-environment logic to `configure_sandbox()`
    
    `bst shell --build --use-buildtree` does not invoke `Element.stage()`
    but still requires environment variables to be set.
---
 src/buildstream/buildelement.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/buildstream/buildelement.py b/src/buildstream/buildelement.py
index ef4827371..d93a6391e 100644
--- a/src/buildstream/buildelement.py
+++ b/src/buildstream/buildelement.py
@@ -305,7 +305,6 @@ class BuildElement(Element):
             command_dir = build_root
         sandbox.set_work_directory(command_dir)
 
-    def stage(self, sandbox):
         # Setup environment
         env = self.get_environment()
 
@@ -313,13 +312,14 @@ class BuildElement(Element):
         sorted_envs = sorted(self.__digest_environment)
         for digest_variable in sorted_envs:
             element_list = [element for element, _ in 
self.__digest_environment[digest_variable]]
-            subsandbox = sandbox._create_subsandbox()
-            self.stage_dependency_artifacts(subsandbox, element_list)
-            digest = subsandbox.get_virtual_directory()._get_digest()
+            with self.subsandbox(sandbox) as subsandbox:
+                self.stage_dependency_artifacts(subsandbox, element_list)
+                digest = subsandbox.get_virtual_directory()._get_digest()
             env[digest_variable] = "{}/{}".format(digest.hash, 
digest.size_bytes)
 
         sandbox.set_environment(env)
 
+    def stage(self, sandbox):
         # First stage it all
         #
         sorted_locations = sorted(self.__layout)

Reply via email to