Files
rustfs/scripts/ecstore-module-lint-register.txt
T
Zhengchao An 2ebf8bc138 refactor(ecstore): drop the client shim, import rustfs-s3-client directly (#6668)
* refactor(ecstore): drop the client shim, import rustfs-s3-client directly

Completes the migration window opened by the rustfs-s3-client extraction (rustfs/backlog#1842 PR3): every consumer now imports the client crate directly and the crate::client shim is deleted.

- All in-crate crate::client:: paths (tier warm backends, tier core, lifecycle tier_sweeper, replication storage boundary, set_disk) now import rustfs_s3_client::* directly; crates/ecstore/src/client/mod.rs and the lib.rs mod client declaration are gone.
- The two server-side modules historically misfiled under client/ move to their real homes: object_api_utils.rs to crates/ecstore/src/object_api/ (it builds engine-side object readers/writers), and object_handlers_common.rs to crates/ecstore/src/bucket/lifecycle/ (it is the lifecycle noncurrent-version cleanup helper). The latter now routes its replication calls through the lifecycle replication_sink boundary (schedule_delete wrapper and the sink's ReplicationObjectBridge re-export), as the lifecycle guard requires.
- The ecstore public facade drops api::client: object_api_utils is exposed as api::object_api_utils, and the rustfs crate takes admin_handler_utils (AdminError) from rustfs-s3-client directly (new dependency).
- Guard updates: the migration guard no longer pins mod client in ecstore's lib.rs or the admin_handler_utils facade module (it pins the new api::object_api_utils facade instead), and the module-lint register follows object_api_utils.rs to its new path.

Verification: cargo check -p rustfs-ecstore --all-targets and -p rustfs; cargo fmt --all; tier/transition/lifecycle-focused nextest (626 passed) and the decommission/rebalance/heal families in a filtered run (603 passed; the full-suite parallel run only fails on this machine's known decommission/rebalance baseline flakes, which pass in filtered reruns and fail identically on pristine origin/main); layer/migration/s3s/logging/error-format/doc-path guard scripts all pass.

* docs(architecture): record the S3 client extraction and reword invariant 4 (#6669)

Closes the documentation step of rustfs/backlog#1842. ARCHITECTURE.md invariant 4 now states the serving-vs-consuming distinction the adversarial ruling asked for: ecstore must not serve HTTP/S3 wire types, while consuming remote S3 endpoints is a legitimate engine capability that lives in the extracted rustfs-s3-client crate. The violation note is updated from the pre-extraction snapshot (58 files, embedded client) to the current ratcheted state (shrink-only S3S_ECSTORE_FILES_BASELINE in scripts/check_s3s_footprint.sh, object_lock converted first), and the crate map gains s3-client. ecstore-module-split-plan.md gets the client-directory entry the plan was missing: a Current Shape row and a completed-extraction section describing the pure-move + shim + direct-import sequence and the re-homing of the two misfiled server-side modules.
2026-08-26 22:02:36 +08:00

114 lines
6.6 KiB
Plaintext

# ecstore module-level lint blanket register (backlog#1823 step 9)
#
# Each line is `path|lint` for a `#![allow(<lint>)]` at the top of an ecstore
# source file. These blankets disable the lint for a whole module, so a real
# defect introduced anywhere in the file goes unreported.
#
# The guard in scripts/check_architecture_migration_rules.sh compares this file
# against the tree and fails on ANY difference, in either direction:
#
# * a blanket not listed here -> new suppression, justify it in the PR
# * a line here with no blanket -> delete the line in the same PR
#
# Exact match is deliberate. A "no new entries" rule would let the register rot
# into an amnesty list, which is the failure mode backlog#1834 found in the
# layer-dependency baseline. Removing a blanket must cost one line here, so the
# register can only shrink.
#
# `#![allow(dead_code)]` is NOT listed: ecstore carries zero of those after the
# step 2 burn-down, and the guard asserts that count stays at zero.
crates/ecstore/src/bucket/lifecycle/tier_last_day_stats.rs|clippy::all
crates/ecstore/src/bucket/lifecycle/tier_last_day_stats.rs|unused_must_use
crates/ecstore/src/bucket/lifecycle/tier_last_day_stats.rs|unused_variables
crates/ecstore/src/bucket/lifecycle/tier_sweeper.rs|clippy::all
crates/ecstore/src/bucket/lifecycle/tier_sweeper.rs|unused_must_use
crates/ecstore/src/bucket/lifecycle/tier_sweeper.rs|unused_variables
crates/s3-client/src/api_error_response.rs|clippy::all
crates/s3-client/src/api_error_response.rs|unused_must_use
crates/s3-client/src/api_error_response.rs|unused_variables
crates/s3-client/src/api_get_object.rs|clippy::all
crates/s3-client/src/api_get_object.rs|unused_must_use
crates/s3-client/src/api_get_object.rs|unused_variables
crates/s3-client/src/api_get_options.rs|clippy::all
crates/s3-client/src/api_get_options.rs|unused_must_use
crates/s3-client/src/api_get_options.rs|unused_variables
crates/s3-client/src/api_list.rs|clippy::all
crates/s3-client/src/api_list.rs|unused_must_use
crates/s3-client/src/api_list.rs|unused_variables
crates/s3-client/src/api_put_object.rs|clippy::all
crates/s3-client/src/api_put_object.rs|unused_must_use
crates/s3-client/src/api_put_object.rs|unused_variables
crates/s3-client/src/api_put_object_common.rs|clippy::all
crates/s3-client/src/api_put_object_common.rs|unused_must_use
crates/s3-client/src/api_put_object_common.rs|unused_variables
crates/s3-client/src/api_put_object_multipart.rs|clippy::all
crates/s3-client/src/api_put_object_multipart.rs|unused_must_use
crates/s3-client/src/api_put_object_multipart.rs|unused_variables
crates/s3-client/src/api_put_object_streaming.rs|clippy::all
crates/s3-client/src/api_put_object_streaming.rs|unused_must_use
crates/s3-client/src/api_put_object_streaming.rs|unused_variables
crates/s3-client/src/api_remove.rs|clippy::all
crates/s3-client/src/api_remove.rs|unused_must_use
crates/s3-client/src/api_remove.rs|unused_variables
crates/s3-client/src/api_s3_datatypes.rs|clippy::all
crates/s3-client/src/api_s3_datatypes.rs|unused_must_use
crates/s3-client/src/api_s3_datatypes.rs|unused_variables
crates/s3-client/src/api_stat.rs|clippy::all
crates/s3-client/src/api_stat.rs|unused_must_use
crates/s3-client/src/api_stat.rs|unused_variables
crates/s3-client/src/bucket_cache.rs|clippy::all
crates/s3-client/src/bucket_cache.rs|unused_must_use
crates/s3-client/src/bucket_cache.rs|unused_variables
crates/s3-client/src/checksum.rs|clippy::all
crates/s3-client/src/checksum.rs|unused_must_use
crates/s3-client/src/checksum.rs|unused_variables
crates/s3-client/src/constants.rs|unused_must_use
crates/s3-client/src/constants.rs|unused_variables
crates/s3-client/src/credentials.rs|clippy::all
crates/s3-client/src/credentials.rs|unused_must_use
crates/s3-client/src/credentials.rs|unused_variables
crates/ecstore/src/object_api/object_api_utils.rs|clippy::all
crates/ecstore/src/object_api/object_api_utils.rs|unused_must_use
crates/ecstore/src/object_api/object_api_utils.rs|unused_variables
crates/s3-client/src/transition_api.rs|clippy::all
crates/s3-client/src/transition_api.rs|unused_must_use
crates/s3-client/src/transition_api.rs|unused_variables
crates/ecstore/src/services/event_notification.rs|unused_variables
crates/ecstore/src/services/tier/tier.rs|clippy::all
crates/ecstore/src/services/tier/tier.rs|unused_must_use
crates/ecstore/src/services/tier/tier.rs|unused_variables
crates/ecstore/src/services/tier/tier_admin.rs|clippy::all
crates/ecstore/src/services/tier/tier_admin.rs|unused_must_use
crates/ecstore/src/services/tier/tier_admin.rs|unused_variables
crates/ecstore/src/services/tier/warm_backend.rs|clippy::all
crates/ecstore/src/services/tier/warm_backend.rs|unused_must_use
crates/ecstore/src/services/tier/warm_backend.rs|unused_variables
crates/ecstore/src/services/tier/warm_backend_aliyun.rs|clippy::all
crates/ecstore/src/services/tier/warm_backend_aliyun.rs|unused_must_use
crates/ecstore/src/services/tier/warm_backend_aliyun.rs|unused_variables
crates/ecstore/src/services/tier/warm_backend_azure.rs|clippy::all
crates/ecstore/src/services/tier/warm_backend_azure.rs|unused_must_use
crates/ecstore/src/services/tier/warm_backend_azure.rs|unused_variables
crates/ecstore/src/services/tier/warm_backend_gcs.rs|clippy::all
crates/ecstore/src/services/tier/warm_backend_gcs.rs|unused_must_use
crates/ecstore/src/services/tier/warm_backend_gcs.rs|unused_variables
crates/ecstore/src/services/tier/warm_backend_huaweicloud.rs|clippy::all
crates/ecstore/src/services/tier/warm_backend_huaweicloud.rs|unused_must_use
crates/ecstore/src/services/tier/warm_backend_huaweicloud.rs|unused_variables
crates/ecstore/src/services/tier/warm_backend_minio.rs|clippy::all
crates/ecstore/src/services/tier/warm_backend_minio.rs|unused_must_use
crates/ecstore/src/services/tier/warm_backend_minio.rs|unused_variables
crates/ecstore/src/services/tier/warm_backend_r2.rs|clippy::all
crates/ecstore/src/services/tier/warm_backend_r2.rs|unused_must_use
crates/ecstore/src/services/tier/warm_backend_r2.rs|unused_variables
crates/ecstore/src/services/tier/warm_backend_rustfs.rs|clippy::all
crates/ecstore/src/services/tier/warm_backend_rustfs.rs|unused_must_use
crates/ecstore/src/services/tier/warm_backend_rustfs.rs|unused_variables
crates/ecstore/src/services/tier/warm_backend_s3.rs|clippy::all
crates/ecstore/src/services/tier/warm_backend_s3.rs|unused_must_use
crates/ecstore/src/services/tier/warm_backend_s3.rs|unused_variables
crates/ecstore/src/services/tier/warm_backend_tencent.rs|clippy::all
crates/ecstore/src/services/tier/warm_backend_tencent.rs|unused_must_use
crates/ecstore/src/services/tier/warm_backend_tencent.rs|unused_variables
crates/ecstore/src/set_disk/mod.rs|unused_variables