redhat-developer / redhat-developer/vscode-openshift-tools
Process management for running odo cli instances
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 123
- Forks
- 63
- Avg merge
- 6h 16m
- Merged PRs (30d)
- 74
Description
From @jeffmaury.
While working on the odo based explorer to JBoss Tools, I noticed that we are starting long running process and those processes are not managed / controlled once launched.
I think we should do and I will explain my proposition.
The long processes are the following:
- watch
- follow log
- debug
Less critical , we also have describe, list services and component and in general each time we launch odo in a terminal. This is less critical because they are less long living.
The problem that we have is:
- we should stop them when context is switched
- we should stop them when tooling stops (seems VSCode is handling that properly)
- we should stop them when we undeploy/delete a component
Another plus is that managing them will prevent multiple executions of the same task and control of state for the debug.
Here is my proposition: each time we start a long running process we keep it at the OdoCli (for JBoss Tools / IJ) level in a map that is keyed by project / application / component / action-type.
Then, we can:
- while processing delete / undeploy, scan the map to find proper processes to stop
- while processing debug we can check that debug is already running or not
- for cleanup before tooling exit or context switch we should add a reset method (this is required btw for proxy support as we need to recompute the HTTPS_PROXY env variable that will be passed to future odo executions
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the OdoCli process-management entry point and trace how watch, follow log, and debug processes are launched, then review delete, undeploy, context-switch, and tooling-exit handling. The work is done when long-running processes are tracked by project, application, component, and action type, prevented from duplicating, and stopped or reset during the listed lifecycle events.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript, vscode
- Domain
- cli, devtools
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100