Skip to content

Release Guide

Lee Surprenant edited this page Jun 4, 2021 · 74 revisions

Maven Artifacts

Starting with version 4.7.0, the IBM FHIR Server modules are published at Maven Central.

Previous versions were published to Bintray and subsequently copied to the corresponding version under https://github.com/IBM/FHIR/releases once we learned that Bintray is being sunset.

For uninterrupted access to package versions prior to 4.7.0, please download the corresponding release-repo zip from the corresponding release and cache your repository locally.


Checklist

New modules

  • Check for any pull requests or issues with the label "new-module"
    • Think about whether there might be a new module that was not labeled (and encourage the author to use the label)
    • Should this module be deployed? if not, add a maven.deploy.skip property to the module.

Build

  • In build/docker/download-schema-jar.sh, make sure SCHEMA_VERSION is set to the previous release. This will ensure that the migration is tested from the previous schema version.

If you have added a new Implementation Guide (fhir-ig-*), ensure the following steps were performed:

  • update fhir-validation/pom.xml with the latest implementation guide maven profile to support custom validation assembly builds
  • update build/release/config/release.json with the custom profile under the fhir-parent entry
  • update fhir-validation/src/main/assembly/README.txt to indicate the version of the new implementation guide
  • update docs/src/pages/guides/FHIRValidationGuide.md to advertise our pre-packaged support for this new IG

When ready, check out the main branch and run the following:

git tag [major].[minor].[patch]
git push --tags

This tag-push kickoffs the following workflows in github actions:

  • Build and Release
  • Javadocs Build for Site

Monitor the actions for success (usually over an hour).

Sonatype OSSRH

  • Ensure that all artifacts (jars, sources jars, test jars, poms, and zips) were uploaded with success
  • Release from the sonatype console using the Continuous integration user.

DockerHub

Website

  • Confirm the Javadocs are Posted
  • Confirm the Site is updated with relevant details

Security

Release

Communication

Draft the next release

  • Update build/docker/download-schema-jar.sh to set SCHEMA_VERSION the version that you just released. This will ensure that the migration is tested from the previous schema version.
  • Increment the patch version in all the pom.xml files. We may chose to bump the major or minor version numbers later, but for now just do the patch. Eventually, we'd like to version each module independently and this step will go away.
PREVIOUS=4.3.1-SNAPSHOT
NEXT=4.3.2-SNAPSHOT
find . -iname pom.xml -not -path '**/target/*' -exec sed -i '' s/${PREVIOUS}/${NEXT}/g {} +
  • Create a draft release for the next release, using the following template which is based on https://keepachangelog.com/en/1.0.0/, replacing YOUR_VERSION_HERE with the version tag you expect to use (e.g. bumping the patch number from the release you just made).
This version of the IBM FHIR Server supports HL7 FHIR Specification version [v4.0.1](https://www.hl7.org/fhir/r4/index.html).  

This release focuses on fixing bugs and implementing ...


### Added
- 

### Changed
-

### Deprecated
-

### Removed
-

### Fixed
-

### Security
-

<a id="YOUR_VERSION_HERE-migration-considerations"/>

## Migration Considerations
To migrate from a prior version of the IBM FHIR Server to version YOUR_VERSION_HERE:
1. Analyze configuration changes and prepare for the upgrade
   * SUMMARY OF FHIR-SERVER-CONFIG CHANGES FOR THE RELEASE
   * SUMMARY OF LIBERTY SERVER.XML CHANGES FOR THE RELEASE
2. Stop the server (or otherwise prevent write requests).
3. Perform a database back up.
4. Run the [fhir-persistence-schema-YOUR_VERSION_HERE-cli.jar --update-schema](https://github.com/IBM/FHIR/tree/main/fhir-persistence-schema#deploy-new-schema) command.  If using a non-admin user (recommended), also perform the [--grant-to](https://github.com/IBM/FHIR/tree/master/fhir-persistence-schema#grant-privileges-to-data-access-user-db2-only) action.
6. Deploy the new server.
7. IF NEEDED Perform [re-indexing](https://ibm.github.io/FHIR/guides/FHIRSearchConfiguration#2-re-index).
   * SUMMARY OF REINDEX NEEDS FOR THE RELEASE

Special considerations for upgrading to YOUR_VERSION_HERE:
* SUMMARY OF SPECIAL CONSIDERATIONS FOR THIS RELEASE

If upgrading from a version prior to PRIOR_VERSION_HERE, be sure to review the applicable migration considerations:
* [PRIOR_VERSION_HERE migration considerations](https://github.com/IBM/FHIR/releases#PRIOR_VERSION_HERE-migration-considerations)

Note: for schema migrations, only the latest version of the fhir-persistence-schema tool must be run.

## Using the Release
Run or extend the Docker image from https://hub.docker.com/r/ibmcom/ibm-fhir-server or download [fhir-install-YOUR_VERSION_HERE.zip](https://github.com/IBM/FHIR/releases/download/YOUR_VERSION_HERE/fhir-install-YOUR_VERSION_HERE.zip) and install as described at https://ibm.github.io/FHIR/guides/FHIRServerUsersGuide.

Executable jar files for the fhir-persistence-schema, fhir-swagger-generator, fhir-bucket, and fhir-path projects are also available:
* [fhir-persistence-schema-YOUR_VERSION_HERE-cli.jar](https://github.com/IBM/FHIR/releases/download/YOUR_VERSION_HERE/fhir-persistence-schema-YOUR_VERSION_HERE-cli.jar)
* [fhir-swagger-generator-YOUR_VERSION_HERE-cli.jar](https://github.com/IBM/FHIR/releases/download/YOUR_VERSION_HERE/fhir-swagger-generator-YOUR_VERSION_HERE-cli.jar)
* [fhir-bucket-YOUR_VERSION_HERE-cli.jar](https://github.com/IBM/FHIR/releases/download/YOUR_VERSION_HERE/fhir-bucket-YOUR_VERSION_HERE-cli.jar)
* [fhir-path-YOUR_VERSION_HERE-cli.jar](https://github.com/IBM/FHIR/releases/download/YOUR_VERSION_HERE/fhir-path-YOUR_VERSION_HERE-cli.jar)

Usage is documented in the corresponding README files:
* https://github.com/IBM/FHIR/tree/master/fhir-persistence-schema
* https://github.com/IBM/FHIR/tree/master/fhir-swagger-generator
* https://github.com/IBM/FHIR/tree/master/fhir-bucket
* https://github.com/IBM/FHIR/tree/master/fhir-path

For Maven users, all project binaries are posted to Maven Central with a version of `YOUR_VERSION_HERE`.
Clone this wiki locally