Skip to content

Improve clarity of FF changelog flow diagram

Malcolm Locke requested to merge mallocke/update-ff-changelog-flow-diagram into master

What does this MR do and why?

The documentation for changelog entries for feature flag roll out includes a flow chart for determining what type of changelog entry to add for a given change. The flow chart is rather confusing in it's current state as it doesn't follow a flow of initial state -> action -> outcome.

This change shows the flow in a more logical way.

Before

graph LR
    A[flag: default off] -->|'added' / 'changed' / 'fixed' / '...'| B(flag: default on)
    B -->|'other'| C(remove flag, keep new code)
    B -->|'removed' / 'changed'| D(remove flag, keep old code)
    A -->|'added' / 'changed' / 'fixed' / '...'| C
    A -->|no changelog| D

After

flowchart LR
  FDOFF(Flag is currently\n`default: off`)
  FDON(Flag is currently\n`default: on`)
  CDO{Change to\n`default: on`}
  ACF(added / changed / fixed / '...')
  RF{Remove flag}
  RF2{Remove flag}
  NC(No changelog)
  RC(removed / changed)
  OTHER(other)

  FDOFF -->CDO-->ACF
  FDOFF -->RF
  RF-->|Keep new code?| ACF
  RF-->|Keep old code?| NC

  FDON -->RF2
  RF2-->|Keep old code?| RC
  RF2-->|Keep new code?| OTHER

Note re change from default: on to default: off

Note neither the old or the new flow chart show the changelog requirement for changing from default: on to default: off. With the new layout it's more obvious that this is not defined.

As this is not currently documented I'm not certain of what the changelog should include so I have left it out. This can be addressed in a follow up.

Edited by Malcolm Locke

Merge request reports