Skip to content

feat: create and manage standalone Holoscan Modules - #220

Draft
wyli wants to merge 1 commit into
mainfrom
feat/standalone-module-create
Draft

feat: create and manage standalone Holoscan Modules#220
wyli wants to merge 1 commit into
mainfrom
feat/standalone-module-create

Conversation

@wyli

@wyli wyli commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

Summary

This adds a first-class workflow for creating and developing standalone Holoscan Modules with the global holoscan command. Module authors no longer need a HoloHub checkout or a repository-local holoscan/holohub launcher.

Module workflow

python -m pip install 'holoscan-cli[create]'
holoscan create "My Sensor"
cd holoscan-my-sensor

holoscan run-container
holoscan build my_sensor_pipeline
holoscan run my_sensor_pipeline
holoscan test

The generated repository includes operator and application examples, Module metadata, CMake and Python packaging support, tests, CI scaffolding, a development Dockerfile, and an exact requirements-cli.txt contract.

The CLI discovers the Module from its metadata when commands run from the repository root or a nested directory. It also supports explicitly selecting a Module from elsewhere:

holoscan --project-root /path/to/holoscan-my-sensor list

Creation can populate a missing destination, an empty directory, or a cloned repository containing only .git. Existing Git state is preserved, while non-empty destinations are rejected instead of overwritten.

Existing HoloHub wrapper behavior and custom Cookiecutter templates remain supported. Creation dependencies stay optional through the holoscan-cli[create] extra.

Validation

  • 466 unit tests passed, 1 skipped
  • Full pre-commit suite passed
  • Wheel and source-distribution validation passed
  • Clean-environment package installation and Module creation passed
  • Generated development image build passed
  • End-to-end Module build, run, test, install, and package lifecycle passed

AI-assisted: Created with Codex/GPT at the user's request.

Generate launcher-free Modules with an exact requirements-cli.txt contract, activate metadata-derived project defaults before CLI imports, and reject host or container version drift before lifecycle work.\n\nSupport safe missing, empty, and Git-only creation targets, package the canonical wheelhouse/Docker flow, and cover installed-artifact creation.

Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: Wenqi Li <wenqil@nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented Aug 11, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@github-actions

Copy link
Copy Markdown

Dependency Review

The following issues were found:
  • ✅ 0 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ⚠️ 1 package(s) with unknown licenses.
See the Details below.

License Issues

src/holoscan_cli/setup_scripts/requirements.template.txt

PackageVersionLicenseIssue Type
packaging>= 23.0NullUnknown License
Allowed Licenses: Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, MIT, MPL-2.0, Python-2.0, Unlicense, 0BSD

OpenSSF Scorecard

PackageVersionScoreDetails
pip/packaging >= 23.0 UnknownUnknown

Scanned Files

  • src/holoscan_cli/setup_scripts/requirements.template.txt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant