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

akitouni pushed a commit to branch abderrahim/junction-aliases
in repository https://gitbox.apache.org/repos/asf/buildstream.git

commit b76297d40460712774408fcd4eaeef4508308841
Author: Abderrahim Kitouni <[email protected]>
AuthorDate: Thu Mar 28 09:55:12 2024 +0100

    fixup! Support mapping subproject aliases to aliases of the parent project
---
 src/buildstream/_project.py                  | 16 ++++++++--------
 src/buildstream/plugins/elements/junction.py |  2 ++
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/src/buildstream/_project.py b/src/buildstream/_project.py
index 6ae488731..006a01fc7 100644
--- a/src/buildstream/_project.py
+++ b/src/buildstream/_project.py
@@ -102,7 +102,7 @@ class Project:
         self.ref_storage: Optional[ProjectRefStorage] = None  # Where to store 
source refs
         self.refs: Optional[ProjectRefs] = None
         self.junction_refs: Optional[ProjectRefs] = None
-        self.allow_subproject_uris: bool = True
+        self.disallow_subproject_uris: bool = False
 
         self.config: ProjectConfig = ProjectConfig()
         self.first_pass_config: ProjectConfig = ProjectConfig()
@@ -229,7 +229,7 @@ class Project:
                         return parent_project.translate_url(
                             parent_alias + utils._ALIAS_SEPARATOR + url_body, 
first_pass=first_pass
                         )
-                    elif not parent_project.allow_subproject_uris:
+                    elif parent_project.disallow_subproject_uris:
                         return url
 
                 url = alias_url + url_body
@@ -394,7 +394,7 @@ class Project:
             parent_alias = self.junction.aliases.get_str(alias, default=None)
             if parent_alias:
                 return parent_project.alias_exists(parent_alias, 
first_pass=first_pass)
-            elif not parent_project.allow_subproject_uris:
+            elif parent_project.disallow_subproject_uris:
                 return False
 
         return config._aliases.get_str(alias, default=None) is not None
@@ -422,7 +422,7 @@ class Project:
             if parent_alias:
                 # Delegate translation to parent project
                 return parent_project.get_alias_uris(parent_alias, 
first_pass=first_pass, tracking=tracking)
-            elif not parent_project.allow_subproject_uris:
+            elif parent_project.disallow_subproject_uris:
                 return [None]
 
         uri_list = []
@@ -815,14 +815,14 @@ class Project:
 
         # Junction configuration
         junctions_node = pre_config_node.get_mapping("junctions", default={})
-        junctions_node.validate_keys(["duplicates", "internal", 
"allow-subproject-uris"])
+        junctions_node.validate_keys(["duplicates", "internal", 
"disallow-subproject-uris"])
 
-        if self.junction and not 
self.junction._get_project().allow_subproject_uris:
+        if self.junction and not 
self.junction._get_project().disallow_subproject_uris:
             # If the parent project doesn't allow subproject URIs, this must
             # be enforced for nested subprojects as well.
-            self.allow_subproject_uris = False
+            self.disallow_subproject_uris = True
         else:
-            self.allow_subproject_uris = 
junctions_node.get_bool("allow-subproject-uris", default=True)
+            self.disallow_subproject_uris = 
junctions_node.get_bool("disallow-subproject-uris", default=False)
 
         # Parse duplicates
         junction_duplicates = junctions_node.get_mapping("duplicates", 
default={})
diff --git a/src/buildstream/plugins/elements/junction.py 
b/src/buildstream/plugins/elements/junction.py
index 7ce3a07f6..5d457143f 100644
--- a/src/buildstream/plugins/elements/junction.py
+++ b/src/buildstream/plugins/elements/junction.py
@@ -50,6 +50,8 @@ Overview
      overrides:
        subproject-junction.bst: local-junction.bst
 
+     # Optionally override aliases in subprojects, to allow using mirrors
+     # defined in the parent project.
      aliases:
        subproject-alias: local-alias
 

Reply via email to