Skip to content

Commit

Permalink
Merge V0.6 release notes to main (#452)
Browse files Browse the repository at this point in the history
* Release v0.6.0, pining holoscan~=0.6.0

Signed-off-by: M Q <[email protected]>

* Bump version: 0.5.1 → 0.6.0

Signed-off-by: M Q <[email protected]>

---------

Signed-off-by: M Q <[email protected]>
  • Loading branch information
MMelQin authored Sep 1, 2023
1 parent 06a4182 commit 1aa54c8
Show file tree
Hide file tree
Showing 5 changed files with 56 additions and 14 deletions.
2 changes: 1 addition & 1 deletion .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 0.5.1
current_version = 0.6.0
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)((?P<release>a|b|rc)(?P<build>\d+))?
serialize =
{major}.{minor}.{patch}{release}{build}
Expand Down
22 changes: 11 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,40 +50,40 @@ pip install scikit-image
python examples/apps/simple_imaging_app/app.py -i examples/apps/simple_imaging_app/brain_mr_input.jpg -o output

# Package app (creating MAP Docker image), using `-l DEBUG` option to see progress.
monai-deploy package examples/apps/simple_imaging_app -t simple_app:latest -l DEBUG
monai-deploy package examples/apps/simple_imaging_app -c simple_imaging_app/app.yaml -t simple_app:latest --platform x64-workstation -l DEBUG

# Run the app with docker image and an input file locally
## Copy a test input file to 'input' folder
mkdir -p input && rm -rf input/*
cp examples/apps/simple_imaging_app/brain_mr_input.jpg input/
## Launch the app
monai-deploy run simple_app:latest input output
monai-deploy run simple_app-x64-workstation-dgpu-linux-amd64:latest -i input -o output
```

### [Tutorials](https://docs.monai.io/projects/monai-deploy-app-sdk/en/latest/getting_started/tutorials/index.html)
### [Tutorials](https://docs.monai.io/projects/monai-deploy-app-sdk/en/stable/getting_started/tutorials/index.html)

Tutorials are provided to help getting started with the App SDK, to name but a few below.

#### [1) Creating a simple image processing app](https://docs.monai.io/projects/monai-deploy-app-sdk/en/latest/getting_started/tutorials/simple_app.html)
#### [1) Creating a simple image processing app](https://docs.monai.io/projects/monai-deploy-app-sdk/en/stable/getting_started/tutorials/simple_app.html)

#### [2) Creating MedNIST Classifier app](https://docs.monai.io/projects/monai-deploy-app-sdk/en/latest/getting_started/tutorials/mednist_app.html)
#### [2) Creating MedNIST Classifier app](https://docs.monai.io/projects/monai-deploy-app-sdk/en/stable/getting_started/tutorials/mednist_app.html)

YouTube Video:
YouTube Video (to be updated with the new version):

- [MedNIST Classification Example](https://www.youtube.com/watch?v=WwjilJFHuU4)

### [3) Creating a Segmentation app](https://docs.monai.io/projects/monai-deploy-app-sdk/en/latest/getting_started/tutorials/segmentation_app.html)
### [3) Creating a Segmentation app](https://docs.monai.io/projects/monai-deploy-app-sdk/en/stable/getting_started/tutorials/segmentation_app.html)

YouTube Video:
YouTube Video (to be updated with the new version):

- [Spleen Organ Segmentation - Jupyter Notebook Tutorial](https://www.youtube.com/watch?v=cqDVxzYt9lY)
- [Spleen Organ Segmentation - Deep Dive](https://www.youtube.com/watch?v=nivgfD4pwWE)

### [4) Creating a Segmentation app including visualization with Clara Viz](https://docs.monai.io/projects/monai-deploy-app-sdk/en/latest/getting_started/tutorials/segmentation_clara-viz_app.html)
### [4) Creating a Segmentation app including visualization with Clara Viz](https://docs.monai.io/projects/monai-deploy-app-sdk/en/stable/getting_started/tutorials/segmentation_clara-viz_app.html)

### [5) Creating a Segmentation app consuming a MONAI Bundle](https://docs.monai.io/projects/monai-deploy-app-sdk/en/latest/getting_started/tutorials/monai_bundle_app.html)
### [5) Creating a Segmentation app consuming a MONAI Bundle](https://docs.monai.io/projects/monai-deploy-app-sdk/en/stable/getting_started/tutorials/monai_bundle_app.html)

### [Examples](https://docs.monai.io/projects/monai-deploy-app-sdk/en/latest/getting_started/examples.html)
### [Examples](https://docs.monai.io/projects/monai-deploy-app-sdk/en/stable/getting_started/examples.html)

<https://github.com/Project-MONAI/monai-deploy-app-sdk/tree/main/examples/apps> has example apps that you can see.

Expand Down
7 changes: 7 additions & 0 deletions docs/source/release_notes/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@
:hidden:
:maxdepth: 2
```
## Version 0.6

```{toctree}
:maxdepth: 1
v0.6.0
```
## Version 0.5

Expand Down
36 changes: 36 additions & 0 deletions docs/source/release_notes/v0.6.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Version 0.6.0

## What's new in 0.6.0
- App SDK has been migrated to be dependent on [NVIDIA Holoscan SDK](https://developer.nvidia.com/holoscan-sdk), latest version [v0.6](https://github.com/nvidia-holoscan/holoscan-sdk/releases). As such, breaking changes are introduced in this version of the App SDK.
- 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., `conditions`, `executors`, `graphs`, `logger`, and `resources`. As such, the [Modudle API documentation](https://docs.monai.io/projects/monai-deploy-app-sdk/en/stable/modules/index.html) may show a mixture of `monai.deploy` and `holoscan`.

- For `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 `operator` class.

- Python decorator support for `Application` and `Operator` class is absent in this release, so alternative approaches must be used
- `Operator` input(s) and output(s) now must be defined in the `setup()` method of this class
- `Application` and `Operator` cannot 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

- Derived `Operator` class must first assign its attributes before calling the constructor of the base `Operator`.

- `Application`'s `run()` method can no longer pass the file I/O paths, e.g. `input`, `output`, and `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 `exec` sub-command. However, when directly running the application with Python, command line options for `--input`, `--output`, and `--model`, are supported if the application make use of the `Application`'s class method, `init_app_context(argv)`.

- 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.


Please also see the <a href="https://github.com/Project-MONAI/monai-deploy-app-sdk/issues?q=is%3Aissue+is%3Aclosed">closed issues on Github</a> and the <a href="https://github.com/Project-MONAI/monai-deploy-app-sdk/pulls?q=is%3Apr+is%3Aclosed">closed pull requests on Github</a>.

## Known issues

- When passing a model file to the packager command, `monai-deploy package`, its whole parent folder content is copied to the container image's `models` folder, 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.

## Additional information
Please visit [GETTING STARTED](/getting_started/index) guide and follow the tutorials.

You can learn more about SDK usage through [DEVELOPING WITH SDK](/developing_with_sdk/index).

Please let us know how you like it and what could be improved by [submitting an issue](https://github.com/Project-MONAI/monai-deploy-app-sdk/issues/new/choose) or [asking questions](https://github.com/Project-MONAI/monai-deploy-app-sdk/discussions)
3 changes: 1 addition & 2 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@ python_requires = >= 3.8
# cucim
install_requires =
numpy>=1.21.6
networkx>=2.4
holoscan>=0.5.0
holoscan~=0.6.0
colorama>=0.4.1
typeguard>=3.0.0

Expand Down

0 comments on commit 1aa54c8

Please sign in to comment.