mirror of
https://github.com/rustfs/rustfs.git
synced 2026-07-26 16:28:15 +00:00
5.1 KiB
5.1 KiB
Architecture Migration Progress
Status values: [ ] not started, [~] in progress, [x] complete, [!] blocked.
Current Context
- Issue:
rustfs/backlog#660 - Branch:
overtrue/arch-config-helper-inventory-followup - Baseline:
upstream/mainat3c71d5ef1c63bec63780d48caa2a9fe880ea0c64 - PR type for this branch:
docs-only - Runtime behavior changes: none
- Rust code changes: none
- Docs changes: add PR-review-raised adjacent config-object helper users for
module-switch and IAM persistence without claiming a complete
com.rsmove inventory.
Phase 0 Tasks
G-001Refreshmainand record baseline.- Acceptance: baseline commit, title, and branch are recorded.
- Verification:
git fetch upstream main --prune;git rev-parse upstream/main.
G-002Create migration tracking checklist.- Acceptance: this file records task state, context, verification, and handoff.
G-003Classify PR types.- Acceptance:
crate-boundaries.mdlists exactly one allowed PR type per PR.
- Acceptance:
G-004Define re-export and wrapper policy.- Acceptance: temporary compatibility code must use
RUSTFS_COMPAT_TODO.
- Acceptance: temporary compatibility code must use
G-005Add dependency direction guard.- Acceptance:
./scripts/check_layer_dependencies.shpasses on currentupstream/mainwhile still rejecting new unaccepted layer dependencies.
- Acceptance:
- [~]
G-006Create migration loss-prevention checks.- Current branch: not in scope.
- Next PR: add checks for public re-export, route matrix, and storage trait coverage before pure moves.
G-007Create startup timeline table.- Acceptance:
startup-timeline.mdrecords current binary startup order, side effects, fatal boundaries, and readiness stages.
- Acceptance:
G-008Capture admin route-action snapshot.- Acceptance:
admin-route-action-snapshot.mdrecords current route families, handler ownership, authorization actions, public exceptions, table-catalog routes, and/minio/admincompatibility alias behavior.
- Acceptance:
G-009Enforce pre-push three-expert review.- Acceptance:
crate-boundaries.mdrequires quality/architecture, migration-preservation, and testing/verification review before push.
- Acceptance:
G-010Inventoryecstore::config::{Config, KV, KVS}consumers.- Acceptance:
ecstore-config-consumer-inventory.mdrecords the current model definitions, global accessors, persistence helpers, consumer groups, migration risks, and do-not-change contract.
- Acceptance:
- [~]
TEST-PRTYPE-001Check PR type enum consistency.- Current branch: not in scope.
- Next PR: add a mechanical check that all migration docs use the same PR type vocabulary.
Next PRs
ci-gate: add focused checks for PR type vocabulary and temporary compatibility marker/register consistency.test-only: add a mechanical admin route matrix guard from the current snapshot androute_registration_test.rs.contract: define the config-model contract surface while preserving the existingConfig,KV, andKVSbehavior.
Pre-Push Review Log
| Expert | Status | Notes |
|---|---|---|
| Quality/architecture | pass | Re-review confirmed dependency/call direction arrows, scanner global readers, selected adjacent scanner/module-switch/IAM persistence helpers, notify config-manager persistence, narrowed test wording, and Config model contract wording are source-backed |
| Migration preservation | pass | Confirmed this branch is docs-only, aligned with rustfs/backlog#660, and does not touch runtime logic, storage hot paths, global state implementation, compatibility code, scripts, or crate boundaries |
| Testing/verification | pass | Confirmed docs-only verification is sufficient after wording was narrowed and the final staged diff check covers all docs |
Verification Notes
Passed locally (docs-only):
./scripts/check_layer_dependencies.sh./scripts/check_metrics_migration_refs.shgit diff --check
Final pre-push after staging all docs:
git diff --cached --check- focused source review of
crates/ecstore/src/config/mod.rs,crates/ecstore/src/config/com.rs,rustfs/src/app/context.rs,rustfs/src/server/{event,audit}.rs,rustfs/src/admin/**/*.rs,crates/{notify,audit,targets,iam,scanner}/**/*.rs - three-expert review: quality/architecture, migration preservation, and testing/verification
Handoff Notes
- Keep Phase 0 PRs small. Do not move Config, Storage API, Runtime, or ECStore
code inside this
docs-onlybranch. - Keep CI checks in a separate
ci-gatePR so the PR type rule remains enforceable. - Do not add temporary compatibility code without a matching
RUSTFS_COMPAT_TODO(<task-id>)marker and cleanup-register entry. - The next config-model PR must preserve the current tuple-struct shapes and persistence behavior before introducing narrower provider contracts.
- Do not move
config::comuntil a dedicated helper-user inventory covers ECStore-internal persistence paths as well as adjacent non-model users.