This is an automated email from the ASF dual-hosted git repository.
juergbi pushed a commit to branch juerg/junction-aliases
in repository https://gitbox.apache.org/repos/asf/buildstream.git
The following commit(s) were added to refs/heads/juerg/junction-aliases by this
push:
new 4c19b3fa3 WIP: Add sketch of error handling
4c19b3fa3 is described below
commit 4c19b3fa343f285eb667f422041d6363c579ff25
Author: Jürg Billeter <[email protected]>
AuthorDate: Fri Apr 5 18:40:59 2024 +0200
WIP: Add sketch of error handling
At least provenance still needs to be added.
---
src/buildstream/_project.py | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/buildstream/_project.py b/src/buildstream/_project.py
index fbf190018..2ee16f196 100644
--- a/src/buildstream/_project.py
+++ b/src/buildstream/_project.py
@@ -40,6 +40,7 @@ from ._includes import Includes
from ._workspaces import WORKSPACE_PROJECT_FILE
from ._remotespec import RemoteSpec
from .sourcemirror import SourceMirror
+from .source import SourceError
if TYPE_CHECKING:
@@ -250,7 +251,7 @@ class Project:
parent_alias + utils._ALIAS_SEPARATOR + url_body,
first_pass=first_pass
)
elif parent_project.disallow_subproject_uris:
- return url
+ raise SourceError("Parent project did not provide a
mapping for alias '{}' and disallowed usage of unmapped
aliases".format(url_alias), reason="invalid-source-alias")
url = alias_url + url_body
@@ -413,9 +414,14 @@ class Project:
parent_project = self.junction._get_project()
parent_alias = self.junction.get_parent_alias(alias)
if parent_alias:
- return parent_project.alias_exists(parent_alias,
first_pass=first_pass)
+ if parent_project.alias_exists(parent_alias,
first_pass=first_pass):
+ return True
+ else:
+ raise SourceError(
+ "{}: Mapped alias '{}' for subproject alias '{}' is
invalid in the parent project".format("TODO junction provenance", parent_alias,
alias),
+ reason="invalid-source-alias")
elif parent_project.disallow_subproject_uris:
- return False
+ raise SourceError("Parent project did not provide a mapping
for alias '{}' and disallowed usage of unmapped aliases".format(alias),
reason="invalid-source-alias")
return config._aliases.get_str(alias, default=None) is not None