newrelic / newrelic-dotnet-agent

The New Relic .NET language agent.
Apache License 2.0
97 stars 64 forks source link

Compiled Binaries in Release Folder #473

Closed icpenguins closed 3 years ago

icpenguins commented 3 years ago

During the build process, the compiled signed binaries and released content should be moved to a root folder called Release or something along those lines to help folks know what is a valid assembly.

nr-ahemsath commented 3 years ago

Hi Brian,

Thanks for bringing this issue to our attention. If you could provide some additional information about your use case, it would help us to better understand the problem you're looking to solve.

Is the output in the "home folders" (i.e. src/Agent/newrelichome_*) not sufficient for what you need? The files in these folders are pretty much equivalent to what gets installed in a customer install scenario.

icpenguins commented 3 years ago

@nr-ahemsath hey, I'm not sure what you are referring to in regards to the location src/Agent/.... Here are the contents from an unzipped extract of NEWRELIC-DOTNET-AGENT-8.39.0. These are the only DLLs that I found.

PS newrelic-dotnet-agent-8.39.0\newrelic-dotnet-agent-8.39.0> dir -Recurse -Filter *.dll | Select-Object FullName

newrelic-dotnet-agent-8.39.0\newrelic-dotnet-agent-8.39.0\build\Tools\NUnit-Console\Mono.Cecil.dll
newrelic-dotnet-agent-8.39.0\newrelic-dotnet-agent-8.39.0\build\Tools\NUnit-Console\nunit.engine.api.dll
newrelic-dotnet-agent-8.39.0\newrelic-dotnet-agent-8.39.0\build\Tools\NUnit-Console\nunit.engine.dll
newrelic-dotnet-agent-8.39.0\newrelic-dotnet-agent-8.39.0\build\Tools\NUnit-Console\addins\nunit-project-loader.dll
newrelic-dotnet-agent-8.39.0\newrelic-dotnet-agent-8.39.0\build\Tools\NUnit-Console\addins\nunit-v2-result-writer.dll
newrelic-dotnet-agent-8.39.0\newrelic-dotnet-agent-8.39.0\build\Tools\NUnit-Console\addins\nunit.core.dll
newrelic-dotnet-agent-8.39.0\newrelic-dotnet-agent-8.39.0\build\Tools\NUnit-Console\addins\nunit.core.interfaces.dll
newrelic-dotnet-agent-8.39.0\newrelic-dotnet-agent-8.39.0\build\Tools\NUnit-Console\addins\nunit.v2.driver.dll
newrelic-dotnet-agent-8.39.0\newrelic-dotnet-agent-8.39.0\build\Tools\NUnit-Console\addins\teamcity-event-listener.dll
newrelic-dotnet-agent-8.39.0\newrelic-dotnet-agent-8.39.0\build\Tools\NUnit-Console\addins\vs-project-loader.dll
newrelic-dotnet-agent-8.39.0\newrelic-dotnet-agent-8.39.0\build\Tools\xsd2code\Xsd2Code.Library.dll
newrelic-dotnet-agent-8.39.0\newrelic-dotnet-agent-8.39.0\build\Tools\XUnit-Console\xunit.abstractions.dll
newrelic-dotnet-agent-8.39.0\newrelic-dotnet-agent-8.39.0\build\Tools\XUnit-Console\xunit.runner.reporters.net452.dll
newrelic-dotnet-agent-8.39.0\newrelic-dotnet-agent-8.39.0\build\Tools\XUnit-Console\xunit.runner.utility.net452.dll
newrelic-dotnet-agent-8.39.0\newrelic-dotnet-agent-8.39.0\src\Agent\_profilerBuild\x64-Release\NewRelic.Profiler.dll
newrelic-dotnet-agent-8.39.0\newrelic-dotnet-agent-8.39.0\src\Agent\_profilerBuild\x86-Release\NewRelic.Profiler.dll
newrelic-dotnet-agent-8.39.0\newrelic-dotnet-agent-8.39.0\tests\Agent\IntegrationTests\ExternalLibs\NewRelic.Api.Agent.dll

Here is the list that I get from the nuget.

PS newrelic.agent.8.39.0_nuget> dir -Recurse -Filter *.dll | Select-Object FullName

FullName
--------
newrelic.agent.8.39.0_nuget\content\newrelic\grpc_csharp_ext.x64.dll
newrelic.agent.8.39.0_nuget\content\newrelic\grpc_csharp_ext.x86.dll
newrelic.agent.8.39.0_nuget\content\newrelic\NewRelic.Agent.Core.dll
newrelic.agent.8.39.0_nuget\content\newrelic\NewRelic.Agent.Extensions.dll
newrelic.agent.8.39.0_nuget\content\newrelic\NewRelic.Profiler.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Core.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Parsing.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Storage.AsyncLocal.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Storage.CallContext.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Storage.HttpContext.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Storage.OperationContext.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Wrapper.Asp35.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Wrapper.AspNetCore.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Wrapper.CastleMonoRail2.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Wrapper.Couchbase.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Wrapper.HttpClient.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Wrapper.HttpWebRequest.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Wrapper.MongoDb.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Wrapper.MongoDb26.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Wrapper.Msmq.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Wrapper.Mvc3.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Wrapper.NServiceBus.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Wrapper.OpenRasta.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Wrapper.Owin.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Wrapper.RabbitMq.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Wrapper.RestSharp.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Wrapper.ScriptHandlerFactory.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Wrapper.ServiceStackRedis.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Wrapper.Sql.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Wrapper.StackExchangeRedis.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Wrapper.Wcf3.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Wrapper.WebApi1.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Wrapper.WebApi2.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Wrapper.WebOptimization.dll
newrelic.agent.8.39.0_nuget\content\newrelic\extensions\NewRelic.Providers.Wrapper.WebServices.dll
newrelic.agent.8.39.0_nuget\content\newrelic\x86\NewRelic.Profiler.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\grpc_csharp_ext.x64.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\grpc_csharp_ext.x86.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\NewRelic.Agent.Core.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\NewRelic.Agent.Extensions.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\NewRelic.Profiler.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Core.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Parsing.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Storage.AsyncLocal.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Storage.CallContext.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Storage.HttpContext.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Storage.OperationContext.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Wrapper.Asp35.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Wrapper.AspNetCore.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Wrapper.CastleMonoRail2.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Wrapper.Couchbase.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Wrapper.HttpClient.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Wrapper.HttpWebRequest.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Wrapper.MongoDb.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Wrapper.MongoDb26.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Wrapper.Msmq.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Wrapper.Mvc3.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Wrapper.NServiceBus.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Wrapper.OpenRasta.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Wrapper.Owin.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Wrapper.RabbitMq.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Wrapper.RestSharp.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Wrapper.ScriptHandlerFactory.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Wrapper.ServiceStackRedis.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Wrapper.Sql.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Wrapper.StackExchangeRedis.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Wrapper.Wcf3.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Wrapper.WebApi1.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Wrapper.WebApi2.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Wrapper.WebOptimization.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\extensions\NewRelic.Providers.Wrapper.WebServices.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\net45\newrelic\x86\NewRelic.Profiler.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\netstandard2.0\newrelic\grpc_csharp_ext.x64.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\netstandard2.0\newrelic\grpc_csharp_ext.x86.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\netstandard2.0\newrelic\NewRelic.Agent.Core.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\netstandard2.0\newrelic\NewRelic.Agent.Extensions.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\netstandard2.0\newrelic\NewRelic.Api.Agent.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\netstandard2.0\newrelic\NewRelic.Profiler.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\netstandard2.0\newrelic\extensions\NewRelic.Core.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\netstandard2.0\newrelic\extensions\NewRelic.Parsing.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\netstandard2.0\newrelic\extensions\NewRelic.Providers.Storage.AsyncLocal.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\netstandard2.0\newrelic\extensions\NewRelic.Providers.Wrapper.AspNetCore.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\netstandard2.0\newrelic\extensions\NewRelic.Providers.Wrapper.HttpClient.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\netstandard2.0\newrelic\extensions\NewRelic.Providers.Wrapper.MongoDb26.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\netstandard2.0\newrelic\extensions\NewRelic.Providers.Wrapper.RabbitMq.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\netstandard2.0\newrelic\extensions\NewRelic.Providers.Wrapper.Sql.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\netstandard2.0\newrelic\extensions\NewRelic.Providers.Wrapper.StackExchangeRedis.dll
newrelic.agent.8.39.0_nuget\contentFiles\any\netstandard2.0\newrelic\x86\NewRelic.Profiler.dll

Although it is, obviously, possible to go to nuget and download the latest package, extract the files, and then manually place them, it is typical that binaries be part of the release drop from the primary repository.

nr-ahemsath commented 3 years ago

By "release drop from the primary repository", do you mean the Releases page on GitHub, e.g. here: https://github.com/newrelic/newrelic-dotnet-agent/releases/tag/v8.39.0 ?

Note that those two zip files say "Source code". Those are not the release builds from the release. You can find those at https://download.newrelic.com/dot_net_agent/latest_release/

For what it's worth, I looked at some of the other NR APM agents' GitHub repos (Node, Ruby, and Python) and they're not attaching binaries to their Releases pages either.

There is ongoing cross-team discussion internally about establishing a more unified way of archiving and providing secure access to released binaries. I wouldn't want to commit to providing released binaries in GitHub Releases if this doesn't end up being the direction NR chooses.

icpenguins commented 3 years ago

@nr-ahemsath well, regardless of where anyone else is at, the Microsoft / .NET world (meaning legacy as well) is still not fully on the nuget wagon. I appreciate you reminding me about the New Relic download location, I totally didn't look there and didn't readily see any references to it.

Could we, at least for now, put something on the readme.md for this project and the .NET agent documentation site? The issue came up when an SRE team, not able to use nuget, had a desire to deploy to Azure Service Fabric.

nr-ahemsath commented 3 years ago

There is a link near the top of the README.md for this repo which points to the installation documentation on docs.newrelic.com, which has links to the appropriate places to download the released binaries for a given install scenario, including Azure.

We will modify our release process to have a link to the download site in the release notes associated with each release in GitHub. There are already links like this in the release notes on the docs site.

Closing this issue as "won't fix".

icpenguins commented 3 years ago

@nr-ahemsath respectfully, I don't see how this is a won't fix per your statements above. It is something to which action is required.

nr-ahemsath commented 3 years ago

Removed the wontfix label since we are, in fact, modifying our release process to add download links to our GitHub-hosted release notes.

Reopening. I can do a quick PR to add a link to the download site near the top of the README.