What’s new in 0.6.0¶
All example applications and Jupyter Notebooks are updated to be compatible with the new version of App SDK.
Key changes and migration guide¶
In App SDK core module,
monai.deploy.core, instead of through a wrapper layer, Holoscan SDK core sub modules are all directly imported and exposed under
monai.deploy.core, mixed in with the ones original to the App SDK. The same also applies to those modules, e.g.,
resources. As such, the Modudle API documentation may show a mixture of
monai.deploy.operators, Holoscan SDK built-in operators are selectively imported and exposed, with the main reason being to avoid introducing extra dependencies on system packages. All of the original and existing App SDK built-in operators are still present and migrated to be based on Holoscan SDK base
Python decorator support for
Operatorclass is absent in this release, so alternative approaches must be used
Operatorinput(s) and output(s) now must be defined in the
setup()method of this class
Operatorcannot decorate or serve out the resource and package dependencies, which are required when packaging the application into MONAI Application Package. So the application developer must now provide the Python package requirement file and application configuration file when creating a MAP
Operatorclass must first assign its attributes before calling the constructor of the base
run()method can no longer pass the file I/O paths, e.g.
models, to the execution context of each operator when its
compute()method is called. For operators depending on them, the I/O paths need to be passed in as arguments in the constructor.
App SDK CLI,
monai-deploy, no longer support
execsub-command. However, when directly running the application with Python, command line options for
--model, are supported if the application make use of the
Application’s class method,
App SDK CLI packaging command,
monai-deploy package, requires additional command line parameters, namely, application configuration yaml file, Python requirements file, and the platform configuration (as it supports both x86-64 and ARMv8 AArch64 targets). Details can be found in the tutorials and Users Guide.
When passing a model file to the packager command,
monai-deploy package, its whole parent folder content is copied to the container image’s
modelsfolder, which can cause runtime application failure if unexpected contents are in the source folder. So, please ensure only the model file itself is in the source folder. This issue is scheduled to be fixed in the next release. For applications with multiple models, the requirement on folder structure remain the same.