-
Notifications
You must be signed in to change notification settings - Fork 608
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cloud_storage: Move s3_imposter to cloud_io #24945
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in v::random, for example, we only keep generic random utilities. it's v::subsystem that will have subsystem specific random generators.
do we want to put all sub-system specific test utilities into a single place? i think the answer to that question determines if this change makes sense. the current trend seems to be have A depends_on B
implies many times that A::test depends_on B::test_utils
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just curious what the motivation for this change is. Also, did you consider putting this in, for example, cloud_io/tests? test_utils seems to generally contain things that might be useful for all tests with the exception of archival.h which seems like an outlier
src/v/test_utils/BUILD
Outdated
"//src/v/bytes:iobuf", | ||
"//src/v/bytes:iobuf_parser", | ||
"//src/v/bytes:iostream", | ||
"//src/v/cloud_storage", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Curious in general why this couldn't have just moved the existing library definition from cloud_storage/BUILD. Like why does this depend on cloud_storage?
It's surprising this would depend on these too:
- cluster
- disk_log_builder
I think a lot of the boost deps would be better as implementation_deps
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I extracted this PR from the cloud topics branch, and there I think I just copied this stuff from one place to another. Will clean this up.
I think moving to v::cloud_io makes sense. I'm OK with this as long as it's not part of the cloud_storage. When it's in cloud_storage it's weird because tests for other subsystems depend on cloud_storage even though the actual subsystem doesn't. |
CI test resultstest results on build#61228
test results on build#61249
test results on build#61287
test results on build#61315
|
79ad203
to
82f2217
Compare
Moved to |
+1 to rehoming into cloud_io |
bazel build needs a few tweeks
|
82f2217
to
4e06ec2
Compare
src/v/cloud_io/tests/BUILD
Outdated
], | ||
include_prefix = "cloud_io/tests", | ||
visibility = ["//visibility:public"], | ||
deps = [ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s3_imposter.{cc,h} didn't change, so why did implementation_deps change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@andrwng pointed out that some of the deps are not used
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mm I don't think that's quite related though. I'd pointed out there are some unnecessary things in deps
, but Noah's pointing out that the implementation_deps
list was removed in this move.
IIUC the general guidance is that implementation_deps
should include things that are in the cc file but not the header, and deps
should include things required by the header.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
andrew is right. iobuf, for example, is included in .cc but not in .h so it at least looks to be a candidate for implementation_deps. similarily for other things in the deps = [] list, but i think at least not regressing on the list makes sense. i don't know which ones are unused, but that is separate.
The s3_imposter is used in several subsystems already (iceberg/datalake/cloud_storage/cloud_topics). It makes sense to move it into cloud_io to make dependencies less confusing. Signed-off-by: Evgeny Lazin <[email protected]>
4e06ec2
to
a11ae40
Compare
The s3_imposter is used in several subsystems already (iceberg/datalake/cloud_storage/cloud_topics). It makes sense to move it into test_utils to make dependencies less confusing.
The PR just moves
s3_imposter.h(cc)
totest_utils
and updates build files and include paths.Backports Required
Release Notes