labgrid-project / labgrid-project/labgrid

Unify Errors and Exceptions

Open
#735 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

good first issue
Dominant language
Python
Stars
528
Forks
278
Avg merge
2d 19h
Merged PRs (30d)
4

Description

We have currently use ExecutionError all over the stack and do not distinguish whether it is a function interacting with the target or a function used to communicate over SSH. Similarly, the remote client defines its own Error class and only handles exceptions for the derived exceptions of this class correctly. We should come up with a fitting hierarchy and implement this, this would allow us to emit better error messages on the user side. This will be a breaking change.

Maybe somethign similar to:

LabgridException
 +-- TargetError
 |    +-- DriverError
 |    |    +-- DriverExecutionError
 |    |    |    +-- ShellExecutionError
 |    |    |    +-- SSHExecutionError
 +-- UtilError
 |    +-- SSHUtilError
 |    +-- ProcessManagerError

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by inventorying the existing ExecutionError usage across the stack and the remote client's Error class and exception handling. Done means a fitting hierarchy distinguishes target, driver, shell, SSH, utility, and process-manager errors, with clearer user-facing messages and the breaking change accounted for.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
embedded-iot
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.