[Release] Remove Tracer MSI and Improve release notes categorization#2607
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
andrewlock
left a comment
There was a problem hiding this comment.
Thanks, I like the look of this 🙂
| inputs: | ||
| artifact: windows-msi-$(targetPlatform) | ||
| patterns: '**/*profiler-beta.msi' | ||
| patterns: '**/*.msi' |
There was a problem hiding this comment.
Note that previously this matched a single .msi file, and now it matches two, the x64 and x86 msi. I think we should either
- Restrict this to the x64 installer, e.g.
'**/*-x64.msi' - Use the platform-specific installer, e.g.
'**/*$(targetPlatform).msi'
My preference is for the former, as I think it's what we were doing before, it's what most people will use (even when running in 32 bit mode), and the yaml will definitely work 🙂
There was a problem hiding this comment.
Taking the currently in the windows-msi-x64 artifact as an example, we currently have:
datadog-dotnet-apm-2.6.0-x64-profiler-beta.msidatadog-dotnet-apm-2.6.0-x64.msi
After the changes in this PR, only the datadog-dotnet-apm-2.6.0-x64.msi should remain so I think this is fine. I would feel more comfortable if this PR also removed the BuildMsi step from Nuke and the pipeline steps so only one step is responsible for building the installer. As the changes currently stand, both the BuildMsi and BuildMsiBeta both build the same output file so the last one to run overwrites the contents of the file.
There was a problem hiding this comment.
Thanks for your inputs. I've fixed both in 6dc6dda.
That said, I've also added a new commit 9d28d5a where I remove completely the tracer (I should have separated all that from the release notes from the beginning). I'm not entirely sure if what I'm doing is correct, especially updating the UpdateMsiContentstarget but it felt right.
(Note: I haven't tested yet as I was on my Mac, I'll test the targets on my windows laptop now)
There was a problem hiding this comment.
These changes look good. One way to test the UpdateMsiContents target is to delete the Tracer's .wxs files and run the target and observe no diff. You can remove the condition WIX_IS_NETFRAMEWORK_461_OR_LATER_INSTALLED which we determined was no longer necessary and you'll need to update the ComponentGroup which is generated by SyncMsiContent.cs
There was a problem hiding this comment.
Ok I think we're good now
andrewlock
left a comment
There was a problem hiding this comment.
LGTM, well spotted on the MSI files update
| inputs: | ||
| artifact: windows-msi-$(targetPlatform) | ||
| patterns: '**/*profiler-beta.msi' | ||
| patterns: '**/*-x64.msi' |
There was a problem hiding this comment.
I think this should be /**/*-$(targetPlatform).msi or /**/*.msi because there should only be one MSI in the windows-msi-x64/windows-msi-x86 artifact folder now, and it ends with the same architecture suffix as the folder
and remove references to it. I've also upcated the `UpdateMsiContents`target. This part I'm not familiar of and I wonder if it was an issue not to be updated beforehand
df11f77 to
5e7a797
Compare
Code Coverage Report 📊✔️ Merging #2607 into master will not change line coverage
View the full report for further details: Datadog.Trace Breakdown ✔️
The following classes have significant coverage changes.
View the full reports for further details: |
Benchmarks Report 🐌Benchmarks for #2607 compared to master:
The following thresholds were used for comparing the benchmark speeds:
Allocation changes below 0.5% are ignored. Benchmark detailsBenchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.AppSecBodyBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.AspNetCoreBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.DbCommandBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.ElasticsearchBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.GraphQLBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.ILoggerBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.Log4netBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.NLogBenchmark - Slower
|
| Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
|---|---|---|---|---|
| Benchmarks.Trace.NLogBenchmark.EnrichedLog‑net472 | 1.173 | 7,798.08 | 9,149.87 |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | EnrichedLog |
net472 | 7.8μs | 35.8ns | 134ns | 0.506 | 0 | 0 | 3.23 KB |
| master | EnrichedLog |
netcoreapp3.1 | 6.78μs | 28.7ns | 111ns | 0.0475 | 0 | 0 | 3.6 KB |
| #2607 | EnrichedLog |
net472 | 9.11μs | 46.3ns | 278ns | 0.505 | 0 | 0 | 3.23 KB |
| #2607 | EnrichedLog |
netcoreapp3.1 | 6.42μs | 12.5ns | 46.9ns | 0.0515 | 0 | 0 | 3.6 KB |
Benchmarks.Trace.RedisBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | SendReceive |
net472 | 2.37μs | 7.54ns | 29.2ns | 0.161 | 0 | 0 | 1.01 KB |
| master | SendReceive |
netcoreapp3.1 | 2.16μs | 12.2ns | 85.7ns | 0.0139 | 0 | 0 | 1.01 KB |
| #2607 | SendReceive |
net472 | 2.49μs | 12.6ns | 61.8ns | 0.161 | 0 | 0 | 1.01 KB |
| #2607 | SendReceive |
netcoreapp3.1 | 2.16μs | 10.4ns | 43ns | 0.0135 | 0 | 0 | 1.01 KB |
Benchmarks.Trace.SerilogBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | EnrichedLog |
net472 | 5.96μs | 28.7ns | 111ns | 0.291 | 0 | 0 | 1.87 KB |
| master | EnrichedLog |
netcoreapp3.1 | 5.22μs | 25.5ns | 102ns | 0.0181 | 0 | 0 | 1.49 KB |
| #2607 | EnrichedLog |
net472 | 6.07μs | 18ns | 67.5ns | 0.292 | 0 | 0 | 1.87 KB |
| #2607 | EnrichedLog |
netcoreapp3.1 | 5.22μs | 26.1ns | 111ns | 0.0208 | 0 | 0 | 1.49 KB |
Benchmarks.Trace.SpanBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | StartFinishSpan |
net472 | 911ns | 4.21ns | 17.3ns | 0.0717 | 0 | 0 | 457 B |
| master | StartFinishSpan |
netcoreapp3.1 | 878ns | 4.51ns | 21.1ns | 0.00603 | 0 | 0 | 456 B |
| master | StartFinishScope |
net472 | 1.15μs | 6.32ns | 35.8ns | 0.0843 | 0 | 0 | 538 B |
| master | StartFinishScope |
netcoreapp3.1 | 1.06μs | 5.22ns | 22.1ns | 0.00802 | 0 | 0 | 576 B |
| #2607 | StartFinishSpan |
net472 | 896ns | 3.9ns | 15.1ns | 0.0719 | 0 | 0 | 457 B |
| #2607 | StartFinishSpan |
netcoreapp3.1 | 891ns | 4.08ns | 15.3ns | 0.00631 | 0 | 0 | 456 B |
| #2607 | StartFinishScope |
net472 | 1.15μs | 6.71ns | 58.9ns | 0.0842 | 0 | 0 | 538 B |
| #2607 | StartFinishScope |
netcoreapp3.1 | 1.04μs | 5.06ns | 20.3ns | 0.00815 | 0 | 0 | 576 B |
Benchmarks.Trace.TraceAnnotationsBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | RunOnMethodBegin |
net472 | 1.27μs | 3.9ns | 15.1ns | 0.084 | 0 | 0 | 538 B |
| master | RunOnMethodBegin |
netcoreapp3.1 | 1.22μs | 4.47ns | 16.7ns | 0.00816 | 0 | 0 | 576 B |
| #2607 | RunOnMethodBegin |
net472 | 1.31μs | 6.12ns | 30.6ns | 0.0844 | 0 | 0 | 538 B |
| #2607 | RunOnMethodBegin |
netcoreapp3.1 | 1.28μs | 15.8ns | 158ns | 0.00776 | 0 | 0 | 576 B |
Summary of changes
I added a new split in the release notes, in order to categorize by components (ie Tracer, Ci App..., by historical order). It's not perfect as it mixes fixes and changes when there is a component, but I wanted to get feedback before doing more complicated.
Doing so, I realized that we still had the Tracer Msi in the code base and that we needed to update the release processe with a few last changes.
Reason for change
Last release notes were loooonnnngggg. I really think we need a better categorization so I rewrote it manually: https://github.com/DataDog/dd-trace-dotnet/releases/tag/v2.5.1
Implementation details
The categorization relies on the label that is present on the PR.
Tracer msi removed and 'UpdateMsiContent' target reworked
Test coverage
None
Other details
Not sure I'm not missing something for the profiler-beta msi :)