Skip to content

Releases: FHIR/fhir-package-loader

FPL 2.0.1

21 Dec 18:22
49db740
Compare
Choose a tag to compare

FHIR Package Loader 2.0.1 is a patch release that fixes FPL's file system interaction for Node 18 versions prior to Node 18.20.

The previous version, FHIR Package Loader 2.0.0, was a major release with significant breaking changes. See the FHIR Package Loader 2.0.0 Release Notes for further details about that release.

What's Changed

  • Avoid using Dirent.path and Dirent.parentPath properties by @cmoesel in #50

Full Changelog: v2.0.0...v2.0.1

FPL 2.0.0

20 Dec 17:21
808559a
Compare
Choose a tag to compare

FHIR Package Loader 2.0.0 introduces a total rewrite of the FHIR Package Loader -- with completely new interfaces, implementations, and APIs. As such, this version has significant breaking changes when compared to the previous version of the FHIR Package Loader. These changes were necessary to address limitations in the package loader as well as support future use cases (such as transitive dependencies, multiple versions of the the same package, etc).

The new FHIR Package Loader now utilizes an in-memory database (currently sql.js) to store and query metadata about packages and their resources. This reduces memory usage per-resource since now only the metadata is kept in memory (vs the entire JSON object). With more efficient memory usage, we can now load all resources from the package (instead of just conformance resources) and we will also be able to load transitive packages in the future.

Separate concerns of the package loader have been separated out into their own interfaces and implementations, including:

  • PackageDB interface w/ SQLJSPackageDB implementation. Note that sql.js was chosen due to its support for synchronous queries -- which causes the least disruption to SUSHI (which has many synchronous functions).
  • RegistryClient interface w/ FHIRRegistryClient, NPMRegistryClient, RedundantRegistryClient, and DefaultRegistryClient implementations
  • CurrentBuildClient interface w/ BuildDotFhirDotOrgClient implementation
  • PackageCache interface w/ DiskBasedPackageCache implementation
  • VirtualPackage interface w/ DiskBasedVirtualPackage and InMemoryVirtualPackage implementations
  • PackageLoader interface w/ BasePackageLoader implementation that accepts implementations of the previous interfaces and ties them together for a complete package loading solution.

This release is totally different from the v1 release. As such, any projects that use the existing v1 version of the FHIR Package Loader will need to be updated to use the brand new API introduced in v2. For more information on the new API, view the README.

What's Changed

Code Changes

  • FHIR Package Loader Rewrite by @cmoesel in #42
  • Refactor sql.js out of SQLJSPackageDB constructor by @cmoesel in #45
  • Rename newSQLJSPackageDB to createSQLJSPackageDB by @cmoesel in #47

Documentation Changes

Full Changelog: v1.0.0...v2.0.0

FPL 2.0.0-beta.3

20 Dec 16:21
3bfacee
Compare
Choose a tag to compare
FPL 2.0.0-beta.3 Pre-release
Pre-release

This release changes the name of the factory method for creating the SQLJSPackageDB from newSQLJSPackageDB to createSQLJSPackageDB. Other than that, there are no other changes.

What's Changed

Full Changelog: v2.0.0-beta.2...v2.0.0-beta.3

FPL 2.0.0-beta.2

13 Dec 17:18
c8e754b
Compare
Choose a tag to compare
FPL 2.0.0-beta.2 Pre-release
Pre-release

This second beta release removes a dependency on the sql.js package from the API by initializing the sql.js database inside the SQLJSPackageDB class (via a public async initialize() function) instead of requiring consumers to pass an initialized database into the constructor.

What's Changed

Full Changelog: v2.0.0-beta.1...v2.0.0-beta.2

FPL 2.0.0-beta.1

06 Dec 17:09
2fb67f4
Compare
Choose a tag to compare
FPL 2.0.0-beta.1 Pre-release
Pre-release

What's Changed

This beta release introduces a total rewrite of the FHIR Package Loader -- with completely new interfaces, implementations, and APIs. As such, this version has significant breaking changes when compared to the previous version of the FHIR Package Loader. These changes were necessary to address limitations in the package loader as well as support future use cases (such as transitive dependencies, multiple versions of the the same package, etc).

The new FHIR Package Loader now utilizes an in-memory database (currently sql.js) to store and query metadata about packages and their resources. This reduces memory usage per-resource since now only the metadata is kept in memory (vs the entire JSON object). With more efficient memory usage, we can now load all resources from the package (instead of just conformance resources) and we will also be able to load transitive packages in the future.

Separate concerns of the package loader have been separated out into their own interfaces and implementations, including:

  • PackageDB interface w/ SQLJSPackageDB implementation. Note that sql.js was chosen due to its support for synchronous queries -- which causes the least disruption to SUSHI (which has many synchronous functions).
  • RegistryClient interface w/ FHIRRegistryClient, NPMRegistryClient, RedundantRegistryClient, and DefaultRegistryClient implementations
  • CurrentBuildClient interface w/ BuildDotFhirDotOrgClient implementation
  • PackageCache interface w/ DiskBasedPackageCache implementation
  • VirtualPackage interface w/ DiskBasedVirtualPackage and InMemoryVirtualPackage implementations
  • PackageLoader interface w/ BasePackageLoader implementation that accepts implementations of the previous interfaces and ties them together for a complete package loading solution.

This release is totally different from the v1 release. As such, any projects that use the existing v1 version of the FHIR Package Loader will need to be updated to use the brand new API introduced in v2.

Full Changelog: v1.0.0...v2.0.0-beta.1

FPL 1.0.0

31 Jan 18:06
478cccc
Compare
Choose a tag to compare

FHIR Package Loader 1.0.0 marks the first major release of FHIR Package Loader. This release increases the Node.js version requirement to Node 18. Other than that, there are no significant changes; the promotion to v1.0.0 is mainly a recognition that FPL is now used in production software.

What's Changed

Full Changelog: v0.7.0...v1.0.0

FPL 0.7.0

18 Oct 14:24
7f251e0
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.6.0...v0.7.0

FPL 0.6.0

26 Jul 14:17
e8415ad
Compare
Choose a tag to compare

What's Changed

  • Update for resolving tarball location of custom registries to support NPM clients by @bkaney in #16

New Contributors

Full Changelog: v0.5.0...v0.6.0

FPL 0.5.0

20 Jul 20:53
3a052ef
Compare
Choose a tag to compare

What's Changed

  • Support loading package versions using a patch wildcard by @jafeltra in #15

Full Changelog: v0.4.0...v0.5.0

FPL 0.4.0

12 Jul 15:16
86c3734
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.3.0...v0.4.0