Skip to content

[feature] Replace odo dev/odo dev --debug with a native TypeScript engine (CRW-10963) - #6097

Draft
vrubezhny wants to merge 1 commit into
redhat-developer:mainfrom
vrubezhny:feature/inner-loop
Draft

[feature] Replace odo dev/odo dev --debug with a native TypeScript engine (CRW-10963)#6097
vrubezhny wants to merge 1 commit into
redhat-developer:mainfrom
vrubezhny:feature/inner-loop

Conversation

@vrubezhny

@vrubezhny vrubezhny commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Replaces the CLI shell-out to odo dev / odo dev --debug with a native TypeScript dev-mode engine, following the same pattern already used to replace odo init/odo deploy/odo undeploy/odo describe. Dev mode now runs directly against the current Kubernetes/OpenShift cluster or a local podman runtime — deploying/starting the dev container(s), performing an initial .gitignore-aware file sync plus an ongoing file watcher that syncs and restarts the run/debug command on change, executing that command, and forwarding its endpoints — with no remaining dependency on the odo CLI for this feature. The component context-menu commands (dev/dev.manual/dev.onPodman/dev.onPodman.manual/exitDevMode/ forceExitDevMode/showDevTerminal) are rewired to this engine, and the OpenShift Terminal panel UX (live output, Ctrl-C-to-stop) is preserved via a generalized virtual-terminal mode rather than a real spawned process. describe's status reporting was also reworked to accurately reflect simultaneous Dev/Deploy state, managed-by, and the actual cluster platform (OpenShift/Kubernetes/Kind/Minikube) for both engines.

Extends the Debug command to support Go components in addition to Java, Node.js, and Python, with automatic Delve debugger configuration and VS Code debugger attachment.

Adds unit and integration test coverage for all of the new dev-engine modules (session lifecycle, cluster/podman platforms, file sync, command execution, port-forwarding, terminal bridging) and extends existing test suites (describe, kubeUtils, component) to cover the reworked behavior.

Assisted-By: Claude Sonnet 5 noreply@anthropic.com

@vrubezhny vrubezhny changed the title [feature] Replace odo dev/odo dev --debug with a native TypeScript en… [feature] Replace odo dev/odo dev --debug with a native TypeScript engine (CRW-10963) Sep 8, 2026
@vrubezhny

Copy link
Copy Markdown
Contributor Author

A short demo of Start/Stop Dev Mode on local Kind cluster and Podman:

Dev-Mode-Kind-and-Podman.mp4

@vrubezhny
vrubezhny marked this pull request as draft September 8, 2026 22:33
@codecov

codecov Bot commented Sep 8, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 84.80726% with 134 lines in your changes missing coverage. Please review.
✅ Project coverage is 53.72%. Comparing base (69134e9) to head (f17e208).

Files with missing lines Patch % Lines
src/openshift/component.ts 68.42% 36 Missing ⚠️
src/devfile/inner-loop/podmanDevPlatform.ts 84.24% 26 Missing ⚠️
src/devfile/inner-loop/clusterDevPlatform.ts 88.07% 13 Missing ⚠️
...rc/webview/openshift-terminal/openShiftTerminal.ts 31.57% 13 Missing ⚠️
src/devfile/inner-loop/devCommandExec.ts 75.00% 12 Missing ⚠️
src/devfile/inner-loop/devSession.ts 71.05% 11 Missing ⚠️
src/devfile/deployStateFile.ts 86.36% 6 Missing ⚠️
src/devfile/inner-loop/devTerminalBridge.ts 61.53% 5 Missing ⚠️
src/devfile/describe.ts 92.10% 3 Missing ⚠️
src/devfile/dev.ts 90.90% 3 Missing ⚠️
... and 4 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #6097      +/-   ##
==========================================
+ Coverage   50.95%   53.72%   +2.77%     
==========================================
  Files         118      132      +14     
  Lines       11152    11889     +737     
  Branches     2553     2678     +125     
==========================================
+ Hits         5682     6387     +705     
- Misses       5463     5496      +33     
+ Partials        7        6       -1     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@vrubezhny
vrubezhny force-pushed the feature/inner-loop branch 6 times, most recently from 670976a to 5377ee1 Compare September 9, 2026 21:27
…gine (CRW-10963)

Replaces the CLI shell-out to `odo dev` / `odo dev --debug` with a native
TypeScript dev-mode engine, following the same pattern already used to
replace `odo init`/`odo deploy`/`odo undeploy`/`odo describe`. Dev mode now
runs directly against the current Kubernetes/OpenShift cluster or a local
podman runtime — deploying/starting the dev container(s), performing an
initial `.gitignore`-aware file sync plus an ongoing file watcher that
syncs and restarts the run/debug command on change, executing that command,
and forwarding its endpoints — with no remaining dependency on the `odo`
CLI for this feature. The component context-menu commands
(dev/dev.manual/dev.onPodman/dev.onPodman.manual/exitDevMode/
forceExitDevMode/showDevTerminal) are rewired to this engine, and the
OpenShift Terminal panel UX (live output, Ctrl-C-to-stop) is preserved via
a generalized virtual-terminal mode rather than a real spawned process.
`describe`'s status reporting was also reworked to accurately reflect
simultaneous Dev/Deploy state, `managed-by`, and the actual cluster
platform (OpenShift/Kubernetes/Kind/Minikube) for both engines.

Extends the Debug command to support Go components in addition to Java,
Node.js, and Python, with automatic Delve debugger configuration and VS Code
debugger attachment.

Adds unit and integration test coverage for all of the new dev-engine
modules (session lifecycle, cluster/podman platforms, file sync, command
execution, port-forwarding, terminal bridging) and extends existing test
suites (`describe`, `kubeUtils`, `component`) to cover the reworked
behavior.

Signed-off-by: Victor Rubezhny <vrubezhny@redhat.com>
Assisted-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant