-
Notifications
You must be signed in to change notification settings - Fork 206
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
Public cleanup #78
Public cleanup #78
Conversation
This project is referenced in Elastic.Apm.AspNetCore.Tests (which is also signed). To avoid building with warnings the sample project will be also signed.
Codecov Report
@@ Coverage Diff @@
## master #78 +/- ##
==========================================
+ Coverage 81.6% 82.13% +0.52%
==========================================
Files 35 35
Lines 957 957
Branches 126 125 -1
==========================================
+ Hits 781 786 +5
+ Misses 127 122 -5
Partials 49 49
Continue to review full report at Codecov.
|
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.
LGTM, just jotted down some random thoughts as possible follow up items.
The purpose of this change is to make sure that the agent initially only has a minimal public API surface. Therefore lots of public things became internal. The intention is to avoid braking changes later. #77
IDiagnosticListener
and all its implementors became internal.IDiagnosticsSubscriber
and its implementors remain public. This way from the user's perspective it's easier to know how to subscribe: just use the subscribers, and don't care about the listeners, that's handled internally.Lots of classes from
Elastic.Apm.Model.Payload
became internal.Introduced
IError
interface, mainly because theError
class leaked lots of internal information that is not relevant to users.Removed a couple of properties from
ITransaction
andISpan
, which could potentially cause problems when users set data that is not accepted by the server. Those properties are available onTransaction
andSpan
.Due to the previous point I added
internal Span StartSpanInternal
toTransaction
andinternal Transaction StartTransactionInternal
toTracer
. These can be used in agent dlls to access properties that are not on the public interface.Plus added code signing to
SampleAspNetCoreApp.csproj
to avoid build warnings. (It is referenced from a test project, which is signed, so it also should be signed, which it is from now on).