Regression: Unhelpful error message on missing variables

Summary

If a .bst file fails to specify a required variable, we receive a very unhelpful error message.

This has been reported before in #253 (closed) and was supposedly fixed by !449 (merged), however, I am seeing this behaviour on current master.

Steps to reproduce

I commented out the url of the tarball for the source of the hello.bst element in our autotools example

 $ cat elements/hello.bst 
kind: autotools
description: |

  Hello world example from automake

variables:

  # The hello world example lives in the doc/amhello folder.
  #
  # Set the %{command-subdir} variable to that location
  # and just have the autotools element run its commands there.
  #
  command-subdir: doc/amhello

sources:
- kind: tar
  # url: gnu:automake-1.16.tar.gz
  ref: 80da43bb5665596ee389e6d8b64b4f122ea4b92a685b1dbd813cd1f0e0c2d83f

depends:
- base.bst

 $ bst show hello.bst 
[--:--:--][        ][    main:core activity                 ] START   Loading elements
[00:00:00][        ][    main:core activity                 ] SUCCESS Loading elements
[--:--:--][        ][    main:core activity                 ] START   Resolving elements
[00:00:00][        ][    main:core activity                 ] FAILURE Resolving elements

autotools.yaml [synthetic node]: Dictionary did not contain expected key 'url'

What is the expected correct behavior?

We should at the very least get the filename.


Edited by James Ennis