-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Integration
-
Fully Compatible
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Add src/mongo/db/ifr_flag_registry.yml, an auto-generated registry that
tracks all Incremental Feature Rollout (IFR) feature flags in the `rollout`
or `released` incremental rollout phases. Gate the file behind a
CODEOWNERS rule that requires @10gen/rollout-flag-managers review
on every change, so phase transitions get visibility and an approval gate
without manual bookkeeping.
What changed
- Add buildscripts/idl/generate_ifr_registry.py. The script walks all
.idl files under src/, collects feature flags declared with
`incremental_rollout_phase: rollout` or `released`, and writes a
deterministic, sorted YAML registry to
src/mongo/db/ifr_flag_registry.yml. - Call gen_ifr_registry from bazel/wrapper_hook/wrapper_hook.py before
every build, regenerating the registry in place so it always
reflects the current IDL state. Report status alongside the existing
auto_headers output. - Seed src/mongo/db/ifr_flag_registry.yml with the three current
rollout flags (featureFlagCostBasedRanker, featureFlagMultiPlanLimiter,
featureFlagUnifiedWriteExecutor) and an empty `released` section. - Update CODEOWNERS and OWNERS.yml so any change to
ifr_flag_registry.yml requires @10gen/rollout-flag-managers approval.
How to test
- Run `python3 buildscripts/idl/generate_ifr_registry.py` from the repo
root and verify src/mongo/db/ifr_flag_registry.yml regenerates
correctly. - Run the unit tests: `python3 -m pytest buildscripts/idl/tests/test_generate_ifr_registry.py`.
- Trigger a normal bazel build and confirm the wrapper hook reports
`[ifr_registry] (wrote)` or `[ifr_registry] (nochange)`.
- related to
-
SERVER-126893 IDL system should enforce uniqueness of feature flag names across files
-
- Backlog
-