Releases: FHIR/sushi
SUSHI 1.0.0
This is the official, stable SUSHI 1.0.0 release, marking the end of the beta phase for SUSHI 1.0.0. SUSHI 1.0.0 includes full support for FHIR Shorthand 1.0 and a new project structure to better support IG Publisher integration.
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
.fsh
files 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-generated
and 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 Project Structure documentation.
To migrate an existing SUSHI 0.16.0 project to the new project structure see the SUSHI 1.0 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#current
hl7.base.template#current
hl7.fhir.template#current
hl7.davinci.template#current
hl7.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 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
template
property in the SUSHI configuration is no longer supported. Authors should manage the/ig.ini
file directly. - The
history
property in the SUSHI configuration is no longer supported. For now, authors should manage the/package-list.json
file directly, but further guidance may come from the FHIR Core team in the future. - The
/input/ignoreWarnings.txt
file is no longer generated by SUSHI. Authors should manage this file directly. - The
/_updatePublisher
,/_genonce
, and/_gencontinuous
scripts 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 --init
will download these automatically if you use it to initialize a new project). - The
external
keyword for menu URLs inconfig.yaml
is no longer supported since the IG Publisher now detects external links and automatically inserts an external link icon.
Legacy Projects
SUSHI 1.0.0 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 all projects will now build using SUSHI 1.0.0 by default. We do not anticipate this causing any issues due to SUSHI's support of legacy project structures. If you absolutely must continue using the pre-1.0.0 SUSHI, you can affect the version of SUSHI that the IG Publisher uses by providing a fsh.ini
file at the root of the project with the following contents:
[FSH]
sushi-version=0.16.0
Additional Changes
In addition to the changes to project structure and configuration, SUSHI 1.0.0 includes the following changes and bug fixes:
- Fixes SUSHI incorrectly counting the minimum cardinality on sliced elements (#659)
- If SUSHI is run against a directory with no FSH files but the directory has a
config.yaml
file, SUSHI will not exit early. - 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)
- Supports setting the resource description in the generated ImplementationGuide on conformance and terminology resources only (#629)
- Avoids generating a duplicate resource when a resource is provided in
input
and defined in FSH (#623) - Correctly extracts SUSHI configuration information from a provided ImplementationGuide resource (#635)
- Skips the processing of XML files that appear to be spreadsheets (#638)
- Fixes a bug where SUSHI specific comments were appended to input files (#626)
- Fixes a bug that allows uses the current working directory as the input directory if is not specified (#627)
- Resets the errors and warnings in between invocations of
fshToFhir
(#625) - Allows (and ignores) non-JSON/non-XML files in
input/*
resource folders (#641) - Fixes ambiguous identifier in error message about duplicate resources (#642)
- Fixes bug that overwrote a
Quantity
value when a unit was set in a subsequent rule (#608) - Fixes handling of
MS
flag when applied to sliced elements and/or slices (#647) - Fixes assignment to
Quantity
specializations (e.g.,Age
) using FSH quantity syntax (#617) - Merges
Mapping
rules when a matchingMapping
already exists on the parent resource (#657) - Exports
_
-prefixed properties (e.g., extensions on primitives) directly after their non-_
counterparts (#632) - Changes
config.yaml
'sgroup
keys to representid
rather thanname
, allowingname
to be set independently (#646) - Emits an error if an inline extension is defined on a profile since this is disallowed by the IG Publisher (#591)
- Supports new
instance-name
andinstance-description
extensions to set example resource metadata in the generated IG (#654)
Full Documentation
For additional documentation, refer to FSH School's SUSHI 1.0 documentation and/or the FSH specification.
Install or Update
To install or update to this release, run the following command:
$ npm install -g fsh-sushi
To revert to a previous stable release, run a command like the following:
$ npm install -g [email protected]
To check or confirm what version of SUSHI you have installed, you can run the following command:
$ sushi -v
SUSHI 1.0.0 Beta 4
SUSHI 1.0.0 Beta 4 is a candidate release for SUSHI 1.0.0. Barring the discovery of any major bugs, it will become the official SUSHI 1.0.0 release. SUSHI 1.0.0 Beta 4 contains the following bug fixes and enhancements since Beta 3:
- Fixes bug that overwrote a
Quantity
value when a unit was set in a subsequent rule (#608) - Fixes handling of
MS
flag when applied to sliced elements and/or slices (#647) - Fixes assignment to
Quantity
specializations (e.g.,Age
) using FSH quantity syntax (#617) - Merges
Mapping
rules when a matchingMapping
already exists on the parent resource (#657) - Exports
_
-prefixed properties (e.g., extensions on primitives) directly after their non-_
counterparts (#632) - Changes
config.yaml
'sgroup
keys to representid
rather thanname
, allowingname
to be set independently (#646)
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@beta
To revert to a previous stable release, run a command like the following:
$ npm install -g [email protected]
To check or confirm what version of SUSHI you have installed, you can run the following command:
$ sushi -v
SUSHI 1.0.0 Beta 3
SUSHI 1.0.0 Beta 3 contains fixes for two bugs reported by our users:
- Allows (and ignores) non-JSON/non-XML files in
input/*
resource folders (#641) - Fixes ambiguous identifier in error message about duplicate resources (#642)
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@beta
To revert to a previous stable release, run a command like the following:
$ npm install -g [email protected]
To check or confirm what version of SUSHI you have installed, you can run the following command:
$ sushi -v
SUSHI 1.0.0 Beta 2
SUSHI 1.0.0 Beta 2 contains the following enhancements and bug fixes:
- Supports setting the resource description in the generated ImplementationGuide on conformance and terminology resources only (#629)
- Avoids generating a duplicate resource when a resource is provided in
input
and defined in FSH (#623) - Correctly extracts SUSHI configuration information from a provided ImplementationGuide resource (#635)
- Skips the processing of XML files that appear to be spreadsheets (#638)
- Fixes a bug where SUSHI specific comments were appended to input files (#626)
- Fixes a bug that allows uses the current working directory as the input directory if is not specified (#627)
- Resets the errors and warnings in between invocations of
fshToFhir
(#625)
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@beta
To revert to a previous stable release, run a command like the following:
$ npm install -g [email protected]
To check or confirm what version of SUSHI you have installed, you can run the following command:
$ sushi -v
SUSHI 1.0.0 Beta 1
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
.fsh
files 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-generated
and 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#current
hl7.base.template#current
hl7.fhir.template#current
hl7.davinci.template#current
hl7.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
template
property in the SUSHI configuration is no longer supported. Authors should manage the/ig.ini
file directly. - The
history
property in the SUSHI configuration is no longer supported. For now, authors should manage the/package-list.json
file directly, but further guidance may come from the FHIR Core team in the future. - The
/input/ignoreWarnings.txt
file is no longer generated by SUSHI. Authors should manage this file directly. - The
/_updatePublisher
,/_genonce
, and/_gencontinuous
scripts 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 --init
will 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
.fsh
files, it will exit gracefully with a success code (#609) - Sets the grouping
id
in the IG JSON file when using thegroup
property 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@beta
To revert to a previous version, run a command like the following:
$ npm install -g [email protected]
To check or confirm what version of SUSHI you have installed, you can run the following command:
$ sushi -v
SUSHI 0.16.0
SUSHI 0.16.0 contains the following enhancements and bug fixes:
- Supports using ImplementationGuide resource as configuration for FSHOnly projects (#577) (details below)
- Improves logging message when running in "IG Publisher Integration" mode (#555)
- Detects conflicting fixed values on a parent w/ existing fixed values on children (#560)
- Does not inherit
structuredefinition-summary
extensions from parent profiles (#582) - Fixes element id when using
contains
to re-slice a slice (#542) - Fixes type constraint handling for special FHIRPath primitive types (#543)
- Fixes ignored slicing rules when constraining types (#564)
- Fixes confusing error message re: copyrightYear, releaseLabel, and parameters (#553)
- Fixes handling of hidden files in
ig-data/input
subfolders (thanks, @masnick!) (#580) - New puns (thanks, Nicole Ng and Ammu Irivinti)!
Using ImplementationGuide Resource as Configuration for FSHOnly Projects
FSHOnly IGs no longer need to provide a config.yaml
file. If SUSHI does not detect a config.yaml
file it will look for an ImplementationGuide
resource using the following approach:
- If
ig.ini
exists in the root folder, it will use theig
property to find the corresponding ImplementationGuide resource - If
ig.ini
does not exist or does not contain anig
property, it will search ininput
for an ImplementationGuide resource- if exactly one ImplementationGuide resource is found, it will use it; otherwise it will produce an error and exit
Once an ImplementationGuide resource is found, SUSHI will extract the following configuration parameters from the resource:
canonical
version
fhirVersion
dependencies
It will then run SUSHI in "FSHOnly" mode to produce FHIR resources using the extracted configuration.
Full Documentation
For additional documentation, refer to FSH School and/or the FSH specification.
Install or Update
To install or update to the latest version, run the following command:
$ npm install -g fsh-sushi
SUSHI 0.15.1
SUSHI 0.15.1 contains the following minor enhancements and bug fixes:
- Allows instances to be fixed inline in profiles and extensions (#511)
- Allows
Quantity
specializations (e.g.,Age
) to be assigned using quantity syntax (e.g.,* onsetAge = 42 'a'
) (#515) - Allows whitespace around Reference parameters (e.g.,
Reference( MyPatient )
) (#535) - Relaxes
config.yaml
required properties for FSHOnly IGs (#517) - More accurately reports required
config.yaml
properties for projects using IG features (#559) - Fixes incorrect URL in exported Extension definitions when authors override URL using
^url
(#532) - Fixes path resolution bug for slices with names similar to what they slice (#549)
- Fixes invalid
.d.ts
files in published NPM library (#558)
Full Documentation
For additional documentation, refer to FSH School and/or the FSH specification.
Install or Update
To install or update to the latest version, run the following command:
$ npm install -g fsh-sushi
SUSHI 0.15.0
SUSHI 0.15.0 contains the following enhancements and bug fixes:
- New
sushi --init
capability to kickstart a new SUSHI project (#527) (details below) - Supports Bring-Your-Own-XML resources (#444) (details below)
- Supports new
Canonical
keyword (#519 and #536) (details below) - No longer copies hidden files from
ig-data
(#350) - Now removes only certain top-level extensions from parent definitions (#534)
- Improves error descriptions for parsing errors related to whitespace around symbolic keywords (#318)
sushi -v
now reports the SUSHI version and the FHIR Shorthand version it implements- Fixes bug related to referencing contained inline resources (#525)
- Fixes bug with using CodeSystems in code definitions within caret rules (#516)
- Fixes bug with conflicting extension names (#531)
sushi --init
Authors can now run sushi --init
to have SUSHI create a new SUSHI project with a default configuration and project structure. This provides a simple way to get started with FHIR Shorthand and SUSHI.
When sushi --init
is run, SUSHI will request high-level project information from the user:
Name (Default: ExampleIG): NewIG
Id (Default: fhir.example): my.id
Canonical (Default: http://example.org): http://myid.org
Status (Default: draft): active
Version (Default: 0.1.0): 2.0.0
Initialize SUSHI project in C:\Users\shorty\dev\NewIG? [y/n]: y
These values are used to generate a simple config.yaml file and a corresponding IG-Publisher-compatible folder structure:
NewIG
├── .gitignore
├── _genonce.bat
├── _genonce.sh
├── _updatePublisher.bat
├── _updatePublisher.sh
├── _gencontinuous.bat
├── _gencontinuous.sh
└── fsh
├── config.yaml
├── ig-data
│ └── input
│ └── pagecontent
│ └── index.md
└── patient.fsh
From this point on, the author can make modify the config and definitions as necessary.
Bring-Your-Own-XML Resources
Prior to this release, SUSHI already supported Bring-Your-Own-JSON resources. This allowed authors to put their JSON resource definitions into one of the supported ig-data/input
resources folders (e.g., ig-data/input/resources
, ig-data/input/profiles
, ig-data/input/extensions
, ig-data/input/vocabulary
, etc.) -- and then reference them from their FSH files. This approach can be helpful for projects incrementally transitioning to FSH, or for authors who wish to use other tools for certain resource types (like CapabilityStatements).
Now this same functionality can be used with XML resources. To support this feature, SUSHI leverages Lantana's FHIR.js library to internally translate the XML resources into JSON.
Canonical Keyword
The new Canonical
keyword allows authors to indicate that a resource's canonical URL should be used as a value. The Canonical
keyword syntax is similar to Reference
:
* system = Canonical(MyCodeSystem)
In the example above, the system
would be set to the actual canonical URL of the MyCodeSystem
resource definition. This is particularly helpful when you need to reference the canonical of a definition in the same IG (otherwise you would have to construct the canonical yourself).
Note that this also supports specifying a particular version (as supported by the canonical
type itself):
* system = Canonical(MyCodeSystem|1.2.3)
Full Documentation
For additional documentation, refer to the FSH language reference.
Install or Update
To install or update to the latest version, run the following command:
$ npm install -g fsh-sushi
SUSHI 0.14.0
SUSHI 0.14.0 contains the following enhancements and bug fixes:
- Deprecates usage of
,
when listing items (details below, #483) - Deprecates usage of
|
when listing choices of items (details below, #498) - Adds
insert
rules (details below, #279) - Adds support for specifying more complex dependencies in config.yaml (details below, #497)
- Adds optional
include
keyword for Value Set rules (#507) - Deprecates usage of the optional
units
keyword (#505) - Adds support for inline resources in the
contained
array of a StructureDefinition (#495) - Adds support for escape characters in strings (#392)
- Fixes bug allowing choice types to be constrained to specializations of specific choices (#447)
- Fixes bug which causes extra extensions to appear on Instances (#502)
- Fixes bug with checking the type of a
Reference
(#504) - Fixes bug with references to inline resources (#508)
- Aligns
_genonce
,_gencontinuous
and_updatePublisher
scripts with those in the sample-ig
Deprecates usage of ,
when listing items
The ,
character was used to separate lists of items in SUSHI. For example, the ,
could be used to set flags on multiple items:
* telecom, gender MS
This usage is now deprecated, and any instance of ,
should be replaced with and
:
* telecom and gender MS
To allow for a smooth transition, the ,
is still supported in this release, but SUSHI will issue a warning. In a later release, support for ,
will be removed altogether.
Deprecates usage of |
when listing choices of items
The |
character was used to separate a choice list inside a Reference
. For example, the |
could be used to constrain a Reference
choice:
* generalPractitioner only Reference(Organization | Practitioner)
This usage is now deprecated, and any instance of |
should be replaced with or
:
* generalPractitioner only Reference(Organization or Practitioner)
To allow for a smooth transition, the |
is still supported in this release, but SUSHI will issue a warning. In a later release, support for |
will be removed altogether.
Adds insert
rules
The Mixins
keyword was used to add RuleSet
s to an entity. This usage is now deprecated, and SUSHI will issue a warning when Mixins
is encountered. In a later release, support for Mixins
will be removed altogether. Instead of using Mixins
, users can now add RuleSet
s to any entity for which a list of rules is allowed with the insert
keyword. The insert
keyword is used to add a snippet of rules anywhere within the list of rules being defined for the relevant entity. This differs from the Mixins
keyword, which always added the rules from a RuleSet
at the beginning of the list of rules. As an example:
RuleSet: rs1
* valueString = "hello"
Instance: ob1
InstanceOf: Observation
* status = #final
* insert rs1
* issued = "2015-02-07T13:28:17.239+02:00"
is equivalent to:
Instance: ob1
InstanceOf: Observation
* status = #final
* valueString = "hello"
* issued = "2015-02-07T13:28:17.239+02:00"
Adds support for specifying more complex dependencies in config.yaml
It is now possible to directly specify information about dependencies
in the config.yaml file. For example, one can now specify the uri
on a dependency:
dependencies:
de.basisprofil.r4:
uri: https://simplifier.net/guide/basisprofil-de-r4
version: 0.9.7
Some packages do not have a uri
, so this is a useful feature in that context. Most packages do have a uri
, so they can be specified using the simpler syntax:
dependencies:
hl7.fhir.us.core: 3.1.0
and SUSHI will infer the uri
.
Full Documentation
For additional documentation, refer to the FSH language reference.
Install or Update
To install or update to the latest version, run the following command:
$ npm install -g fsh-sushi
SUSHI 0.13.2
SUSHI 0.13.2 contains the following bug fix:
- Correctly sets
FSHOnly
flag when migrating from an existing project with noig-data
folder (#491)
NOTE: SUSHI 0.13.2 is a minor patch fix for the large SUSHI 0.13.x release. Users upgrading to 0.13.2 who have not read the release notes for 0.13.0 should read the release notes for 0.13.0, which are copied below:
SUSHI 0.13.0 contains the following new features, enhancements, and bug fixes:
- NEW YAML-based configuration replaces project.json file (details below)
- 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)
New YAML-based configuration replaces project.json file
This version of SUSHI deprecates use of package.json
, replacing it with config.yaml
, a more robust configuration format. To simplify migration for existing projects, SUSHI will create a customized config.yaml
using existing projects' current configurations (after which, config.yaml
will become the gold source configuration). New projects should create a new config.yaml
file, as specified in the updated SUSHI documentation.
Background: In previous versions of SUSHI, project configuration was primarily done in package.json
, along with supplemental IG configuration files in the ig-data
, such as ig.ini
, package-list.json
, and menu.xml
. Configuration was also limited in that IG authors had very little control over specific values in the ImplementationGuide
resource representing the IG. Some SUSHI users struggled with configuration spread across so many files and/or lack of ability to fine-tune the ImplementationGuide
resource file.
Approach: To address these issues, the SUSHI team designed a new configuration approach that allows for a single config.yaml
file to optionally control all configuration and provide users fine-grained control over the generated ImplementationGuide
resource.
This config.yaml
file is loosely based on the ImplementationGuide
resource, but also allows for defining other necessary aspects of files like ig.ini
, menu.xml
, and package-list.json
. There is a detailed breakdown of the contents and usage of config.yaml
in the updated SUSHI documentation. Users unfamiliar with YAML may also benefit from reviewing the YAML syntax.
Integration and Configuration Slide Deck: The SUSHI team developed a slide deck providing an overview of the new configuration and multiple approaches to using it. This file is recommended reading for all SUSHI users: SUSHI_Config_and_Integration_v4.pptx
The new YAML configuration format was tested in two beta releases with positive feedback from users who tried it.
Full Documentation
For additional documentation, refer to the FSH language reference.
Install or Update
To install or update to the latest version, run the following command:
$ npm install -g fsh-sushi