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

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

commit 054ccc7552f95588adc371d7228963840fa083f1
Merge: 5ca97f7d3 1cb4c9fb9
Author: Abderrahim Kitouni <[email protected]>
AuthorDate: Mon Mar 25 18:10:49 2024 +0100

    Merge branch 'juerg/junction-aliases' into 
abderrahim/buildstream-mirrors-merge2

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

diff --cc src/buildstream/_project.py
index 1fa8ea545,6ae488731..da0e914ee
--- 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.aliases.get_str(url_alias, 
default=None)
+                     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 not parent_project.allow_subproject_uris:
+                         return url
+ 
                  url = alias_url + url_body
  
          return url
@@@ -422,7 -416,16 +442,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.aliases.get_str(alias, default=None)
+             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:
+                 return [None]
+ 
 -        uri_list = []
 +        uri_list: List[Optional[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