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

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

commit 0c67dce624681e134a31804a32873551087ec63c
Merge: 457845c59 f3578aa88
Author: Abderrahim Kitouni <[email protected]>
AuthorDate: Thu Mar 28 14:53:12 2024 +0100

    Merge branch 'abderrahim/junction-aliases' into 
abderrahim/buildstream-mirrors-merge3

 src/buildstream/_project.py                  | 38 +++++++++++++++++++++++++++-
 src/buildstream/plugins/elements/junction.py | 20 ++++++++++++++-
 2 files changed, 56 insertions(+), 2 deletions(-)

diff --cc src/buildstream/_project.py
index ac57a2523,3b64cc893..f174f233a
--- a/src/buildstream/_project.py
+++ b/src/buildstream/_project.py
@@@ -238,8 -215,23 +239,19 @@@ class Project
  
          if url and utils._ALIAS_SEPARATOR in url:
              url_alias, url_body = url.split(utils._ALIAS_SEPARATOR, 1)
 -            alias_url = config._aliases.get_str(url_alias, default=None)
 +            alias_url = self.get_alias_url(url_alias, first_pass=first_pass)
              if alias_url:
+                 if self.junction:
+                     parent_project = self.junction._get_project()
+                     parent_alias = self.junction.get_parent_alias(url_alias)
+                     if parent_alias:
+                         # Delegate translation to parent project
+                         return parent_project.translate_url(
+                             parent_alias + utils._ALIAS_SEPARATOR + url_body, 
first_pass=first_pass
+                         )
+                     elif parent_project.disallow_subproject_uris:
+                         return url
+ 
                  url = alias_url + url_body
  
          return url
@@@ -423,7 -416,16 +443,16 @@@
          if not alias or alias not in config._aliases:  # pylint: 
disable=unsupported-membership-test
              return [None]
  
+         if self.junction:
+             parent_project = self.junction._get_project()
+             parent_alias = self.junction.get_parent_alias(alias)
+             if parent_alias:
+                 # Delegate translation to parent project
+                 return parent_project.get_alias_uris(parent_alias, 
first_pass=first_pass, tracking=tracking)
+             elif parent_project.disallow_subproject_uris:
+                 return [None]
+ 
 -        uri_list = []
 +        uri_list: List[Union[SourceMirror, str]] = []
          policy = self._context.track_source if tracking else 
self._context.fetch_source
  
          if policy in (_SourceUriPolicy.ALL, _SourceUriPolicy.MIRRORS) or (

Reply via email to