-
Notifications
You must be signed in to change notification settings - Fork 772
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
Make BatchExportActivityProcessorOptions internal #2350
Make BatchExportActivityProcessorOptions internal #2350
Conversation
Codecov Report
@@ Coverage Diff @@
## main #2350 +/- ##
==========================================
+ Coverage 79.95% 79.98% +0.02%
==========================================
Files 231 231
Lines 7453 7453
==========================================
+ Hits 5959 5961 +2
+ Misses 1494 1492 -2
|
I ended up using Using
Side note. I also know another approach that I personally like. Making everything in the |
@@ -21,7 +21,7 @@ | |||
|
|||
namespace OpenTelemetry.Trace | |||
{ | |||
public class BatchExportActivityProcessorOptions : BatchExportProcessorOptions<Activity> | |||
internal sealed class BatchExportActivityProcessorOptions : BatchExportProcessorOptions<Activity> |
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.
Given this class is implementing something as per spec, I think its safe to expose this as public.
The alternate of keeping internal and using internalvisible might cause other issues like exporters accidently accessing something it was not meant to, or hide issues affecting other exporter which don't get the same privilege as the ones in this repo.
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.
@CodeBlanch what do you think here?
(Internal would be fine, if we can use the "compile incude" option, rather than specially exposing internals to set of exporters..)
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 tried a couple of things. Ultimately pushed a change to fix the benchmark project by using an alias. It is nasty, but at least the nasty is localized to just benchmarks. Check it out, LMK. Might be worth just making it public 🤣
One neat thing I found doing this, you can link in an entire folder like this:
<ItemGroup>
<Compile Include="$(RepoRoot)\src\OpenTelemetry.Api\Internal\**\*.cs" LinkBase="Includes\" />
</ItemGroup>
So we could possibly clean some of this up (somewhat) by organizing things into a couple of standard folders we link into exporters, instrumentation, etc?
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.
Sorry that it took me so long, but I was 🤒
Ultimately pushed a change to fix the benchmark project by using an alias
Thank you 👍
Might be worth just making it public
I think it makes sense if we do not have any concrete argument against doing it (other than that it will increase the API). Do we have an example that making it public would make some harm?
you can link in an entire folder like this
I think it can be good. However, probably we do not want to include the whole Internal
folder but rather some subfolder(s). Also, I think it could be done in a separate PR.
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.
We discussed this in todays SIG meeting. Cijo/Alan agree to make this public, as it is implementing something from the spec.
Closing per #2350 (comment) @CodeBlanch feel free to reopen and continue the discussion if you have any concerns |
Addresses #2219 (comment).
Changes
BatchExportActivityProcessorOptions
is made internal.For significant contributions please make sure you have completed the following items:
CHANGELOG.md
updated for non-trivial changes