about summary refs log tree commit diff
path: root/tvix/glue/src/builtins/derivation.rs
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 /tvix/glue/src/builtins/derivation.rs
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
Diffstat (limited to 'tvix/glue/src/builtins/derivation.rs')
-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 4eb0141d544b..6eedbc13e7e3 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(),
+                )));
             }
         }