about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAdam Joseph <adam@westernsemico.com>2023-12-12T11·04-0800
committerclbot <clbot@tvl.fyi>2023-12-12T17·21+0000
commit07ca556a942b78ea70f3b7a7ee812948801c4865 (patch)
treeb073703d626d2ef6cd5bc08ea4d469353b015325
parent29464fc65be0fb98b1ee1592ef99ed102be0e073 (diff)
feat(tvix/glue): make unimplemented-structuredAttrs catchable r/7197
This commit adjusts the error produced by STRUCTURED_ATTRS so that
it is catchable.  This way we are able to enumerate the release
packageset, and the enumeration process will simply treat the few
derivations using structured attributes as being broken, rather than
killing the whole eval session.

Change-Id: I2e17638b8e3227f88543c3718aaf505deaec22ae
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10306
Autosubmit: Adam Joseph <adam@westernsemico.com>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
-rw-r--r--tvix/glue/src/builtins/derivation.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/tvix/glue/src/builtins/derivation.rs b/tvix/glue/src/builtins/derivation.rs
index 4eb0141d54..6eedbc13e7 100644
--- a/tvix/glue/src/builtins/derivation.rs
+++ b/tvix/glue/src/builtins/derivation.rs
@@ -247,7 +247,9 @@ pub(crate) mod derivation_builtins {
         // TODO: the JSON serialisation has to happen here.
         if let Some(sa) = input.select(STRUCTURED_ATTRS) {
             if generators::request_force(&co, sa.clone()).await.as_bool()? {
-                return Err(ErrorKind::NotImplemented(STRUCTURED_ATTRS));
+                return Ok(Value::Catchable(CatchableErrorKind::UnimplementedFeature(
+                    STRUCTURED_ATTRS.to_string(),
+                )));
             }
         }