Skip to content

Conversation

@arielb1
Copy link
Contributor

@arielb1 arielb1 commented May 20, 2025

📬 Issue #, if available:

✍️ Description of changes:

🔏 By submitting this pull request

  • I confirm that I've made a best effort attempt to update all relevant documentation.
  • I confirm that my contribution is made under the terms of the Apache 2.0 license.

@arielb1 arielb1 force-pushed the no-aws-defaults branch 15 times, most recently from 4835f18 to 7d126f2 Compare May 20, 2025 17:28
@arielb1 arielb1 force-pushed the no-aws-defaults branch from 7d126f2 to 0f62067 Compare May 20, 2025 17:28
Copy link
Collaborator

@jlizen jlizen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Core implementation looks good but need:

  • confirmation of testing of existing functionality without new features
  • cleanup of the example code w/r/t conditional compilation noise

- "1.85" # Current MSRV due to Cargo MSRV feature
- stable
flags:
- "--all-features"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was surprised to see that these passed out of box, but I guess we don't actually test any network calls? Looks like we validate metadata parsing only, and nothing to do with s3?

Probably having an integration test that validates these directly e2e using real auth would be nice, but separate scope. I can cut an issue (low priority).

Without that, can you confirm that you've manually validated that the existing functionality (without the new features) works properly? IE no regression for old APIs.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yea, the tests don't have network access. I'm not in the mood of setting up an AWS account so I can do AWS-in-the-loop tests.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No worries, we can maybe do #47 someday

From offline - thanks for confirming that you tested locally e2e and existin gfunctionality works.

CHANGELOG.md Outdated

- add support for stopping the profiler
- make native memory profiling interval configurable
- add Cargo features to allow not enabling AWS/reqwest default features
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should go in unreleased section no? also can we add the new feature name(s) into this verbiage?

Copy link
Contributor Author

@arielb1 arielb1 May 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought the 0.1.5 release failed. Apparently it fake failed. Will remove it from the changelog, and release-plz will re-insert it.

.args(["local", "bucket"]),
))]
struct Args {
#[cfg(feature = "s3-no-defaults")]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All of these feature flags make the example very hard to follow. Can we move all s3 features into their own struct, #[derive(Arg)] on it, and flatten it from the parent struct? That way we can just feature gate the one field in the top-level struct.

args.bucket_owner,
args.profiling_group,
) {
#[cfg(feature = "s3-no-defaults")]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is pretty unreadable as well. Can we refactor to only need one of each cfg flag (enabled vs not enabled)?

For instance, add a struct that we derive default on and use default implementation for if feature is disabled. Or delegate to a function.

@arielb1 arielb1 force-pushed the no-aws-defaults branch from 632b5cf to a1f9f91 Compare May 20, 2025 19:45
@arielb1 arielb1 merged commit 30bd0f9 into async-profiler:main May 20, 2025
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants