Skip to content

Introduce worker to make OKR progress rollups ASYNC

Abhilash Kotte requested to merge akotte-make-okr-rollups-async into master

What does this MR do and why?

Introduce a worker to make progress rollups of OKRs asynchronous. This logic is under a feature flag okr_automatic_rollups_async and if this is enabled then rollups will be async else synchronous

Issue - #388394 (closed)

Screenshots or screen recordings

Screenshots are required for UI changes, and strongly recommended for all other merge requests.

How to set up and validate locally

  1. Open rails console by running bin/rails console within GDK directory.
  2. Enable the feature flag :hierarchy_db_restrictions on a project; Feature.enable(:hierarchy_db_restrictions).
  3. Enable the feature flag :okrs_mvc on the same project; Feature.enable(:okrs_mvc).
  4. Enable the feature flag :okr_automatic_rollups on the same project; Feature.enable(:okr_automatic_rollups)
    1. Enable the feature flag :okr_automatic_rollups_async on the same project; Feature.enable(:okr_automatic_rollups_async)
  5. Visit issues list page for the project by navigating to http://gdk.test:3000/gitlab-org/gitlab-test/-/issues.
  6. Create an objective by clicking on dropdown button next to New issue and selecting New objective from the dropdown.
  7. Once objective is created, click on it to visit its Work Item page, you should be able to see Tree View below the description.
  8. Use Add dropdown button create/add key results. 1.Try changing the progress for KR and you should see the progress updates rollup to all the parents.
  9. Click on any KR to go to it's page and repeat the step

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Abhilash Kotte

Merge request reports