mirror of
https://github.com/rustfs/rustfs.git
synced 2026-07-26 16:28:15 +00:00
4.2 KiB
4.2 KiB
Architecture Migration Progress
Status values: [ ] not started, [~] in progress, [x] complete, [!] blocked.
Current Context
- Issue:
rustfs/backlog#660 - Branch:
overtrue/arch-migration-ci-gates - Baseline:
upstream/mainatf00898d0703ac94a4a215a54b6666c747ebe6622 - PR type for this branch:
ci-gate - Runtime behavior changes: none
- Rust code changes: none
- Script changes: stabilize
scripts/check_layer_dependencies.shagainst the current accepted baseline.
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: keeps the existing layer guard stable.
- Next PR: add checks for public re-export, route matrix, and storage trait coverage before pure moves.
G-009Enforce pre-push three-expert review.- Acceptance:
crate-boundaries.mdrequires quality/architecture, migration-preservation, and testing/verification review before push.
- 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
docs-onlyortest-only: capture startup timeline and admin route-action snapshot.docs-only: inventoryecstore::config::{Config, KV, KVS}consumers.ci-gate: add focused checks for PR type vocabulary and temporary compatibility marker/register consistency.
Pre-Push Review Log
| Expert | Status | Notes |
|---|---|---|
| Quality/architecture | pass | Final review confirmed the guard scope, baseline logic, and storage target classification; the segment-level storage::ecfs / storage::s3_api follow-up passed |
| Migration preservation | pass | Final review confirmed no Rust, runtime, storage hot-path, or global-state logic changes and no missing RUSTFS_COMPAT_TODO marker |
| Testing/verification | pass | Final review accepted the full gate, focused guard checks, stale-baseline check, and negative baseline-removal check as sufficient for this ci-gate PR |
Verification Notes
Passed:
./scripts/check_layer_dependencies.sh./scripts/check_metrics_migration_refs.shbash -n scripts/check_layer_dependencies.shmake pre-commit- temporary negative check that adds an unaccepted reverse dependency to a copied fixture and confirms the guard fails
- temporary negative check that adds single-line root grouped
use crate::{admin::bad};and confirms the guard fails - temporary negative check that adds multiline root grouped
use crate::{ ... }and confirms the guard fails - temporary negative check that adds root grouped alias
use crate::{admin as admin_alias};and confirms the guard fails - temporary negative check that adds grouped
selfimports and confirms the guard fails - temporary negative check that adds a stale baseline row and confirms the guard fails
- temporary negative check that removes the accepted
crate::storage::ecfs::FSbaseline row forrustfs/src/protocols/client.rsand confirms the guard fails git diff --check- focused shell review of changed scripts
Handoff Notes
- Keep Phase 0 PRs small. Do not start Config, Storage API, Runtime, or ECStore
movement inside this
ci-gatebranch. - 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.