$darkmode
Elektra 0.11.0
Error Semantics

Problem

While we have a classification of errors and warnings, it remains unclear when plugins actually should emit errors and warnings.

Constraints

Assumptions

  • Users want a uniform behavior within Elektra, so plugins must behave uniformly.

Considered Alternatives

  • freedom to plugin writers
  • strict rules and conformance tests for plugins

Decision

Provide guidelines in the form as tutorials, covering:

  • prefer errors to warnings
  • that any not understood metadata (e.g. types), should lead to an error
  • that wrong specifications, like kdb meta-set /tests/ipaddr/ipv4 check/ipaddr ipv8 should be rejected
  • if the value does not confirm exactly to the specified type, an error should be emitted (e.g. only 0 or 1 as boolean)
  • anything else that is beyond the capabilities of a plugin (not implemented), should lead to an error

Violations against these guidelines can be reported as bug and then either:

  • the bug gets fixed
  • the plugin get a worse infos/status but still get shipped with 1.0
  • the plugin gets removed

Rationale

It is easier for developers if there are clear expectations on how a plugin should behave. And it is much easier for overall Elektra if there is more consistency.

Implications

  • more checks&errors in storage plugins are needed

Related Decisions

Notes