SUSHI 1.0.0 Beta 1 is the first beta release of SUSHI 1.0, with full support for FHIR Shorthand 1.0 and a new project structure to better support IG Publisher integration.
NOTE: Installing the beta version is slightly different than installing the normal version of SUSHI. See installation instructions at the bottom of these release notes for further guidance.
New Project Structure
SUSHI 1.0 no longer uses a top-level fsh folder or a nested ig-data folder. Instead, SUSHI 1.0 projects are designed to fit seamlessly within the current template-based IG Publisher project structure. Using SUSHI 1.0:
- Authors configure SUSHI via
/sushi-config.yaml(previously/fsh/config.yaml) - Authors put all
.fshfiles in/input/fsh/*(previously/fsh/*) - Authors put all other IG files (
ig.ini,package-list.json,menu.xml, pages, etc.) in their normal locations based on current IG Publisher requirements (previously/fsh/ig-data/*) - SUSHI generates all outputs to
/fsh-generatedand clears it before each generation (previously/*and/input/*without clearing old generated files)
This approach has several advantages over the old approach:
- Project layout and structure is consistent with all template-based IG Publisher projects
- Existing projects can more easily convert to using SUSHI, even leveraging incremental conversion
- All source files and generated files are clearly separated, and no longer need to be copied around
For detailed instructions on the new project structure see the SUSHI 1.0 Beta Project Structure documentation.
To migrate an existing SUSHI 0.16.0 project to the new project structure see the SUSHI 1.0 Beta Migration Guide.
Supported Templates
The new SUSHI project structure required that changes be made to the base template in order to find and use files in the /fsh-generated folder. Currently, these changes are only in the #current version of the base template, so your project's /ig.ini MUST specify a template that is based on fhir.base.template#current. For now, any of the following should work:
fhir.base.template#currenthl7.base.template#currenthl7.fhir.template#currenthl7.davinci.template#currenthl7.cda.template#current
Once the base template has been officially released with these changes, you will be able to use a locked version of a template again.
Deprecated Features
SUSHI 1.0.0 Beta 1 deprecates several features found in SUSHI 0.16.0. These features were deprecated based on feedback from the FHIR Core team and SUSHI users, as well as to provide a cleaner, more consistent approach to developing IGs.
- The
templateproperty in the SUSHI configuration is no longer supported. Authors should manage the/ig.inifile directly. - The
historyproperty in the SUSHI configuration is no longer supported. For now, authors should manage the/package-list.jsonfile directly, but further guidance may come from the FHIR Core team in the future. - The
/input/ignoreWarnings.txtfile is no longer generated by SUSHI. Authors should manage this file directly. - The
/_updatePublisher,/_genonce, and/_gencontinuousscripts are no longer generated by SUSHI. If you wish to use these scripts, you can always download the latest versions from the sample-ig repository. (NOTE:sushi --initwill download these automatically if you use it to initialize a new project).
Legacy Projects
SUSHI 1.0.0 Beta 1 continues to support "legacy" projects (i.e., projects not using the new file structure). In these cases, the behavior should be the same as in SUSHI 0.x, with one caveat: SUSHI will not generate the publisher scripts even for legacy projects.
If SUSHI detects that you are using a legacy project format, it will issue a warning that you should update your project to the new project structure. Support for legacy projects will be removed in a future version of SUSHI.
HL7 IG Auto-Builder
Currently, the HL7 IG Auto-Builder uses the most recent official version of SUSHI. This means that if you change your project structure and commit it to GitHub, the HL7 Auto-Builder will fail (since it is using SUSHI 0.16.0). We're currently working with the Auto-Builder team to provide a way to indicate that a different version of SUSHI should be used.
Additional Changes
In addition to the changes to project structure and configuration, SUSHI 1.0 Beta 1 includes the following changes:
- If SUSHI is run on a project with no
.fshfiles, it will exit gracefully with a success code (#609) - Sets the grouping
idin the IG JSON file when using thegroupproperty insushi-config.yaml(#590) - Fixes bug with using ad hoc extensions on nested paths in instances (#621)
- Fixes bug with cardinality min value of choices when type slicing is used (#596)
- Fixes bug with finding slices of choice slices (#593)
Full Documentation
For additional documentation, refer to FSH School's SUSHI 1.0 Beta documentation and/or the FSH specification.
Install or Update
To install or update to this beta version, run the following command:
$ npm install -g fsh-sushi@betaTo revert to a previous version, run a command like the following:
$ npm install -g fsh-sushi@0.16.0To check or confirm what version of SUSHI you have installed, you can run the following command:
$ sushi -v