FHIR Chat · SUSHI 0.13.0 (YAML Configuration Release) · shorthand

Stream: shorthand

Topic: SUSHI 0.13.0 (YAML Configuration Release)


view this post on Zulip Chris Moesel (Jun 12 2020 at 16:19):

SUSHI 0.13.0 is a significant release with major changes to how FSH-based IGs are configured as well as many other enhancements and bug fixes. All SUSHI users should read the release notes thoroughly.

SUSHI 0.13.0 contains the following new features, enhancements, and bug fixes:

  • NEW YAML-based configuration _replaces_ project.json file (details in release notes)
  • config.yaml _menu_ now supports 'new-tab' and 'external' keywords (#440, new since 0.13.0-beta.2)
  • Adds support for creating and assigning non-Resource instances (#385, #391)
  • Sets the CodeSystem count when it can be safely determined (#419)
  • Enforces unique ids and names to reduce unintended overwrites (#152)
  • Avoids invalid ids when defaulting id based on name (#441)
  • Avoids invalid characters when generating _dependsOn.id_ in Implementation Guide (#466)
  • Fixes how extensions on StructureDefinitions (using ^) are represented (#412)
  • Validates that references point only to allowed types in instances (#395)
  • Disallows changing profile ^type since it should never change (#462)
  • Re-enables "sparse" differentials (#463)
  • Removes warning regarding past extension syntax change (#456)
  • Rewords ambiguous error message regarding rule paths (#436)
  • Only loads "current" dependencies if the remote IG has changed (#470)
  • Fixes deprecated package formats when loading packages in the cache (#482)
  • Internal code restructuring to support improved testing and future enhancements (#345)

Full Release Notes: https://github.com/FHIR/sushi/releases/tag/v0.13.0

view this post on Zulip Jean Duteau (Jun 12 2020 at 16:37):

Alright, I'm going in! Changing two of my existing FSH projects to use the new configuration! Wish me luck! :)

view this post on Zulip Jean Duteau (Jun 12 2020 at 16:51):

I'm getting this error and there isn't enough information to know what part of the config is wrong:

error SUSHI encountered the following unexpected error: The "path" argument must be of type string. Received null

view this post on Zulip Chris Moesel (Jun 12 2020 at 17:08):

Well that's not promising. Did you edit the config or is that from the config exactly as SUSHI generated it?

view this post on Zulip Jean Duteau (Jun 12 2020 at 17:09):

from the config that SUSHI generated. I have gone in and edited it subsequently but I got this error from the very beginning

view this post on Zulip Jean Duteau (Jun 12 2020 at 17:09):

I've compared my config to the example and I don't see the problem

view this post on Zulip Jean Duteau (Jun 12 2020 at 17:10):

config.yaml

view this post on Zulip Chris Moesel (Jun 12 2020 at 17:15):

Alright. We'll take a look at that. Definitely seems odd...

view this post on Zulip Chris Moesel (Jun 12 2020 at 17:57):

Hi @Jean Duteau -- I can't seem to reproduce this. I swapped in your config.yaml in a simple SUSHI project and it ran without error (once I created the page files it expected to find -- but even before that, the error wasn't what you're reporting).

I'll search through our code to see if I can find where an error message like that might come from -- but it doesn't look familiar to me, so I'm wondering if it's coming from a 3rd-party library we use.

view this post on Zulip Chris Moesel (Jun 12 2020 at 18:07):

I searched our whole codebase for the word "argument" and nothing matched the message you reported... I also tried to find a matching phrase in our 3rd party libraries and couldn't find it there either. Was there any more information in the error message or a stack trace or anything?

view this post on Zulip Jean Duteau (Jun 12 2020 at 18:12):

info Running SUSHI v0.13.0
info Current FSH tank conforms to an IG Publisher context. Output will be adjusted accordingly.
info No output path specified. Output to .
info Using configuration file: /Users/jeanduteau/Documents/DDIWork/Gevity/davinci-pas/fsh/config.yaml
info Checking local cache for hl7.fhir.us.core#3.1.0...
info Found hl7.fhir.us.core#3.1.0 in local cache.
info Loaded package hl7.fhir.us.core#3.1.0
info Checking local cache for hl7.fhir.r4.core#4.0.1...
info Found hl7.fhir.r4.core#4.0.1 in local cache.
info Loaded package hl7.fhir.r4.core#4.0.1
info Importing FSH text...
info Preprocessed 8 documents with 16 aliases.
info Imported 32 definitions and 1 instances.
info Converting FSH to FHIR resources...
info Converted 24 FHIR StructureDefinitions.
info Converted 4 FHIR ValueSets.
info Converted 4 FHIR CodeSystems.
info Converted 1 FHIR instances.
info Exporting FHIR resources as JSON...
info Exported 33 FHIR resources as JSON.
info Assembling Implementation Guide sources...
error SUSHI encountered the following unexpected error: The "path" argument must be of type string. Received null

view this post on Zulip Chris Moesel (Jun 12 2020 at 18:17):

Is this a project that is available publicly or that you'd be comfortable sending to me via PM?

view this post on Zulip Jean Duteau (Jun 12 2020 at 18:18):

it is public, but I don't want to check in this code since it is broken right now :)

view this post on Zulip Jean Duteau (Jun 12 2020 at 18:18):

I'll zip it up and send it to you

view this post on Zulip Chris Moesel (Jun 12 2020 at 18:19):

If it's public, then shouldn't I be able to run SUSHI 0.13.0 on it to get SUSHI to auto-convert to config.yaml and then reproduce the problem? Or are there additional unpublished changes needed to reproduce it?

view this post on Zulip Jean Duteau (Jun 12 2020 at 18:20):

yeah, that is true. here is the repository: https://github.com/HL7/davinci-pas

view this post on Zulip Chris Moesel (Jun 12 2020 at 18:25):

So... I still can't reproduce it. It makes it all the way through to the end for me. Maybe you should zip it up and send it along. Can you send to @Nick Freiter too? I'm about to go into a meeting.

info  Running SUSHI v0.13.0
info  path-to-fsh-defs defaulted to current working directory
info  fsh/ subdirectory detected and add to input path
info  Current FSH tank conforms to an IG Publisher context. Output will be adjusted accordingly.
info  No output path specified. Output to .
warn  Generated new configuration file: /Users/cmoesel/dev/HL7/davinci-pas/fsh/config.yaml. Please review to ensure configuration is correct.
info  Checking local cache for hl7.fhir.us.core#3.1.0...
info  Found hl7.fhir.us.core#3.1.0 in local cache.
info  Loaded package hl7.fhir.us.core#3.1.0
info  Checking local cache for hl7.fhir.r4.core#4.0.1...
info  Found hl7.fhir.r4.core#4.0.1 in local cache.
info  Loaded package hl7.fhir.r4.core#4.0.1
info  Importing FSH text...
info  Preprocessed 8 documents with 16 aliases.
info  Imported 32 definitions and 1 instances.
info  Converting FSH to FHIR resources...
info  Converted 24 FHIR StructureDefinitions.
info  Converted 4 FHIR ValueSets.
info  Converted 4 FHIR CodeSystems.
info  Converted 1 FHIR instances.
info  Exporting FHIR resources as JSON...
info  Exported 33 FHIR resources as JSON.
info  Assembling Implementation Guide sources...
info  Copied input/pagecontent/index.md
warn  The ig.ini file must have an "ig" property pointing to the IG file. SUSHI has added the following line to the copied version of the ig.ini:
ig = input/ImplementationGuide-hl7.fhir.us.davinci-pas.json
Please update ig-data/ig.ini to include this value.
  File: /Users/cmoesel/dev/HL7/davinci-pas/fsh/ig-data/ig.ini
info  Merged ig-data/ig.ini w/ default values for missing properties.
info  Copied ig-data/package-list.json.
info  Generated ImplementationGuide-hl7.fhir.us.davinci-pas.json
info  Assembled Implementation Guide sources; ready for IG Publisher.

╔════════════════════════ SUSHI RESULTS ══════════════════════════╗
║ ╭──────────┬────────────┬───────────┬─────────────┬───────────╮ ║
║ │ Profiles │ Extensions │ ValueSets │ CodeSystems │ Instances │ ║
║ ├──────────┼────────────┼───────────┼─────────────┼───────────┤ ║
║ │    8     │     16     │     4     │      4      │     1     │ ║
║ ╰──────────┴────────────┴───────────┴─────────────┴───────────╯ ║
║                                                                 ║
║ See SUSHI-GENERATED-FILES.md for details on generated IG files. ║
╠═════════════════════════════════════════════════════════════════╣
║ Warnings... Water those about?         0 Errors      2 Warnings ║
╚═════════════════════════════════════════════════════════════════╝

view this post on Zulip Jean Duteau (Jun 12 2020 at 18:30):

okay, i started with a fresh clone and it completed

view this post on Zulip Chris Moesel (Jun 12 2020 at 18:31):

Odd. Still, if you have the old broken version somewhere, it might be worth having us take a look in case it is something we can easily detect or guard against.

view this post on Zulip David Hay (Jun 12 2020 at 19:19):

BTW - on the slide deck - slide 12 has instructions for installing the beta...

view this post on Zulip Chris Moesel (Jun 12 2020 at 19:20):

Ah... shoot. I'll fix that.

view this post on Zulip Chris Moesel (Jun 12 2020 at 21:52):

We found the issue that @Jean Duteau ran into and it may affect others. SUSHI 0.13.0 will exit with an error for any FSH tank that does _not_ have an ig-data folder. This is obviously not intentional, but was introduced during the merge of the mainline and beta SUSHI branches.

The workaround is to create an empty ig-data folder. We'll try to release a fix before FHIR DevDays officially starts (e.g., by Monday noon).


Last updated: Apr 12 2022 at 19:14 UTC