AbsaOSS / AbsaOSS/pramen

Calculate and log stability metric for each operation

Open
#337 0 comments 0 reactions 0 assignees View on GitHub
enhancement Pramen-Scala
Dominant language
Scala
Stars
31
Forks
4
Avg merge
1d 10m
Merged PRs (30d)
4

Description

## Background
Stability metric is computed based on the number of input and output dependencies:
![Screenshot 2024-01-11 at 10 32 42](https://github.com/AbsaOSS/pramen/assets/4082463/5fcb719b-fb60-4d73-b0ce-73382f86d6db)
- `I` - number of input dependencies - the number of operations the selected operation depends on.
- `O` - output of dependencies - the number of operations the selected operation depends on.
- `S` - stability metric, where `0` maximum unstable (can be changed without affecting other components, and close to `1` is maximum stable, e.g. is harder to change since many other operations depend on it.

Once stability metrics are calculated, we can check if stable components depend on unstable components and give a note about it.

More on the topic: https://ericbackhage.net/clean-code/the-stable-dependencies-principle/
and https://medium.com/@endika_iglesias/how-to-calculate-the-stability-of-a-component-957bb66af3f7

## Feature
Calculate and log stability metric for each operation.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.