@mksionek i had to fix a CE test: !226100 (a16eb2a0)
roll_up is actually part of CE (and just always false)instance_double didn't work in EE when we set EE variablesNicolas Dular (a16eb2a0) at 18 Mar 14:08
Fix CE tests
Add EE work item REST API features and N+1 test
Add EE entity extensions for work item widgets:
Add N+1 query prevention test covering all EE features:
Minimal CE changes (prepend_mod only):
| Before | After |
|---|---|
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Nicolas Dular (172bca6f) at 18 Mar 13:58
Add N+1 query prevention test for development feature in project scope
... and 5 more commits
@mksionek I think most of this work is done by all the presenter work we did where we read from the WorkItem instead of the epic. At least for the main epic entitity.
For the relationships like related_items or epic_issues etc, we have the other epics to cover that work.
WDYT about closing this ?
We want to stop using epics table as much as possible. This MR preps for refactor of ee/lib/gitlab/graphql/loaders/bulk_epic_aggregate_loader.rb file.
To keep changes limited for ease of review, this code added here is not used yet. It will be in the second part of this work.
This MR refactors work item hierarchy traversal methods to improve code organization and maintainability. It introduces a new generic service for aggregating child issue data and consolidates hierarchy traversal logic.
Changes:
WorkItems::AggregateChildIssuesService - Adds a dedicated service to aggregate child issue metadata for work items (epics). This service:
descendant_ids_for method in WorkItem model - Introduces a reusable method for traversing work item hierarchies:
Gitlab::WorkItems::WorkItemHierarchy for consistent traversal logicids_for_base_and_decendants to ids_for_base_and_descendants_legacy (fixes typo)issue_metadata_for_epics to issue_metadata_for_epics_legacy
Benefits:
WorkItem modelFirst draft of this refactor is here: !223043 <= this version was not polished and not final, but I wanted to see if it's even possible. It's just for a reference.
| Before | After |
|---|---|
There are no visible changes now.
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
!227705 (merged) the related MR that added the field to project_attributes.yml that we read from. Since it's an EE-only feature, we need to remove it in the CE test.
@GitLabDuo read the whole diff, it's guarded
Nicolas Dular (4757c42a) at 18 Mar 12:04
Fix FOSS test for pre_receive_secret_detection_enabled
This is an EE-only feature, so we need to exclude it from the keys in the CE specs.
| Before | After |
|---|---|
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Nicolas Dular (8e27144b) at 18 Mar 12:02
Fix FOSS test for pre_receive_secret_detection_enabled
I am approving as the logic is fine epics table or not.
description_versions table, setting issue_id to the value of the corresponding epic's issue_id, and setting epic_id to null.Not provided
https://console.postgres.ai/gitlab/gitlab-production-main/sessions/49881/commands/148334
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Related to #454439
Thanks @mdangelo6 I'd have expected that we iterate over the epics table as it's the way smaller table. Let me know if you want to change the approach @mdangelo6 and @bmarjanovic
I also currently check in the replica if that's the latest description version, but I am 99% sure it's fine
Wouldn't it be easier and faster to iterate over the epics table as it's the way smaller (300x smaller) table?
Hey @daniyalAD would you mind to perform the review on this MR please?