Background: SUSHI 2.0 implements several major features that will be balloted as part of FHIR Shorthand (FSH) STU2. One such feature, indented rules, interprets whitespace before rule markers (*
) as an indicator of path context. Prior to SUSHI 2.0 and FSH STU2, whitespace before rule markers was insignificant.
Problem: This project contains FSH rules that have whitespace before the rule marker (*
) and/or FSH keywords (e.g., Profile:
, Parent:
, etc.) that have whitespace before the first character. When SUSHI 2.0 processes these definitions, it attempts to determine path context from the whitespace, which then causes errors in the project output. If your project uses the HL7 IG Autobuild, auto builds will fail after SUSHI 2.0.0 comes out of beta.
Preferred Solution: The preferred way to fix this problem is to update your FSH definitions so that the keywords and rules all start on the first column of each line. This means removing all whitespace before keywords and *
rule markers. This does not require any changes to the actual rule text; only the whitespace before the *
. You can test your fixes by installing the latest SUSHI 2.0 beta via the following command: npm install -g fsh-sushi@beta
.
Alternate Solution: If it is not feasible to make these changes in a timely manner, you can "lock in" the version of SUSHI that the IG Publisher uses by creating or updating a fsh.ini
file at the root of your project. For example, the following fsh.ini
file would tell the IG Publisher to always use SUSHI 1.3.2, even after SUSHI 2.0.0 is released:
[FSH]
sushi-version=1.3.2
Timeline: In order to avoid being affected by the official SUSHI 2.0.0 release, we recommend you implement one of the above solutions by July 6, 2021.
More Information / Questions: For more information about SUSHI 2.0, you can read the SUSHI 2.0.0 Beta 1 Release Notes. If you have questions, you can reach out to the SUSHI team via the #shorthand stream on Zulip or by logging an issue on SUSHI.