diff --git a/.github/releases.json b/.github/releases.json index 3e3e4dcebab..3bb7fcc43f6 100644 --- a/.github/releases.json +++ b/.github/releases.json @@ -28,12 +28,12 @@ "outOfSupportDate": "2023-01-11T00:00:00.000Z" }, "6.3": { - "tag": "v6.3.2", + "tag": "v6.3.3", "minorReleaseDate": "2022-10-11T00:00:00.000Z", - "patchReleaseDate": "2023-02-14T00:00:00.000Z", + "patchReleaseDate": "2023-10-10T00:00:00.000Z", "supportedFrameworks": [ - "netcoreapp3.1 (with major roll forward)", - "net6.0" + "net6.0", + "netcoreapp3.1" ] }, "7.0": { @@ -57,18 +57,18 @@ "outOfSupportDate": "2023-09-13T00:00:00.000Z" }, "8.0": { - "tag": "v8.0.0-rc.1.23458.6", - "minorReleaseDate": "2023-09-12T00:00:00.000Z", - "patchReleaseDate": "2023-09-12T00:00:00.000Z", + "tag": "v8.0.0-rc.2.23502.11", + "minorReleaseDate": "2023-10-10T00:00:00.000Z", + "patchReleaseDate": "2023-10-10T00:00:00.000Z", "supportedFrameworks": [ "net6.0", "net8.0" ] }, "7.2": { - "tag": "v7.2.2", + "tag": "v7.2.3", "minorReleaseDate": "2023-06-13T00:00:00.000Z", - "patchReleaseDate": "2023-08-08T00:00:00.000Z", + "patchReleaseDate": "2023-10-10T00:00:00.000Z", "supportedFrameworks": [ "net6.0", "net7.0" @@ -76,9 +76,9 @@ "outOfSupportDate": "2023-11-08T00:00:00.000Z" }, "7.3": { - "tag": "v7.3.0", + "tag": "v7.3.1", "minorReleaseDate": "2023-08-08T00:00:00.000Z", - "patchReleaseDate": "2023-08-08T00:00:00.000Z", + "patchReleaseDate": "2023-10-10T00:00:00.000Z", "supportedFrameworks": [ "net6.0", "net7.0" diff --git a/.github/workflows/add-markdown-feedback.yml b/.github/workflows/add-markdown-feedback.yml index a86b5e28dee..16f411625c3 100644 --- a/.github/workflows/add-markdown-feedback.yml +++ b/.github/workflows/add-markdown-feedback.yml @@ -15,7 +15,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 with: persist-credentials: false diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml index e63dc5cf546..1a71e4112b0 100644 --- a/.github/workflows/backport.yml +++ b/.github/workflows/backport.yml @@ -41,7 +41,7 @@ jobs: body: backport_start_body }); - name: Checkout repo - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 with: persist-credentials: true # We need to persist credentials to push the resulting changes upstream. fetch-depth: 0 diff --git a/.github/workflows/check-markdown-links.yml b/.github/workflows/check-markdown-links.yml index aa2d88b995b..eecf9969116 100644 --- a/.github/workflows/check-markdown-links.yml +++ b/.github/workflows/check-markdown-links.yml @@ -14,7 +14,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 with: persist-credentials: false diff --git a/.github/workflows/cleanup-releases.yml b/.github/workflows/cleanup-releases.yml index ae706f93747..1e5e4317a96 100644 --- a/.github/workflows/cleanup-releases.yml +++ b/.github/workflows/cleanup-releases.yml @@ -18,7 +18,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 with: persist-credentials: true # We need to persist credentials inorder to open a PR. diff --git a/.github/workflows/generate-release-notes.yml b/.github/workflows/generate-release-notes.yml index 6916ee37e35..42c1a86479e 100644 --- a/.github/workflows/generate-release-notes.yml +++ b/.github/workflows/generate-release-notes.yml @@ -1,13 +1,8 @@ name: 'Generate release notes' -run-name: '[${{ github.ref_name }}] Generate release notes (test: ${{ inputs.test_run }})' +run-name: '[${{ github.ref_name }}] Generate release notes' on: workflow_dispatch: - inputs: - test_run: - description: 'Test run?' - required: true - type: boolean permissions: {} @@ -21,7 +16,7 @@ jobs: steps: - name: Checkout release branch - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 with: persist-credentials: false fetch-depth: 0 # Fetch the entire repo for the below git commit graph operations @@ -39,27 +34,14 @@ jobs: versionFile="./eng/Versions.props" release_version=$(perl -ne '/([^<]*)/ && print $1' $versionFile) release_version_label=$(perl -ne '/([^<]*)/ && print $1' $versionFile) - major_minor_version=${release_version%.*} - - if [[ "$TEST_RUN" == "true" ]]; then - qualified_release_version="test-$release_version" - else - version_url="https://aka.ms/dotnet/diagnostics/monitor${major_minor_version}/release/dotnet-monitor.version" - qualified_release_version=$(curl -sL $version_url) - # Check if the aka.ms url existed - if [[ "$qualified_release_version" =~ "([^<]*)/ && print $1' $versionFile) friendly_release_name="" + qualified_release_version="$release_version-$release_version_label.$release_version_iteration" if [ "$release_version_label" == "rtm" ] || [ "$release_version_label" == "servicing" ]; then friendly_release_name="$release_version build" + qualified_release_version="$release_version" elif [ "$release_version_label" == "rc" ]; then friendly_release_name="official $release_version Release Candidate" else @@ -70,11 +52,9 @@ jobs: echo "release_note_path=$release_note_path" >> $GITHUB_ENV echo "friendly_release_name=$friendly_release_name" >> $GITHUB_ENV echo "qualified_release_version=$qualified_release_version" >> $GITHUB_ENV - env: - TEST_RUN: ${{ inputs.test_run }} - name: Checkout main - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 with: persist-credentials: true # We need to persist credentials to push the resulting changes upstream. ref: main @@ -88,21 +68,7 @@ jobs: auth_token: ${{ secrets.GITHUB_TOKEN }} branch_name: ${{ github.ref_name }} - - name: Open PR (test run) - if: ${{ inputs.test_run }} - uses: ./.github/actions/open-pr - with: - draft: true - files_to_commit: ${{ env.release_note_path }} - title: "[test] Add ${{ env.qualified_release_version }} release notes" - commit_message: generate release notes - body: This is a test PR. Add ${{ env.qualified_release_version }} release notes. This PR was auto generated and will not be automatically merged in. - branch_name: releaseNotes/test/${{ env.qualified_release_version }} - fail_if_files_unchanged: true - auth_token: ${{ secrets.GITHUB_TOKEN }} - - name: Open PR - if: ${{ !inputs.test_run }} uses: ./.github/actions/open-pr with: files_to_commit: ${{ env.release_note_path }} diff --git a/.github/workflows/lint-csharp.yml b/.github/workflows/lint-csharp.yml index 8c99617fe1d..97d0d8c6afd 100644 --- a/.github/workflows/lint-csharp.yml +++ b/.github/workflows/lint-csharp.yml @@ -15,7 +15,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 with: persist-credentials: false diff --git a/.github/workflows/post-release.yml b/.github/workflows/post-release.yml index 980054f6d76..a14f6d4699e 100644 --- a/.github/workflows/post-release.yml +++ b/.github/workflows/post-release.yml @@ -28,7 +28,7 @@ jobs: # It's simpler than trying to parse our `eng/Versions.prop` due to the conditionals in it. steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 with: persist-credentials: false @@ -51,7 +51,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 with: persist-credentials: false @@ -103,7 +103,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 with: persist-credentials: true # We need to persist credentials inorder to open a PR. ref: bot/${{ env.TARGET_BRANCH_POSTFIX }} diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index 36cfae26927..86c6fe2a354 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -13,11 +13,11 @@ jobs: steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 with: persist-credentials: false - - uses: streetsidesoftware/cspell-action@22e32eb3d70acf30e3fc09bd46edc1d30fb2d6db + - uses: streetsidesoftware/cspell-action@adb9472decdd5da99eeca3c56d731fb7dce12cf8 name: Documentation spellcheck if: ${{ !cancelled() }} with: @@ -25,7 +25,7 @@ jobs: inline: error incremental_files_only: true - - uses: streetsidesoftware/cspell-action@22e32eb3d70acf30e3fc09bd46edc1d30fb2d6db + - uses: streetsidesoftware/cspell-action@adb9472decdd5da99eeca3c56d731fb7dce12cf8 name: Resx spellcheck if: ${{ !cancelled() }} with: @@ -33,7 +33,7 @@ jobs: inline: error incremental_files_only: true - - uses: streetsidesoftware/cspell-action@22e32eb3d70acf30e3fc09bd46edc1d30fb2d6db + - uses: streetsidesoftware/cspell-action@adb9472decdd5da99eeca3c56d731fb7dce12cf8 name: Source code spellcheck if: ${{ !cancelled() }} with: diff --git a/.github/workflows/submit-linter-suggestions.yml b/.github/workflows/submit-linter-suggestions.yml index 4aa58125f71..8c12e608243 100644 --- a/.github/workflows/submit-linter-suggestions.yml +++ b/.github/workflows/submit-linter-suggestions.yml @@ -30,7 +30,7 @@ jobs: }); - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 with: persist-credentials: false diff --git a/.github/workflows/submit-to-do-issue.yml b/.github/workflows/submit-to-do-issue.yml index 4ee17969f88..243a9d6259e 100644 --- a/.github/workflows/submit-to-do-issue.yml +++ b/.github/workflows/submit-to-do-issue.yml @@ -27,7 +27,7 @@ jobs: }); - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 with: persist-credentials: false diff --git a/.github/workflows/sync-branches.yml b/.github/workflows/sync-branches.yml index eb12729cb2d..dcdce859152 100644 --- a/.github/workflows/sync-branches.yml +++ b/.github/workflows/sync-branches.yml @@ -23,7 +23,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 with: persist-credentials: true # We need to persist credentials to push the resulting changes upstream. fetch-depth: 0 # Fetch the entire repo for the below git operations diff --git a/.github/workflows/update-release-version.yml b/.github/workflows/update-release-version.yml index fde678ff8c2..dc77c31152f 100644 --- a/.github/workflows/update-release-version.yml +++ b/.github/workflows/update-release-version.yml @@ -31,7 +31,7 @@ jobs: steps: - name: Checkout branch - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 with: persist-credentials: true # We need to persist credentials to push the resulting changes upstream. diff --git a/Directory.Build.props b/Directory.Build.props index d354b43f1dd..45b01fc6f81 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -9,6 +9,10 @@ 4 true true + true + true + + $(NoWarn);NU1507 diff --git a/Directory.Packages.props b/Directory.Packages.props new file mode 100644 index 00000000000..588553accaa --- /dev/null +++ b/Directory.Packages.props @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/documentation/openapi.json b/documentation/openapi.json index 3418cc1dc46..a58ee4ca9ff 100644 --- a/documentation/openapi.json +++ b/documentation/openapi.json @@ -2203,8 +2203,7 @@ "type": "string" } }, - "nullable": true, - "readOnly": true + "nullable": true } }, "additionalProperties": { } diff --git a/documentation/releaseNotes/releaseNotes.v6.3.3.md b/documentation/releaseNotes/releaseNotes.v6.3.3.md new file mode 100644 index 00000000000..e13fb08ef52 --- /dev/null +++ b/documentation/releaseNotes/releaseNotes.v6.3.3.md @@ -0,0 +1,3 @@ +Today we are releasing the 6.3.3 build of the `dotnet monitor` tool. This release includes: + +- Prevent overreporting of the collection rule trigger type in console output ([#4892](https://github.com/dotnet/dotnet-monitor/pull/4892)) \ No newline at end of file diff --git a/documentation/releaseNotes/releaseNotes.v7.2.3.md b/documentation/releaseNotes/releaseNotes.v7.2.3.md new file mode 100644 index 00000000000..ac495d29f6e --- /dev/null +++ b/documentation/releaseNotes/releaseNotes.v7.2.3.md @@ -0,0 +1,2 @@ +Today we are releasing the 7.2.3 build of the `dotnet monitor` tool. This release includes: +- Updated dependencies diff --git a/documentation/releaseNotes/releaseNotes.v7.3.1.md b/documentation/releaseNotes/releaseNotes.v7.3.1.md new file mode 100644 index 00000000000..14619f25261 --- /dev/null +++ b/documentation/releaseNotes/releaseNotes.v7.3.1.md @@ -0,0 +1,2 @@ +Today we are releasing the 7.3.1 build of the `dotnet monitor` tool. This release includes: +- Updated dependencies diff --git a/documentation/releaseNotes/releaseNotes.v8.0.0-rc.2.md b/documentation/releaseNotes/releaseNotes.v8.0.0-rc.2.md new file mode 100644 index 00000000000..bb888bcc7aa --- /dev/null +++ b/documentation/releaseNotes/releaseNotes.v8.0.0-rc.2.md @@ -0,0 +1,12 @@ +Today we are releasing the official 8.0.0 Release Candidate of the `dotnet monitor` tool. This release includes: + +- Exceptions: Fix throwing frame for call stack of eclipsing exceptions ([#5429](https://github.com/dotnet/dotnet-monitor/pull/5429)) +- 🔬 Add support for formatting parameters using their [`DebuggerDisplayAttribute`](https://learn.microsoft.com/dotnet/api/system.diagnostics.debuggerdisplayattribute) when using `POST /parameters`. ([#5423](https://github.com/dotnet/dotnet-monitor/pull/5423)) +- ⚠️ Update `GET /livemetrics` route to use configuration from Metrics section instead of only using the default event counters providers. Update `CollectLiveMetrics` action to use configuration from Metrics section by default. ([#5397](https://github.com/dotnet/dotnet-monitor/pull/5397)) +- Add the ability to filter which exceptions are included with the `CollectExceptions` action. ([#5391](https://github.com/dotnet/dotnet-monitor/pull/5391)) +- ⚠️ Rename `callStack` to `stack` on `ExceptionInstance` data. ([#5384](https://github.com/dotnet/dotnet-monitor/pull/5384)) +- ⚠️ Rename `className` to `typeName` on `CallStackFrame` data. ([#5379](https://github.com/dotnet/dotnet-monitor/pull/5379)) +- Add the ability to filter which exceptions are collected by `dotnet-monitor`. ([#5217](https://github.com/dotnet/dotnet-monitor/pull/5217)) + +\*⚠️ **_indicates a breaking change_** \ +\*🔬 **_indicates an experimental feature_** \ No newline at end of file diff --git a/documentation/releases.md b/documentation/releases.md index 561f4aaf578..f0678b36d3f 100644 --- a/documentation/releases.md +++ b/documentation/releases.md @@ -7,9 +7,9 @@ | Version | Original Release Date | Latest Patch Version | Patch Release Date | End of Support | Runtime Frameworks | | --- | --- | --- | --- | --- | --- | -| 7.3 | August 8, 2023 | [7.3.0](https://github.com/dotnet/dotnet-monitor/releases/tag/v7.3.0) | August 8, 2023 | | net6.0
net7.0 | -| 7.2 | June 13, 2023 | [7.2.2](https://github.com/dotnet/dotnet-monitor/releases/tag/v7.2.2) | August 8, 2023 | November 8, 2023 | net6.0
net7.0 | -| 6.3 | October 11, 2022 | [6.3.2](https://github.com/dotnet/dotnet-monitor/releases/tag/v6.3.2) | February 14, 2023 | | netcoreapp3.1 (with major roll forward)
net6.0 | +| 7.3 | August 8, 2023 | [7.3.1](https://github.com/dotnet/dotnet-monitor/releases/tag/v7.3.1) | October 10, 2023 | | net6.0
net7.0 | +| 7.2 | June 13, 2023 | [7.2.3](https://github.com/dotnet/dotnet-monitor/releases/tag/v7.2.3) | October 10, 2023 | November 8, 2023 | net6.0
net7.0 | +| 6.3 | October 11, 2022 | [6.3.3](https://github.com/dotnet/dotnet-monitor/releases/tag/v6.3.3) | October 10, 2023 | | net6.0
netcoreapp3.1 | ## Out of support versions @@ -25,6 +25,6 @@ | Version | Release Date | Latest Version | Runtime Frameworks | | --- | --- | --- | --- | -| 8.0 | September 12, 2023 | [8.0.0 rc 1](https://github.com/dotnet/dotnet-monitor/releases/tag/v8.0.0-rc.1.23458.6) | net6.0
net8.0 | +| 8.0 | October 10, 2023 | [8.0.0 rc 2](https://github.com/dotnet/dotnet-monitor/releases/tag/v8.0.0-rc.2.23502.11) | net6.0
net8.0 | diff --git a/documentation/schema.json b/documentation/schema.json index ce5504e20ff..0ef47c84f3e 100644 --- a/documentation/schema.json +++ b/documentation/schema.json @@ -2624,6 +2624,10 @@ "Indented": { "type": "boolean" }, + "MaxDepth": { + "type": "integer", + "format": "int32" + }, "SkipValidation": { "type": "boolean" } diff --git a/dotnet-monitor.yml b/dotnet-monitor.yml index 50a591ff61c..396d0b318b8 100644 --- a/dotnet-monitor.yml +++ b/dotnet-monitor.yml @@ -128,7 +128,7 @@ stages: validateDependsOn: - PackSignPublish publishingInfraVersion: 3 - enableSourceLinkValidation: ${{ not(startsWith(variables['Build.SourceBranch'], 'refs/heads/internal/release/')) }} + enableSourceLinkValidation: ${{ and(not(startsWith(variables['Build.SourceBranch'], 'refs/heads/internal/release/')), not(startsWith(variables['Build.SourceBranch'], 'refs/heads/test/release/'))) }} enableSigningValidation: true enableSymbolValidation: false enableNugetValidation: true diff --git a/eng/Analyzers.props b/eng/Analyzers.props index 760c10297da..53eada6f2b7 100644 --- a/eng/Analyzers.props +++ b/eng/Analyzers.props @@ -4,7 +4,6 @@
- - + diff --git a/eng/Common.props b/eng/Common.props index ec10eba4230..d85313e7e17 100644 --- a/eng/Common.props +++ b/eng/Common.props @@ -3,7 +3,6 @@ net8.0 $(LatestTargetFramework) - net6.0 $(ArtifactsDir)bundles\$(Configuration)\NonShipping\ \ No newline at end of file diff --git a/eng/Helix.Common.props b/eng/Helix.Common.props index 693599edd5c..ce3b478e048 100644 --- a/eng/Helix.Common.props +++ b/eng/Helix.Common.props @@ -3,10 +3,6 @@ $(Platform) zip tar.gz - win-$(HelixArchitecture) - linux-$(HelixArchitecture) - darwin-$(HelixArchitecture) - node-v$(HelixNodeVersion)-$(HelixNodeRuntimeIdentifier) - <_PreReleaseSeperatorIndex>$(Version.IndexOf('-')) - - - <_BlobGroupVersion Condition="'$(_PreReleaseSeperatorIndex)' != '-1'">$(Version.Substring(0, $(_PreReleaseSeperatorIndex))) - - - <_BlobGroupVersion Condition="'$(_PreReleaseSeperatorIndex)' == '-1'">$(Version) - - - - <_BlobGroupBuildQualityName Include="daily" ReleaseName="daily" /> - <_BlobGroupBuildQualityName Include="release" ReleaseName="release" /> - - - - <_SelectedBlobGroupQualityName Include="@(_BlobGroupBuildQualityName)" Condition="'%(Identity)' == '$(BlobGroupBuildQuality)'" /> - - - - <_BlobGroupVersionMajor>$(_BlobGroupVersion.Split('.')[0]) - <_BlobGroupVersionMinor>$(_BlobGroupVersion.Split('.')[1]) - - <_BlobGroupReleaseName>@(_SelectedBlobGroupQualityName->'%(ReleaseName)') - - - - - - + - - <_BlobGroupName>$(_BlobGroupVersionMajor).$(_BlobGroupVersionMinor)/$(_BlobGroupReleaseName) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + DependsOnTargets="CalculateBuildVersion;GenerateChecksumsForPackages" + Inputs="@(PackageFile)" + Outputs="%(PackageFile.Identity).notexist"> - - <_PackageWithBuildVersionFileName>@(_PackageWithBuildVersionFileName) - <_PackageWithBuildVersionFilePath>%(PackageToPublish.RootDir)%(PackageToPublish.Directory)$(_PackageWithBuildVersionFileName) - <_ChecksumFilePath>%(PackageToPublish.FullPath).sha512 - <_BuildVersionFilePath>$(_PackageWithBuildVersionFilePath).buildversion - <_PackageVersionFilePath>$(_PackageWithBuildVersionFilePath).version + <_ChecksumFilePath>%(PackageFile.FullPath).sha512 - - - - - - - <_CommonArtifactData Include="NonShipping=true" Condition="'%(PackageToPublish.IsShipping)' != 'true'" /> - - - - - <_BlobGroupBlobItem Include="$(_BuildVersionFilePath)" Condition="Exists('$(_BuildVersionFilePath)')" > - @(_CommonArtifactData) - - <_BlobGroupBlobItem Include="$(_PackageVersionFilePath)" Condition="Exists('$(_PackageVersionFilePath)')"> - @(_CommonArtifactData) - + <_CommonArtifactData Include="NonShipping=true" Condition="'%(PackageFile.IsShipping)' != 'true'" /> @@ -184,18 +66,13 @@ <_VersionContainerBlobItem Include="$(_ChecksumFilePath)" Condition="Exists('$(_ChecksumFilePath)')"> @(_CommonArtifactData) - <_VersionContainerBlobItem Include="%(PackageToPublish.FullPath)" Condition="Exists('%(PackageToPublish.FullPath)')" > + <_VersionContainerBlobItem Include="%(PackageFile.FullPath)" Condition="Exists('%(PackageFile.FullPath)')" > @(_CommonArtifactData) - - - diagnostics/monitor$(_BlobGroupName)/%(_BlobGroupBlobItem.Filename)%(_BlobGroupBlobItem.Extension) - true - diagnostics/monitor/$(_BuildVersion)/%(_VersionContainerBlobItem.Filename)%(_VersionContainerBlobItem.Extension) @@ -205,7 +82,7 @@ + DependsOnTargets="CalculateBuildVersion"> - - - dotnet-monitor-$(_BuildVersion).version - $(ArtifactsTmpDir)$(VersionFileName) - $(_OriginalVersionPrefix) - $(_BuildVersion) - - - - - - - - - diagnostics/monitor$(_BlobGroupName)/$(VersionFileName) - true - - - - diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 22d325a45ab..3e6eeb8e3b1 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,16 +1,16 @@ - + https://github.com/dotnet/aspnetcore - 96da75d67ff058d95e14de12d9fc2ff215074e3c + c9fa5f3a34605c93bffd1459a5e39e6bc63f50cc - + https://github.com/dotnet/diagnostics - 80884b7926783c3141310df65a9227223c71f339 + f7186f03f7d2d7e5c0720c73adffc50e56053f9b - + https://github.com/dotnet/diagnostics - 80884b7926783c3141310df65a9227223c71f339 + f7186f03f7d2d7e5c0720c73adffc50e56053f9b https://github.com/dotnet/command-line-api @@ -18,49 +18,49 @@ - + https://github.com/dotnet/roslyn-analyzers - 4a7701fd72094614897b33e4cb1d9640c221d862 + 4ff28092cdb2006c30869fb35b2fd6b7b11382b1 - + https://github.com/dotnet/arcade - 1d451c32dda2314c721adbf8829e1c0cd4e681ff + 39042b4048580366d35a7c1c4f4ce8fc0dbea4b4 - + https://github.com/dotnet/arcade - 1d451c32dda2314c721adbf8829e1c0cd4e681ff + 39042b4048580366d35a7c1c4f4ce8fc0dbea4b4 - + https://github.com/dotnet/arcade - 1d451c32dda2314c721adbf8829e1c0cd4e681ff + 39042b4048580366d35a7c1c4f4ce8fc0dbea4b4 - + https://github.com/dotnet/arcade - 1d451c32dda2314c721adbf8829e1c0cd4e681ff + 39042b4048580366d35a7c1c4f4ce8fc0dbea4b4 - + https://github.com/dotnet/installer - 701bd34499002956d4b2319a803c0ebc0800f907 + 30d7d24a6592aa0c97f81ac36b563fab2b451b14 - + https://github.com/dotnet/arcade - 1d451c32dda2314c721adbf8829e1c0cd4e681ff + 39042b4048580366d35a7c1c4f4ce8fc0dbea4b4 - + https://github.com/dotnet/symstore - 8cc6f03fdbd9c79f0bf9ffbe0a788dca1a81348a + 21508f9ab057e19d4060855647edeb376ac7d59d - + https://github.com/dotnet/runtime - 885100b00bc944cbb698bc4cc2ec3ec18007534f + 86c949374ed95989e7f1b81cb70b1e8b09bb3251 - + https://github.com/dotnet/aspnetcore - 96da75d67ff058d95e14de12d9fc2ff215074e3c + c9fa5f3a34605c93bffd1459a5e39e6bc63f50cc - + https://github.com/dotnet/runtime - 885100b00bc944cbb698bc4cc2ec3ec18007534f + 86c949374ed95989e7f1b81cb70b1e8b09bb3251 diff --git a/eng/Versions.props b/eng/Versions.props index 1bc180609bd..4a2c751d444 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -8,8 +8,9 @@ https://github.com/dotnet/dotnet-monitor 8.0.0 - rc - 2 + rtm + + true - true - false - net6.0 - $(ToolTargetFrameworks);$(LatestTargetFramework) + $(LatestTargetFramework) - net6.0;net7.0 - $(TestTargetFrameworks);$(LatestTargetFramework) + net6.0;net7.0;$(LatestTargetFramework) - net6.0 - - $(DefineConstants);INCLUDE_NEXT_DOTNET + net8.0 false @@ -58,26 +52,26 @@ --> - 8.0.0-beta.23463.1 - 8.0.0-beta.23463.1 - 8.0.0-beta.23463.1 + 8.0.0-beta.23516.4 + 8.0.0-beta.23516.4 + 8.0.0-beta.23516.4 - 8.0.0-rtm.23477.14 - 8.0.0-rtm.23477.14 + 8.0.0-rtm.23520.10 + 8.0.0-rtm.23520.10 2.0.0-beta4.23407.1 - 7.0.0-preview.23477.1 - 7.0.0-preview.23477.1 + 7.0.0-preview.23509.1 + 7.0.0-preview.23509.1 - 8.0.100-rtm.23477.37 + 8.0.100-rtm.23522.1 - 8.0.0-preview.23472.1 + 8.0.0-preview.23516.2 - 8.0.0-rtm.23477.9 - 8.0.0-rtm.23477.9 + 8.0.0-rtm.23519.13 + 8.0.0-rtm.23519.13 - 1.0.446801 + 1.0.451601 $(MicrosoftNETCoreApp31Version) @@ -99,19 +93,21 @@ $(MicrosoftAspNetCoreApp60Version) $(MicrosoftExtensionsConfigurationAbstractions60Version) $(MicrosoftExtensionsLogging60Version) - $(MicrosoftExtensionsConfigurationAbstractions60Version) + $(MicrosoftExtensionsLoggingAbstractions60Version) $(MicrosoftExtensionsLoggingConsole60Version) + $(MicrosoftAspNetCoreApp70Version) $(MicrosoftExtensionsConfigurationAbstractions70Version) $(MicrosoftExtensionsLogging70Version) + $(MicrosoftExtensionsLoggingAbstractions70Version) $(MicrosoftExtensionsLoggingConsole70Version) $(MicrosoftAspNetCoreApp80Version) $(MicrosoftAspNetCoreApp80Version) - $(MicrosoftNETCoreApp80Version) $(MicrosoftNETCoreApp80Version) + $(MicrosoftNETCoreApp80Version) $(MicrosoftNETCoreApp80Version) $(MicrosoftNETCoreApp80Version) @@ -123,10 +119,4 @@ $(MicrosoftDiagnosticsMonitoringVersion) $(MicrosoftDiagnosticsMonitoringEventPipeVersion) - - - 16.20.1 - - 20.4.0 - diff --git a/eng/common/sdk-task.ps1 b/eng/common/sdk-task.ps1 index 6c4ac6fec1a..73828dd30d3 100644 --- a/eng/common/sdk-task.ps1 +++ b/eng/common/sdk-task.ps1 @@ -64,7 +64,7 @@ try { $GlobalJson.tools | Add-Member -Name "vs" -Value (ConvertFrom-Json "{ `"version`": `"16.5`" }") -MemberType NoteProperty } if( -not ($GlobalJson.tools.PSObject.Properties.Name -match "xcopy-msbuild" )) { - $GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.6.0-2" -MemberType NoteProperty + $GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.8.1-2" -MemberType NoteProperty } if ($GlobalJson.tools."xcopy-msbuild".Trim() -ine "none") { $xcopyMSBuildToolsFolder = InitializeXCopyMSBuild $GlobalJson.tools."xcopy-msbuild" -install $true diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index aa74ab4a81e..fdd0cbb91f8 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -379,13 +379,13 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements = } # Minimum VS version to require. - $vsMinVersionReqdStr = '17.6' + $vsMinVersionReqdStr = '17.7' $vsMinVersionReqd = [Version]::new($vsMinVersionReqdStr) # If the version of msbuild is going to be xcopied, # use this version. Version matches a package here: - # https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/RoslynTools.MSBuild/versions/17.6.0-2 - $defaultXCopyMSBuildVersion = '17.6.0-2' + # https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/RoslynTools.MSBuild/versions/17.8.1-2 + $defaultXCopyMSBuildVersion = '17.8.1-2' if (!$vsRequirements) { if (Get-Member -InputObject $GlobalJson.tools -Name 'vs') { diff --git a/eng/dependabot/Versions.props b/eng/dependabot/Versions.props index e9433d2a419..c0da77661fa 100644 --- a/eng/dependabot/Versions.props +++ b/eng/dependabot/Versions.props @@ -2,10 +2,10 @@ - 1.10.1 + 1.10.3 12.18.0 12.16.0 - 2.14.0 + 2.15.3 1.6.9 4.3.2 5.0.0 diff --git a/eng/dependabot/net6.0/Versions.props b/eng/dependabot/net6.0/Versions.props index 31c05e3e181..144d3805b04 100644 --- a/eng/dependabot/net6.0/Versions.props +++ b/eng/dependabot/net6.0/Versions.props @@ -10,6 +10,6 @@ 6.0.0 - 6.0.22 + 6.0.23 diff --git a/eng/dependabot/net7.0/Packages.props b/eng/dependabot/net7.0/Packages.props index 301d2c3a77e..a63f247f84a 100644 --- a/eng/dependabot/net7.0/Packages.props +++ b/eng/dependabot/net7.0/Packages.props @@ -5,6 +5,7 @@ + diff --git a/eng/dependabot/net7.0/Versions.props b/eng/dependabot/net7.0/Versions.props index e184d31675d..afd0ddb2d1c 100644 --- a/eng/dependabot/net7.0/Versions.props +++ b/eng/dependabot/net7.0/Versions.props @@ -5,9 +5,11 @@ 7.0.0 7.0.0 + + 7.0.1 7.0.0 - 7.0.11 + 7.0.12 diff --git a/eng/dependabot/nuget.org/Versions.props b/eng/dependabot/nuget.org/Versions.props index 723ab246751..e0ce81d20b6 100644 --- a/eng/dependabot/nuget.org/Versions.props +++ b/eng/dependabot/nuget.org/Versions.props @@ -2,6 +2,6 @@ - 7.0.442301 + 7.0.447801 diff --git a/eng/helix/GetNodejsVersion.ps1 b/eng/helix/GetNodejsVersion.ps1 new file mode 100644 index 00000000000..3a3eb0c7749 --- /dev/null +++ b/eng/helix/GetNodejsVersion.ps1 @@ -0,0 +1,31 @@ +[CmdletBinding(PositionalBinding=$false)] +Param( + [Parameter(Mandatory=$true)][int] $MajorVersion, + [Parameter(Mandatory=$false)][string] $Mirror = "https://nodejs.org/dist", + [Parameter(Mandatory=$false)][string] $TaskVariableName = $null +) + +Set-StrictMode -Version Latest +$ErrorActionPreference = "Stop" + +$availableVersions = Invoke-WebRequest "$Mirror/index.json" -MaximumRetryCount 5 | ConvertFrom-Json +$latestMatchingVersion = $null +foreach ($entry in $availableVersions) { + if ($entry.version.StartsWith("v$MajorVersion.")) { + $latestMatchingVersion=$entry.version + break + } +} + +if ($latestMatchingVersion -eq $null) { + Write-Error "Could not find matching version" + exit 1; +} + +if ($TaskVariableName) { + & $PSScriptRoot\..\release\Scripts\SetTaskVariable.ps1 ` + -Name $TaskVariableName ` + -Value $latestMatchingVersion +} + +Write-Output $latestMatchingVersion \ No newline at end of file diff --git a/eng/helix/Helix.proj b/eng/helix/Helix.proj index 2e32d1a9f47..45b27ab20f6 100644 --- a/eng/helix/Helix.proj +++ b/eng/helix/Helix.proj @@ -135,9 +135,8 @@ - - - http://nodejs.org/dist/v$(HelixNodeVersion)/$(HelixNodeName).$(HelixArchiveExtension) + + nodejs @@ -179,6 +178,10 @@ $(HelixPreCommands);set DOTNET_CLI_HOME=%HELIX_WORKITEM_ROOT%\.dotnet $(HelixPreCommands);export NUGET_PACKAGES=$HELIX_WORKITEM_ROOT/.nuget $(HelixPreCommands);set NUGET_PACKAGES=%HELIX_WORKITEM_ROOT%\.nuget + + + $(HelixPreCommands);export DOTNET_MONITOR_AZURE_AD_TESTS_CLIENT_ID=$(DOTNET_MONITOR_AZURE_AD_TESTS_CLIENT_ID);export DOTNET_MONITOR_AZURE_AD_TESTS_ENABLE=$(DOTNET_MONITOR_AZURE_AD_TESTS_ENABLE);export DOTNET_MONITOR_AZURE_AD_TESTS_PIPELINE_CLIENT_ID=$(DOTNET_MONITOR_AZURE_AD_TESTS_PIPELINE_CLIENT_ID);export DOTNET_MONITOR_AZURE_AD_TESTS_PIPELINE_CLIENT_SECRET=$(DOTNET_MONITOR_AZURE_AD_TESTS_PIPELINE_CLIENT_SECRET);export DOTNET_MONITOR_AZURE_AD_TESTS_REQUIRED_ROLE=$(DOTNET_MONITOR_AZURE_AD_TESTS_REQUIRED_ROLE);export DOTNET_MONITOR_AZURE_AD_TESTS_TENANT_ID=$(DOTNET_MONITOR_AZURE_AD_TESTS_TENANT_ID) + $(HelixPreCommands);set DOTNET_MONITOR_AZURE_AD_TESTS_CLIENT_ID=$(DOTNET_MONITOR_AZURE_AD_TESTS_CLIENT_ID);set DOTNET_MONITOR_AZURE_AD_TESTS_ENABLE=$(DOTNET_MONITOR_AZURE_AD_TESTS_ENABLE);set DOTNET_MONITOR_AZURE_AD_TESTS_PIPELINE_CLIENT_ID=$(DOTNET_MONITOR_AZURE_AD_TESTS_PIPELINE_CLIENT_ID);set DOTNET_MONITOR_AZURE_AD_TESTS_PIPELINE_CLIENT_SECRET=$(DOTNET_MONITOR_AZURE_AD_TESTS_PIPELINE_CLIENT_SECRET);set DOTNET_MONITOR_AZURE_AD_TESTS_REQUIRED_ROLE=$(DOTNET_MONITOR_AZURE_AD_TESTS_REQUIRED_ROLE);set DOTNET_MONITOR_AZURE_AD_TESTS_TENANT_ID=$(DOTNET_MONITOR_AZURE_AD_TESTS_TENANT_ID) diff --git a/eng/helix/InstallNodejs.ps1 b/eng/helix/InstallNodejs.ps1 new file mode 100644 index 00000000000..3cd8a2c9255 --- /dev/null +++ b/eng/helix/InstallNodejs.ps1 @@ -0,0 +1,52 @@ +[CmdletBinding(PositionalBinding=$false)] +Param( + [Parameter(Mandatory=$true)][ValidateSet("x86","x64","arm64")][string]$Architecture, + [Parameter(Mandatory=$true)][string] $Version, + [Parameter(Mandatory=$false)][string] $Mirror = "https://nodejs.org/dist", + [Parameter(Mandatory=$true)][string] $DestinationFolder +) + +Set-StrictMode -Version Latest +$ErrorActionPreference = "Stop" + +if ($IsMacOS) { + $nodePlatform = "darwin" + $nodeExt = "tar.gz" +} elseif ($IsLinux) { + $nodePlatform = "linux" + $nodeExt = "tar.gz" +} elseif ($IsWindows) { + $nodePlatform = "win" + $nodeExt = "zip" +} else { + Write-Error "Unknown OS" + exit 1; +} + +if (Test-Path -Path $DestinationFolder) { + Write-Output "$DestinationFolder already exists, skipping" + exit 0 +} + +$nodeName = "node-$Version-$nodePlatform-$Architecture" +$nodeUrl = "$Mirror/$Version/$nodeName.$nodeExt" +Write-Verbose "URL: $nodeUrl" + +$tempFolderPath = Join-Path $([System.IO.Path]::GetTempPath()) $(New-Guid) +Write-Verbose "Temp path: $tempFolderPath" + +New-Item -ItemType Directory -Force -Path $tempFolderPath + +$archiveFile = Join-Path $tempFolderPath "$nodeName.$nodeExt" +Write-Verbose "Archive file: $archiveFile" + +Invoke-WebRequest $nodeUrl -OutFile $archiveFile -MaximumRetryCount 5 +if ($IsWindows) { + Expand-Archive $archiveFile -DestinationPath $tempFolderPath + Move-Item -Path $(Join-Path $tempFolderPath $nodeName) -Destination $DestinationFolder +} else { + New-Item -ItemType Directory -Force -Path $DestinationFolder + & tar --strip-components 1 -xzf "$archiveFile" --no-same-owner --directory "$DestinationFolder" +} + +Remove-Item -Recurse -Force $tempFolderPath \ No newline at end of file diff --git a/eng/helix/payload/installazurite.sh b/eng/helix/payload/installazurite.sh index f3d3ff0f048..2a48d481247 100755 --- a/eng/helix/payload/installazurite.sh +++ b/eng/helix/payload/installazurite.sh @@ -1,4 +1,4 @@ #!/bin/sh -npm install -g azurite || exit 1 +helix_npm install -g azurite || exit 1 export TEST_AZURITE_MUST_INITIALIZE=1 diff --git a/eng/helix/payload/setupnode.cmd b/eng/helix/payload/setupnode.cmd index ef678f3af35..b303d62f4e5 100755 --- a/eng/helix/payload/setupnode.cmd +++ b/eng/helix/payload/setupnode.cmd @@ -1,4 +1,4 @@ -set PATH=%HELIX_CORRELATION_PAYLOAD%\nodejs\%1;%PATH% +set PATH=%HELIX_CORRELATION_PAYLOAD%\nodejs;%PATH% call npm config set prefix %HELIX_WORKITEM_ROOT%\.npm if %ERRORLEVEL% neq 0 exit %ERRORLEVEL% set PATH=%HELIX_WORKITEM_ROOT%\.npm;%PATH% diff --git a/eng/helix/payload/setupnode.sh b/eng/helix/payload/setupnode.sh index 37184e1b171..73ca21c8227 100755 --- a/eng/helix/payload/setupnode.sh +++ b/eng/helix/payload/setupnode.sh @@ -1,7 +1,21 @@ #!/bin/sh -setupNode() { - export PATH=$HELIX_CORRELATION_PAYLOAD/nodejs/$1/bin:$PATH - npm config set prefix $HELIX_WORKITEM_ROOT/.npm || exit 1 - export PATH=$HELIX_WORKITEM_ROOT/.npm/bin:$PATH -} + +# +# Create an npm alias. +# +# When helix transfers a correlation payload it will zip the contents for transit, resulting in symbolic links to be dereferenced. +# In the case of common node tools (e.g. npm) this is not ideal as the linked scripts contain relative file paths which will be broken. +# +# Ideally we could simply transfer a tar file instead and unpack it here, however not all helix containers +# have the necessary tooling to process tar files, let alone the ability to change the EUID to use +# the distro's package manager to install them. +# +# Alternatively we could recreate the symbolic links. However certain helix containers have read-only file systems which makes this impossible. +# Creating a custom alias that directly invokes node with the npm-cli script will work across all of these constraints on all *nix platforms. +# +alias helix_npm="node $HELIX_CORRELATION_PAYLOAD/nodejs/lib/node_modules/npm/bin/npm-cli.js" + +export PATH=$HELIX_CORRELATION_PAYLOAD/nodejs/bin:$PATH +helix_npm config set prefix $HELIX_WORKITEM_ROOT/.npm || exit 1 +export PATH=$HELIX_WORKITEM_ROOT/.npm/bin:$PATH diff --git a/eng/pipelines/dotnet-monitor-release.yml b/eng/pipelines/dotnet-monitor-release.yml index 3111c12e3c5..b93ebd79ec6 100644 --- a/eng/pipelines/dotnet-monitor-release.yml +++ b/eng/pipelines/dotnet-monitor-release.yml @@ -110,6 +110,8 @@ stages: variables: - ${{ if eq(parameters.IsTestRun, 'true') }}: - group: DotNet-Diagnostics-Storage-Test + - ${{ else }}: + - group: DotNetCli storage account tokens - group: DotNet-DotNetStage-Storage workspace: @@ -149,6 +151,15 @@ stages: -MaestroToken $(MaestroAccessToken) -TaskVariableName 'ReleaseVersion' + - task: PowerShell@2 + displayName: Get Build Version + inputs: + filePath: $(Build.SourcesDirectory)/eng/release/Scripts/GetBuildVersion.ps1 + arguments: >- + -BarId $(BarId) + -MaestroToken $(MaestroAccessToken) + -TaskVariableName 'BuildVersion' + - powershell: Install-PackageProvider -Name NuGet -Force -Scope CurrentUser displayName: Install NuGet PowerShell Package Provider @@ -157,24 +168,24 @@ stages: - powershell: | Write-Host "##vso[task.setvariable variable=DestinationAccountName]$env:DESTINATION_ACCOUNT_NAME" - Write-Host "##vso[task.setvariable variable=DestinationAccountKey;issecret=true]$env:DESTINATION_ACCOUNT_KEY" + Write-Host "##vso[task.setvariable variable=DestinationSasTokenBase64;issecret=true]$env:DESTINATION_SAS_TOKEN_BASE64" Write-Host "##vso[task.setvariable variable=ChecksumsAccountName]$env:CHECKSUMS_ACCOUNT_NAME" - Write-Host "##vso[task.setvariable variable=ChecksumsAccountKey;issecret=true]$env:CHECKSUMS_ACCOUNT_KEY" + Write-Host "##vso[task.setvariable variable=ChecksumsSasTokenBase64;issecret=true]$env:CHECKSUMS_SAS_TOKEN_BASE64" displayName: Set Storage Accounts ${{ if eq(parameters.IsTestRun, 'true') }}: env: # Variables provided by DotNet-Diagnostics-Storage-Test group DESTINATION_ACCOUNT_NAME: $(dotnet-monitor-test-storage-accountname) - DESTINATION_ACCOUNT_KEY: $(dotnet-monitor-test-storage-accountkey) + DESTINATION_SAS_TOKEN_BASE64: $(dotnet-monitor-test-blob-write-token-base64) CHECKSUMS_ACCOUNT_NAME: $(dotnet-monitor-checksums-test-storage-accountname) - CHECKSUMS_ACCOUNT_KEY: $(dotnet-monitor-checksums-test-storage-accountkey) + CHECKSUMS_SAS_TOKEN_BASE64: $(dotnet-monitor-checksums-test-blob-write-token-base64) ${{ else }}: env: - # Variables provided by Release-Pipeline group + # Variables provided by "DotNetCli storage account tokens" group DESTINATION_ACCOUNT_NAME: dotnetcli - DESTINATION_ACCOUNT_KEY: $(dotnetcli-storage-key) + DESTINATION_SAS_TOKEN_BASE64: $(dotnetcli-account-blob-write-token-base64) CHECKSUMS_ACCOUNT_NAME: dotnetclichecksums - CHECKSUMS_ACCOUNT_KEY: $(dotnetclichecksums-storage-key) + CHECKSUMS_SAS_TOKEN_BASE64: $(dotnetclichecksums-account-blob-write-token-base64) - task: PowerShell@2 displayName: Publish Assets @@ -182,13 +193,13 @@ stages: filePath: $(Build.SourcesDirectory)/eng/release/Scripts/PublishToBlobAccounts.ps1 arguments: >- -AzCopyPath $(AzCopyPath) - -BuildNumber $(resources.pipeline.Build.runName) + -BuildVersion $(BuildVersion) -ReleaseVersion $(ReleaseVersion) -DotnetStageAccountKey $(dotnetstage-storage-key) -DestinationAccountName $(DestinationAccountName) - -DestinationAccountKey $(DestinationAccountKey) + -DestinationSasTokenBase64 $(DestinationSasTokenBase64) -ChecksumsAccountName $(ChecksumsAccountName) - -ChecksumsAccountKey $(ChecksumsAccountKey) + -ChecksumsSasTokenBase64 $(ChecksumsSasTokenBase64) -WhatIf:${{ format('${0}', parameters.IsDryRun) }} - task: PublishBuildArtifacts@1 diff --git a/eng/pipelines/jobs/pack-sign-publish.yml b/eng/pipelines/jobs/pack-sign-publish.yml index 014bfc7636d..71ac432383e 100644 --- a/eng/pipelines/jobs/pack-sign-publish.yml +++ b/eng/pipelines/jobs/pack-sign-publish.yml @@ -56,7 +56,7 @@ jobs: targetType: inline script: | New-Item "$(Build.ArtifactStagingDirectory)/buildInfo" -Type Directory - Copy-Item "$(Build.SourcesDirectory)/artifacts/packages/Release/Shipping/dotnet-monitor-*-win-x64.zip.buildversion" "$(Build.ArtifactStagingDirectory)/buildInfo/dotnet-monitor.nupkg.buildversion" + Copy-Item "$(Build.SourcesDirectory)/artifacts/packages/Release/Shipping/dotnet-monitor.buildversion" "$(Build.ArtifactStagingDirectory)/buildInfo/dotnet-monitor.nupkg.buildversion" - task: PublishPipelineArtifact@1 displayName: Publish Build Info inputs: diff --git a/eng/pipelines/jobs/test-binaries.yml b/eng/pipelines/jobs/test-binaries.yml index e2ebc7fa09b..cfdb3327ef4 100644 --- a/eng/pipelines/jobs/test-binaries.yml +++ b/eng/pipelines/jobs/test-binaries.yml @@ -42,6 +42,11 @@ jobs: container: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.14-WithNode variables: + - HelixNodejsPayloadPath: '$(Agent.TempDirectory)/helix_nodejs' + - ${{ if eq(parameters.osGroup, 'Windows') }}: + - NodeMajorVersion: 20 # win-arm64 is only supported on newer versions + - ${{ else }}: + - NodeMajorVersion: 16 # Ubuntu 18.04 requires older nodejs version due to glibc version # If TestGroup == 'Default', choose the test group based on the type of pipeline run - ${{ if eq(parameters.testGroup, 'Default') }}: - ${{ if in(variables['Build.Reason'], 'BatchedCI', 'IndividualCI') }}: @@ -66,7 +71,33 @@ jobs: artifactName: Build_Binaries_${{ parameters.configuration }}_${{ parameters.osGroup }}_${{ parameters.architecture }} targetPath: '$(Build.SourcesDirectory)/artifacts' - - ${{ if ne(parameters.useHelix, 'true')}}: + - ${{ if eq(parameters.useHelix, 'true')}}: + - ${{ if ne(parameters.osGroup, 'Linux_Musl')}}: + # Linux builds (of all variants) run in Mariner containers and do not include pwsh by default + - ${{ if eq(parameters.osGroup, 'Linux') }}: + - script: sudo -n tdnf install -y --refresh powershell + displayName: Install pwsh + + # Calculate the fully qualified Nodejs version first so that any new releases will result in a new cache key + - pwsh: eng/helix/GetNodejsVersion.ps1 + -MajorVersion $(NodeMajorVersion) + -TaskVariableName 'FqNodejsVersion' + displayName: Calculate Node.js version + + - task: Cache@2 + displayName: Node.js Cache + inputs: + # Wrap FqNodejsVersion in quotes to prevent it being interpreted as a file + key: 'nodejs | ${{ parameters.osGroup }} | ${{ parameters.architecture }} | "$(FqNodejsVersion)"' + path: $(HelixNodejsPayloadPath) + + - pwsh: eng/helix/InstallNodejs.ps1 + -Version $(FqNodejsVersion) + -Architecture ${{ parameters.architecture }} + -DestinationFolder "$(HelixNodejsPayloadPath)" + displayName: Hydrate Node.js Installation + + - ${{ else }}: - ${{ if ne(parameters.osGroup, 'Windows') }}: - task: NodeTool@0 displayName: Install Node.js diff --git a/eng/pipelines/stages/preparerelease.yml b/eng/pipelines/stages/preparerelease.yml index c284257d1b9..0c17c223113 100644 --- a/eng/pipelines/stages/preparerelease.yml +++ b/eng/pipelines/stages/preparerelease.yml @@ -40,6 +40,14 @@ stages: # Run tool for release and test release branches - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), or(startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'), startsWith(variables['Build.SourceBranch'], 'refs/heads/internal/release/'), startsWith(variables['Build.SourceBranch'], 'refs/heads/test/release/'))) }}: - template: /eng/common/templates/post-build/setup-maestro-vars.yml + - task: PowerShell@2 + displayName: Get Build Version + inputs: + filePath: $(Build.SourcesDirectory)/eng/release/Scripts/GetBuildVersion.ps1 + arguments: >- + -BarId $(BARBuildId) + -MaestroToken $(MaestroAccessToken) + -TaskVariableName 'BuildVersion' - task: PowerShell@2 displayName: 'Download Build Assets' inputs: @@ -63,6 +71,7 @@ stages: --tool-manifest "$(Build.Repository.LocalPath)\eng\release\tool-list.json" --staging-directory "$(System.ArtifactsDirectory)\AssetsLayout" --release-name "$(Build.BuildNumber)" + --build-version "$(BuildVersion)" --account-name "$(dotnet-diagnostics-storage-accountname)" --account-key "$(dotnetstage-storage-key)" --sas-valid-days "$(dotnet-diagnostics-storage-retentiondays)" diff --git a/eng/release/DiagnosticsReleaseTool/Common/AzureBlobPublisher.cs b/eng/release/DiagnosticsReleaseTool/Common/AzureBlobPublisher.cs index 06f8e49efdc..04becfb2293 100644 --- a/eng/release/DiagnosticsReleaseTool/Common/AzureBlobPublisher.cs +++ b/eng/release/DiagnosticsReleaseTool/Common/AzureBlobPublisher.cs @@ -1,4 +1,6 @@ -using Azure; +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + using Azure.Storage; using Azure.Storage.Blobs; using Azure.Storage.Blobs.Models; @@ -24,7 +26,7 @@ public class AzureBlobBublisher : IPublisher private readonly string _accountName; private readonly string _accountKey; private readonly string _containerName; - private readonly string _releaseName; + private readonly string _buildVersion; private readonly int _sasValidDays; private readonly ILogger _logger; @@ -66,12 +68,12 @@ private BlobClientOptions BlobOptions } } - public AzureBlobBublisher(string accountName, string accountKey, string containerName, string releaseName, int sasValidDays, ILogger logger) + public AzureBlobBublisher(string accountName, string accountKey, string containerName, string buildVersion, int sasValidDays, ILogger logger) { _accountName = accountName; _accountKey = accountKey; _containerName = containerName; - _releaseName = releaseName; + _buildVersion = buildVersion; _sasValidDays = sasValidDays; _logger = logger; } @@ -101,7 +103,7 @@ public async Task PublishFileAsync(FileMapping fileMap, CancellationToke using var srcStream = new FileStream(fileMap.LocalSourcePath, FileMode.Open, FileAccess.Read); - BlobClient blobClient = client.GetBlobClient(GetBlobName(_releaseName, fileMap.RelativeOutputPath)); + BlobClient blobClient = client.GetBlobClient(GetBlobName(_buildVersion, fileMap.RelativeOutputPath)); await blobClient.UploadAsync(srcStream, overwrite: true, ct); @@ -261,4 +263,4 @@ private async Task VerifyFileStreamsMatchAsync(FileStream srcStream, BlobD return true; } } -} \ No newline at end of file +} diff --git a/eng/release/DiagnosticsReleaseTool/Config.cs b/eng/release/DiagnosticsReleaseTool/Config.cs index b53a4cd88a2..637fda3a393 100644 --- a/eng/release/DiagnosticsReleaseTool/Config.cs +++ b/eng/release/DiagnosticsReleaseTool/Config.cs @@ -1,5 +1,6 @@ -using Azure.Storage.Blobs.Models; -using System; +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + using System.IO; namespace DiagnosticsReleaseTool.Impl @@ -11,17 +12,19 @@ internal class Config public DirectoryInfo DropPath { get; } public DirectoryInfo StagingDirectory { get; } public string ReleaseName { get; } + public string BuildVersion { get; } public string AccountName { get; } public string AccountKey { get; } public string ContainerName { get; } public int SasValidDays { get; } public Config( - FileInfo toolManifest, + FileInfo toolManifest, bool verifyToolManifest, DirectoryInfo inputDropPath, DirectoryInfo stagingDirectory, string releaseName, + string buildVersion, string accountName, string accountKey, string containerName, @@ -32,10 +35,11 @@ public Config( DropPath = inputDropPath; StagingDirectory = stagingDirectory; ReleaseName = releaseName; + BuildVersion = buildVersion; AccountName = accountName; AccountKey = accountKey; ContainerName = containerName; SasValidDays = sasValidDays; } } -} \ No newline at end of file +} diff --git a/eng/release/DiagnosticsReleaseTool/DiagnosticsReleaseCommandLine.cs b/eng/release/DiagnosticsReleaseTool/DiagnosticsReleaseCommandLine.cs index f1a4d63675e..06072d77a3e 100644 --- a/eng/release/DiagnosticsReleaseTool/DiagnosticsReleaseCommandLine.cs +++ b/eng/release/DiagnosticsReleaseTool/DiagnosticsReleaseCommandLine.cs @@ -1,11 +1,14 @@ -using System.CommandLine; +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using DiagnosticsReleaseTool.Impl; +using System.CommandLine; using System.CommandLine.Builder; using System.CommandLine.Invocation; using System.CommandLine.Parsing; using System.IO; using System.Threading; using System.Threading.Tasks; -using DiagnosticsReleaseTool.Impl; namespace DiagnosticsReleaseTool.CommandLine { @@ -29,7 +32,7 @@ public static Command PrepareRelease() => { CommandHandler.Create(DiagnosticsReleaseRunner.PrepareRelease), // Inputs - InputDropPathOption(), ToolManifestPathOption(), ReleaseNameOption(), + InputDropPathOption(), ToolManifestPathOption(), ReleaseNameOption(), BuildVersionOption(), // Toggles ToolManifestVerificationOption(), DiagnosticLoggingOption(), DryRunOption(), // Outputs @@ -64,13 +67,21 @@ private static Option ReleaseNameOption() => IsRequired = true, }; + private static Option BuildVersionOption() => + new Option( + aliases: new[] { "--build-version" }, + description: "Non-final version of the build.") + { + IsRequired = true, + }; + private static Option ToolManifestVerificationOption() => new Option( alias: "--verify-tool-manifest", description: "Verifies that the assets being published match the manifest", getDefaultValue: () => true); - private static Option InputDropPathOption() => + private static Option InputDropPathOption() => new Option( aliases: new[] { "-i", "--input-drop-path" }, description: "Path to drop generated by `darc gather-drop`") @@ -91,7 +102,7 @@ private static Option AzureStorageAccountNameOption() => aliases: new[] { "-n", "--account-name" }, description: "Storage account name, must be in public azure cloud.") { - IsRequired = true, + IsRequired = true, }; private static Option AzureStorageAccountKeyOption() => diff --git a/eng/release/DiagnosticsReleaseTool/DiagnosticsReleaseRunner.cs b/eng/release/DiagnosticsReleaseTool/DiagnosticsReleaseRunner.cs index 9d2131ca1fc..3ecfa62f936 100644 --- a/eng/release/DiagnosticsReleaseTool/DiagnosticsReleaseRunner.cs +++ b/eng/release/DiagnosticsReleaseTool/DiagnosticsReleaseRunner.cs @@ -1,13 +1,14 @@ -using System.Collections.Generic; -using System.IO; -using System.Threading; -using System.Threading.Tasks; +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. using DiagnosticsReleaseTool.Util; -using ReleaseTool.Core; - using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging; +using ReleaseTool.Core; +using System.Collections.Generic; +using System.IO; +using System.Threading; +using System.Threading.Tasks; namespace DiagnosticsReleaseTool.Impl { @@ -48,7 +49,7 @@ internal async static Task PrepareRelease(Config releaseConfig, bool verbos IPublisher releasePublisher = dryRun ? new SkipPublisher() : - new AzureBlobBublisher(releaseConfig.AccountName, releaseConfig.AccountKey, releaseConfig.ContainerName, releaseConfig.ReleaseName, releaseConfig.SasValidDays, logger); + new AzureBlobBublisher(releaseConfig.AccountName, releaseConfig.AccountKey, releaseConfig.ContainerName, releaseConfig.BuildVersion, releaseConfig.SasValidDays, logger); IManifestGenerator manifestGenerator = new DiagnosticsManifestGenerator(releaseMetadata, releaseConfig.ToolManifest, logger); using var diagnosticsRelease = new Release( diff --git a/eng/release/DiagnosticsReleaseTool/DiagnosticsReleaseTool.csproj b/eng/release/DiagnosticsReleaseTool/DiagnosticsReleaseTool.csproj index 46ace05f444..fc0720a3fb5 100644 --- a/eng/release/DiagnosticsReleaseTool/DiagnosticsReleaseTool.csproj +++ b/eng/release/DiagnosticsReleaseTool/DiagnosticsReleaseTool.csproj @@ -3,6 +3,7 @@ Exe net6.0 + false diff --git a/eng/release/Scripts/PublishToBlobAccounts.ps1 b/eng/release/Scripts/PublishToBlobAccounts.ps1 index d9da8f6f01d..4e0313a464b 100644 --- a/eng/release/Scripts/PublishToBlobAccounts.ps1 +++ b/eng/release/Scripts/PublishToBlobAccounts.ps1 @@ -1,13 +1,13 @@ [CmdletBinding(SupportsShouldProcess)] Param( [Parameter(Mandatory=$true)][string]$AzCopyPath, - [Parameter(Mandatory=$true)][string]$BuildNumber, + [Parameter(Mandatory=$true)][string]$BuildVersion, [Parameter(Mandatory=$true)][string]$ReleaseVersion, [Parameter(Mandatory=$true)][string]$DotnetStageAccountKey, [Parameter(Mandatory=$true)][string]$DestinationAccountName, - [Parameter(Mandatory=$true)][string]$DestinationAccountKey, + [Parameter(Mandatory=$true)][string]$DestinationSasTokenBase64, [Parameter(Mandatory=$true)][string]$ChecksumsAccountName, - [Parameter(Mandatory=$true)][string]$ChecksumsAccountKey + [Parameter(Mandatory=$true)][string]$ChecksumsSasTokenBase64 ) $ErrorActionPreference = 'Stop' @@ -17,13 +17,16 @@ $sourceAccountName = 'dotnetstage' $sourceContainerName = 'dotnet-monitor' $destinationContainerName = 'dotnet' +$destinationSasToken = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($DestinationSasTokenBase64)) +$checksumsSasToken = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($ChecksumsSasTokenBase64)) + function Generate-Source-Uri{ [CmdletBinding()] Param( [Parameter(Mandatory=$true)][string]$AssetType ) - return "https://$sourceAccountName.blob.core.windows.net/$sourceContainerName/$BuildNumber/${AssetType}Assets/*" + return "https://$sourceAccountName.blob.core.windows.net/$sourceContainerName/$BuildVersion/${AssetType}Assets/*" } function Generate-Destination-Uri{ @@ -65,13 +68,13 @@ function Transfer-File{ [Parameter(Mandatory=$true)][string]$ToToken ) - Write-Verbose "Copy $From -> $To" + Write-Host "Copy $From -> $To" if ($From -eq $to) { - Write-Verbose 'Skipping copy because source and destination are the same.' + Write-Host 'Skipping copy because source and destination are the same.' } else { - [array]$azCopyArgs = "$from$fromToken" - $azCopyArgs += "$to$toToken" + [array]$azCopyArgs = "$From$FromToken" + $azCopyArgs += "$To$ToToken" $azCopyArgs += "--s2s-preserve-properties" $azCopyArgs += "--s2s-preserve-access-tier=false" if ($WhatIfPreference) { @@ -90,14 +93,9 @@ $soureSasToken = Generate-Sas-Token ` -AccountKey $DotnetStageAccountKey ` -Permissions 'rl' -# Create destination URI and SAS token +# Create destination URI $destinationUri = Generate-Destination-Uri ` -AccountName $DestinationAccountName -$destinationSasToken = Generate-Sas-Token ` - -StorageAccountName $DestinationAccountName ` - -ContainerName $destinationContainerName ` - -AccountKey $DestinationAccountKey ` - -Permissions 'rlw' # Copy files to destination account Transfer-File ` @@ -111,19 +109,14 @@ Transfer-File ` $checksumsSourceUri = Generate-Source-Uri ` -AssetType 'Checksum' -# Create checksums destination URI and SAS token +# Create checksums destination URI $checksumsDestinationUri = Generate-Destination-Uri ` -AccountName $ChecksumsAccountName -$checksumsDestinationSasToken = Generate-Sas-Token ` - -StorageAccountName $ChecksumsAccountName ` - -ContainerName $destinationContainerName ` - -AccountKey $ChecksumsAccountKey ` - -Permissions 'rlw' # Copy checksums to checksum account Transfer-File ` -From $checksumsSourceUri ` -FromToken $soureSasToken ` -To $checksumsDestinationUri ` - -ToToken $checksumsDestinationSasToken ` + -ToToken $checksumsSasToken ` -WhatIf:$WhatIfPreference \ No newline at end of file diff --git a/global.json b/global.json index 5c313e69647..4a0e8cf7706 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "tools": { - "dotnet": "8.0.100-rc.1.23455.8", + "dotnet": "8.0.100-rtm.23506.1", "runtimes": { "aspnetcore": [ "$(MicrosoftAspNetCoreApp60Version)", @@ -22,12 +22,11 @@ "$(MicrosoftNETCoreApp70Version)", "$(VSRedistCommonNetCoreSharedFrameworkx6480Version)" ] - }, - "xcopy-msbuild": "17.7.2" + } }, "msbuild-sdks": { "Microsoft.Build.NoTargets": "3.7.0", - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23463.1", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23463.1" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23516.4", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23516.4" } } diff --git a/src/Directory.Build.props b/src/Directory.Build.props index f091c4f7114..69e366ef90e 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -37,10 +37,6 @@ $(TestRunnerAdditionalArguments) --filter "$(TestRunnerFilterArguments)" - - - - diff --git a/src/Directory.Build.targets b/src/Directory.Build.targets index d01c1c8ddca..f39f0bee70e 100644 --- a/src/Directory.Build.targets +++ b/src/Directory.Build.targets @@ -16,54 +16,22 @@ - - - - - - - - - - - - - - - - - - - - - + + + <_BuildVersion>$(_OriginalVersionPrefix)-$(_PreReleaseLabel)$(_BuildNumberLabels) + + - - - - - - - - - - - $(TestTargetFrameworks) - ;1591;1701 + $(NoWarn);1591;1701 Web Api surface for dotnet-monitor true @@ -19,7 +19,7 @@ - + diff --git a/src/Microsoft.Diagnostics.Monitoring.WebApi/Strings.Designer.cs b/src/Microsoft.Diagnostics.Monitoring.WebApi/Strings.Designer.cs index 350dfdf3791..04bc00e1768 100644 --- a/src/Microsoft.Diagnostics.Monitoring.WebApi/Strings.Designer.cs +++ b/src/Microsoft.Diagnostics.Monitoring.WebApi/Strings.Designer.cs @@ -276,6 +276,33 @@ internal static string ErrorMessage_ValueNotString { } } + /// + /// Looks up a localized string similar to Call Stacks. + /// + internal static string FeatureName_CallStacks { + get { + return ResourceManager.GetString("FeatureName_CallStacks", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Exceptions. + /// + internal static string FeatureName_Exceptions { + get { + return ResourceManager.GetString("FeatureName_Exceptions", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Parameter Capturing. + /// + internal static string FeatureName_ParameterCapturing { + get { + return ResourceManager.GetString("FeatureName_ParameterCapturing", resourceCulture); + } + } + /// /// Looks up a localized string similar to The counter {0} ended and is no longer receiving metrics.. /// @@ -492,6 +519,15 @@ internal static string Message_CollectionRuleStateReason_Throttled { } } + /// + /// Looks up a localized string similar to The '{0}' feature is not enabled.. + /// + internal static string Message_FeatureNotEnabled { + get { + return ResourceManager.GetString("Message_FeatureNotEnabled", resourceCulture); + } + } + /// /// Looks up a localized string similar to Finished generating in-process artifact. /// diff --git a/src/Microsoft.Diagnostics.Monitoring.WebApi/Strings.resx b/src/Microsoft.Diagnostics.Monitoring.WebApi/Strings.resx index 23213385dbc..3c0ed672c57 100644 --- a/src/Microsoft.Diagnostics.Monitoring.WebApi/Strings.resx +++ b/src/Microsoft.Diagnostics.Monitoring.WebApi/Strings.resx @@ -213,6 +213,15 @@ Value must be of type string. Gets a string similar to "Value must be of type string.". + + Call Stacks + + + Exceptions + + + Parameter Capturing + The counter {0} ended and is no longer receiving metrics. @@ -314,6 +323,9 @@ This collection rule is temporarily throttled because the ActionCountLimit has been reached within the ActionCountSlidingWindowDuration. + + The '{0}' feature is not enabled. + Finished generating in-process artifact diff --git a/src/Tests/Directory.Build.props b/src/Tests/Directory.Build.props deleted file mode 100644 index 9bc549ebd25..00000000000 --- a/src/Tests/Directory.Build.props +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests.csproj b/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests.csproj index 20e2783b6d6..123c36811d1 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests.csproj +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests.csproj @@ -1,6 +1,6 @@ - $(SchemaTargetFramework) + $(SchemaTargetFramework) Library diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests/SchemaGenerationTests.cs b/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests/SchemaGenerationTests.cs index 5f1fd0b327b..fe7d71fd8dd 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests/SchemaGenerationTests.cs +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests/SchemaGenerationTests.cs @@ -35,7 +35,7 @@ public class SchemaGenerationTests AssemblyHelper.GetAssemblyArtifactBinPath( Assembly.GetExecutingAssembly(), SchemaGeneratorName, - TargetFrameworkMoniker.Net60); + TargetFrameworkMoniker.Net80); public SchemaGenerationTests(ITestOutputHelper outputHelper) { diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.csproj b/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.csproj index 2ad7d29c291..a232376963e 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.csproj +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.csproj @@ -75,9 +75,9 @@ - - - + + + diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.EgressExtensibilityApp/Microsoft.Diagnostics.Monitoring.EgressExtensibilityApp.csproj b/src/Tests/Microsoft.Diagnostics.Monitoring.EgressExtensibilityApp/Microsoft.Diagnostics.Monitoring.EgressExtensibilityApp.csproj index cfbe54aa4b9..623970dcf36 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.EgressExtensibilityApp/Microsoft.Diagnostics.Monitoring.EgressExtensibilityApp.csproj +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.EgressExtensibilityApp/Microsoft.Diagnostics.Monitoring.EgressExtensibilityApp.csproj @@ -6,7 +6,7 @@ - + diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.OpenApiGen.UnitTests/Microsoft.Diagnostics.Monitoring.OpenApiGen.UnitTests.csproj b/src/Tests/Microsoft.Diagnostics.Monitoring.OpenApiGen.UnitTests/Microsoft.Diagnostics.Monitoring.OpenApiGen.UnitTests.csproj index a5d1ab48a89..12695464048 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.OpenApiGen.UnitTests/Microsoft.Diagnostics.Monitoring.OpenApiGen.UnitTests.csproj +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.OpenApiGen.UnitTests/Microsoft.Diagnostics.Monitoring.OpenApiGen.UnitTests.csproj @@ -12,7 +12,7 @@ - + diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.OpenApiGen.UnitTests/OpenApiGeneratorTests.cs b/src/Tests/Microsoft.Diagnostics.Monitoring.OpenApiGen.UnitTests/OpenApiGeneratorTests.cs index fffbf2ebd01..9f66c2602d2 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.OpenApiGen.UnitTests/OpenApiGeneratorTests.cs +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.OpenApiGen.UnitTests/OpenApiGeneratorTests.cs @@ -33,7 +33,7 @@ public class OpenApiGeneratorTests Path.Combine(Path.GetDirectoryName(CurrentExecutingAssemblyPath), OpenApiBaselineName); private static readonly string OpenApiGenPath = - AssemblyHelper.GetAssemblyArtifactBinPath(Assembly.GetExecutingAssembly(), OpenApiGenName, TargetFrameworkMoniker.Net60); + AssemblyHelper.GetAssemblyArtifactBinPath(Assembly.GetExecutingAssembly(), OpenApiGenName, TargetFrameworkMoniker.Net80); private readonly ITestOutputHelper _outputHelper; diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.Profiler.UnitTestApp/Microsoft.Diagnostics.Monitoring.Profiler.UnitTestApp.csproj b/src/Tests/Microsoft.Diagnostics.Monitoring.Profiler.UnitTestApp/Microsoft.Diagnostics.Monitoring.Profiler.UnitTestApp.csproj index 5e8a8d34e78..b42553e604e 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.Profiler.UnitTestApp/Microsoft.Diagnostics.Monitoring.Profiler.UnitTestApp.csproj +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.Profiler.UnitTestApp/Microsoft.Diagnostics.Monitoring.Profiler.UnitTestApp.csproj @@ -6,7 +6,7 @@ - + diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.TestCommon/Microsoft.Diagnostics.Monitoring.TestCommon.csproj b/src/Tests/Microsoft.Diagnostics.Monitoring.TestCommon/Microsoft.Diagnostics.Monitoring.TestCommon.csproj index 89fcae55c15..a8410dac814 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.TestCommon/Microsoft.Diagnostics.Monitoring.TestCommon.csproj +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.TestCommon/Microsoft.Diagnostics.Monitoring.TestCommon.csproj @@ -14,11 +14,11 @@ - - - - - + + + + + diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.TestCommon/Runners/DotNetRunner.cs b/src/Tests/Microsoft.Diagnostics.Monitoring.TestCommon/Runners/DotNetRunner.cs index 8d54abe747e..cea080ba806 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.TestCommon/Runners/DotNetRunner.cs +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.TestCommon/Runners/DotNetRunner.cs @@ -109,11 +109,14 @@ public sealed class DotNetRunner : IDisposable /// public bool StopOnParentExit { get; set; } = true; + // This startup hook assembly is a dependency of the TestCommon assembly, so it is copied to the same + // output directory that TestCommon is copied. Do not specify TFM so it uses the one that is in the + // same directory; this is interpreted as "relative to the currently executing assembly, + // find the startup hook assembly." private static string TestProcessCleanupStartupHookPath => AssemblyHelper.GetAssemblyArtifactBinPath( Assembly.GetExecutingAssembly(), - TestProcessCleanupStartupHookAssemblyName, - TargetFrameworkMoniker.Net60 + TestProcessCleanupStartupHookAssemblyName ); public DotNetRunner() diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/AuthenticationTests.cs b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/AuthenticationTests.cs index d1304ba082c..35f8ffca3c8 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/AuthenticationTests.cs +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/AuthenticationTests.cs @@ -473,7 +473,7 @@ public async Task WarnOnPrivateKey(string signingAlgo) } else { - Assert.True(false, "Unknown algorithm"); + Assert.Fail("Unknown algorithm"); } JsonSerializerOptions serializerOptions = JsonSerializerOptionsFactory.Create(JsonIgnoreCondition.WhenWritingNull); diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/Directory.Build.props b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/Directory.Build.props index e1dd85965f7..7732e7db676 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/Directory.Build.props +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/Directory.Build.props @@ -3,5 +3,5 @@ true - + \ No newline at end of file diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/InfoTests.cs b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/InfoTests.cs index b396caf1c66..7b78b648e4d 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/InfoTests.cs +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/InfoTests.cs @@ -51,11 +51,7 @@ public Task InfoEndpointValidationTest(DiagnosticPortConnectionMode mode) Assert.NotNull(info.Version); // Not sure of how to get Dotnet Monitor version from within tests... Assert.True(Version.TryParse(info.RuntimeVersion, out Version runtimeVersion), "Unable to parse version from RuntimeVersion property."); -#if NET7_0_OR_GREATER Version currentAspNetVersion = TargetFrameworkMoniker.Net80.GetAspNetCoreFrameworkVersion(); -#else - Version currentAspNetVersion = TargetFrameworkMoniker.Net60.GetAspNetCoreFrameworkVersion(); -#endif Assert.Equal(currentAspNetVersion.Major, runtimeVersion.Major); Assert.Equal(currentAspNetVersion.Minor, runtimeVersion.Minor); Assert.Equal(currentAspNetVersion.Revision, runtimeVersion.Revision); diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests.csproj b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests.csproj index 7e5be8edcb2..3b632639638 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests.csproj +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests.csproj @@ -79,9 +79,9 @@ - - - + + + @@ -92,7 +92,7 @@ false true - TargetFramework=net6.0 + TargetFramework=net8.0 diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/Runners/MonitorRunner.cs b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/Runners/MonitorRunner.cs index 52250577689..f7068a34d46 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/Runners/MonitorRunner.cs +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/Runners/MonitorRunner.cs @@ -68,22 +68,14 @@ internal class MonitorRunner : IAsyncDisposable AssemblyHelper.GetAssemblyArtifactBinPath( Assembly.GetExecutingAssembly(), "dotnet-monitor", -#if NET7_0_OR_GREATER TargetFrameworkMoniker.Net80 -#else - TargetFrameworkMoniker.Net60 -#endif ); private static string TestStartupHookPath => AssemblyHelper.GetAssemblyArtifactBinPath( Assembly.GetExecutingAssembly(), TestStartupHookAssemblyName, -#if NET7_0_OR_GREATER TargetFrameworkMoniker.Net80 -#else - TargetFrameworkMoniker.Net60 -#endif ); private string SharedConfigDirectoryPath => diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/StacksTests.cs b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/StacksTests.cs index cfbdd66b39c..dc211ce2950 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/StacksTests.cs +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/StacksTests.cs @@ -247,8 +247,8 @@ public Task TestInProcessFeaturesEnabledCallStacksDisabled(Architecture targetAr { int processId = await runner.ProcessIdTask; - ApiStatusCodeException ex = await Assert.ThrowsAsync(() => client.CaptureStacksAsync(processId, WebApi.StackFormat.Json)); - Assert.Equal(HttpStatusCode.NotFound, ex.StatusCode); + ValidationProblemDetailsException ex = await Assert.ThrowsAsync(() => client.CaptureStacksAsync(processId, WebApi.StackFormat.Json)); + Assert.Equal(HttpStatusCode.BadRequest, ex.StatusCode); await runner.SendCommandAsync(TestAppScenarios.Stacks.Commands.Continue); }, @@ -279,8 +279,8 @@ public Task TestInProcessFeaturesDisabledCallStacksEnabled(Architecture targetAr { int processId = await runner.ProcessIdTask; - ApiStatusCodeException ex = await Assert.ThrowsAsync(() => client.CaptureStacksAsync(processId, WebApi.StackFormat.Json)); - Assert.Equal(HttpStatusCode.NotFound, ex.StatusCode); + ValidationProblemDetailsException ex = await Assert.ThrowsAsync(() => client.CaptureStacksAsync(processId, WebApi.StackFormat.Json)); + Assert.Equal(HttpStatusCode.BadRequest, ex.StatusCode); await runner.SendCommandAsync(TestAppScenarios.Stacks.Commands.Continue); }, diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/ActionTestsHelper.cs b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/ActionTestsHelper.cs index 4451f75b74d..00ac4bb40d7 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/ActionTestsHelper.cs +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/ActionTestsHelper.cs @@ -25,17 +25,13 @@ internal static class ActionTestsHelper { TargetFrameworkMoniker.Net60, TargetFrameworkMoniker.Net70, -#if INCLUDE_NEXT_DOTNET TargetFrameworkMoniker.Net80 -#endif }; public static TargetFrameworkMoniker[] tfms6PlusToTest = new TargetFrameworkMoniker[] { TargetFrameworkMoniker.Net60, TargetFrameworkMoniker.Net70, -#if INCLUDE_NEXT_DOTNET TargetFrameworkMoniker.Net80 -#endif }; public static IEnumerable GetTfms() diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon.csproj b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon.csproj index 719d282a29a..4d08307876f 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon.csproj +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests/CollectionRulePipelineTests.cs b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests/CollectionRulePipelineTests.cs index 82ca7d687e8..758c76ac63f 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests/CollectionRulePipelineTests.cs +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests/CollectionRulePipelineTests.cs @@ -576,18 +576,12 @@ public static IEnumerable GetTfmsSupportingPortListener() { yield return new object[] { TargetFrameworkMoniker.Net60 }; yield return new object[] { TargetFrameworkMoniker.Net70 }; -#if INCLUDE_NEXT_DOTNET yield return new object[] { TargetFrameworkMoniker.Net80 }; -#endif } public static IEnumerable GetCurrentTfm() { -#if INCLUDE_NEXT_DOTNET yield return new object[] { TargetFrameworkMoniker.Net80 }; -#else - yield return new object[] { TargetFrameworkMoniker.Net70 }; -#endif } } } diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests/HostBuilderExtensions.cs b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests/HostBuilderExtensions.cs index e03e992c62e..168b3dcb783 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests/HostBuilderExtensions.cs +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests/HostBuilderExtensions.cs @@ -104,7 +104,7 @@ private static void ReplaceSource(IList sources, Func payload = new(); - payload.Add(new PercentilePayload(MeterName, InstrumentName, "DisplayName", string.Empty, string.Empty, - new Quantile[] { new(0.5, Value1), new(0.95, Value2), new(0.99, Value3) }, + payload.Add(new AggregatePercentilePayload(MeterName, InstrumentName, "DisplayName", string.Empty, string.Empty, + new Quantile[] { new Quantile(0.5, Value1), new Quantile(0.95, Value2), new Quantile(0.99, Value3) }, Timestamp)); using MemoryStream stream = await GetMetrics(payload); diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests.csproj b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests.csproj index d750ef81f7f..1e681e34fac 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests.csproj +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests.csproj @@ -5,7 +5,7 @@ - + diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests/StartupHookTests.cs b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests/StartupHookTests.cs new file mode 100644 index 00000000000..25358ee9d2e --- /dev/null +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests/StartupHookTests.cs @@ -0,0 +1,87 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.Diagnostics.Monitoring.TestCommon; +using Microsoft.Diagnostics.Monitoring.TestCommon.Runners; +using Microsoft.Diagnostics.NETCore.Client; +using Microsoft.Diagnostics.Tools.Monitor.HostingStartup; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Reflection; +using System.Runtime.InteropServices; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace Microsoft.Diagnostics.Monitoring.Tool.UnitTests +{ + [TargetFrameworkMonikerTrait(TargetFrameworkMonikerExtensions.CurrentTargetFrameworkMoniker)] + public sealed class StartupHookTests + { + private ITestOutputHelper _outputHelper; + + public StartupHookTests(ITestOutputHelper outputHelper) + { + _outputHelper = outputHelper; + } + + // It appears that the profiler isn't loading on musl libc distros for this tests. + [ConditionalTheory(typeof(TestConditions), nameof(TestConditions.IsNotAlpine))] + [MemberData(nameof(ProfilerHelper.GetNotifyOnlyArchitectureProfilerPath), MemberType = typeof(ProfilerHelper))] + public async Task StartupHook_WithProfiler_HasManagedMessaging(Architecture architecture, string profilerPath, ProfilerVariant variant) + { + Assert.Equal(ProfilerVariant.NotifyOnly, variant); + + await using AppRunner runner = new( + _outputHelper, + Assembly.GetExecutingAssembly()); + runner.Architecture = architecture; + runner.ScenarioName = TestAppScenarios.AsyncWait.Name; + runner.EnableMonitorStartupHook = true; + + // Environment variables necessary for running the profiler + enable all logging to stderr + runner.Environment.Add(ProfilerHelper.ClrEnvVarEnableNotificationProfilers, ProfilerHelper.ClrEnvVarEnabledValue); + runner.Environment.Add(ProfilerHelper.ClrEnvVarEnableProfiling, ProfilerHelper.ClrEnvVarEnabledValue); + runner.Environment.Add(ProfilerHelper.ClrEnvVarProfiler, ProfilerIdentifiers.NotifyOnlyProfiler.Clsid.StringWithBraces); + runner.Environment.Add(ProfilerHelper.ClrEnvVarProfilerPath, profilerPath); + runner.Environment.Add(ProfilerIdentifiers.EnvironmentVariables.RuntimeInstanceId, Guid.NewGuid().ToString("D")); + runner.Environment.Add(ProfilerIdentifiers.EnvironmentVariables.StdErrLogger_Level, LogLevel.Trace.ToString("G")); + + await runner.ExecuteAsync(async () => + { + DiagnosticsClient client = new(await runner.ProcessIdTask); + + Dictionary env = client.GetProcessEnvironment(); + Assert.True(env.TryGetValue(InProcessFeaturesIdentifiers.EnvironmentVariables.AvailableInfrastructure.StartupHook, out string startupHookAvailableValue)); + Assert.True(ToolIdentifiers.IsEnvVarValueEnabled(startupHookAvailableValue)); + Assert.True(env.TryGetValue(InProcessFeaturesIdentifiers.EnvironmentVariables.AvailableInfrastructure.ManagedMessaging, out string managedMessagingAvailableValue)); + Assert.True(ToolIdentifiers.IsEnvVarValueEnabled(startupHookAvailableValue)); + + await runner.SendCommandAsync(TestAppScenarios.AsyncWait.Commands.Continue); + }); + } + + [Fact] + public async Task StartupHook_WithoutProfiler_NoManagedMessaging() + { + await using AppRunner runner = new( + _outputHelper, + Assembly.GetExecutingAssembly()); + runner.ScenarioName = TestAppScenarios.AsyncWait.Name; + runner.EnableMonitorStartupHook = true; + + await runner.ExecuteAsync(async () => + { + DiagnosticsClient client = new(await runner.ProcessIdTask); + + Dictionary env = client.GetProcessEnvironment(); + Assert.True(env.TryGetValue(InProcessFeaturesIdentifiers.EnvironmentVariables.AvailableInfrastructure.StartupHook, out string startupHookAvailableValue)); + Assert.True(ToolIdentifiers.IsEnvVarValueEnabled(startupHookAvailableValue)); + Assert.False(env.TryGetValue(InProcessFeaturesIdentifiers.EnvironmentVariables.AvailableInfrastructure.ManagedMessaging, out _)); + + await runner.SendCommandAsync(TestAppScenarios.AsyncWait.Commands.Continue); + }); + } + } +} diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.UnitTestApp/Microsoft.Diagnostics.Monitoring.UnitTestApp.csproj b/src/Tests/Microsoft.Diagnostics.Monitoring.UnitTestApp/Microsoft.Diagnostics.Monitoring.UnitTestApp.csproj index f0863a40f91..417ff0bf4b0 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.UnitTestApp/Microsoft.Diagnostics.Monitoring.UnitTestApp.csproj +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.UnitTestApp/Microsoft.Diagnostics.Monitoring.UnitTestApp.csproj @@ -8,7 +8,7 @@ - + diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.WebApi.UnitTests/Microsoft.Diagnostics.Monitoring.WebApi.UnitTests.csproj b/src/Tests/Microsoft.Diagnostics.Monitoring.WebApi.UnitTests/Microsoft.Diagnostics.Monitoring.WebApi.UnitTests.csproj index daa981e8694..474c64e865b 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.WebApi.UnitTests/Microsoft.Diagnostics.Monitoring.WebApi.UnitTests.csproj +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.WebApi.UnitTests/Microsoft.Diagnostics.Monitoring.WebApi.UnitTests.csproj @@ -6,7 +6,7 @@ - + diff --git a/src/Tools/dotnet-monitor/Experimental/ExperimentalStartupLogger.cs b/src/Tools/dotnet-monitor/Experimental/ExperimentalStartupLogger.cs index a66b10aa1aa..0a69300b6d5 100644 --- a/src/Tools/dotnet-monitor/Experimental/ExperimentalStartupLogger.cs +++ b/src/Tools/dotnet-monitor/Experimental/ExperimentalStartupLogger.cs @@ -23,7 +23,7 @@ public void Log() { if (_parameterCapturingOptions.GetEnabled()) { - _logger.ExperimentalFeatureEnabled(Strings.FeatureName_ParameterCapturing); + _logger.ExperimentalFeatureEnabled(Microsoft.Diagnostics.Monitoring.WebApi.Strings.FeatureName_ParameterCapturing); } // Experimental features should log a warning when they are activated e.g. diff --git a/src/Tools/dotnet-monitor/Strings.Designer.cs b/src/Tools/dotnet-monitor/Strings.Designer.cs index 8c27890e6d8..f78a5abf928 100644 --- a/src/Tools/dotnet-monitor/Strings.Designer.cs +++ b/src/Tools/dotnet-monitor/Strings.Designer.cs @@ -592,33 +592,6 @@ internal static string ErrorMessage_UnknownTriggerType { } } - /// - /// Looks up a localized string similar to Call Stacks. - /// - internal static string FeatureName_CallStacks { - get { - return ResourceManager.GetString("FeatureName_CallStacks", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Exceptions. - /// - internal static string FeatureName_Exceptions { - get { - return ResourceManager.GetString("FeatureName_Exceptions", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Parameter Capturing. - /// - internal static string FeatureName_ParameterCapturing { - get { - return ResourceManager.GetString("FeatureName_ParameterCapturing", resourceCulture); - } - } - /// /// Looks up a localized string similar to Monitor logs and metrics in a .NET application send the results to a chosen destination.. /// diff --git a/src/Tools/dotnet-monitor/Strings.resx b/src/Tools/dotnet-monitor/Strings.resx index a1e52979aa9..b5a53b94af6 100644 --- a/src/Tools/dotnet-monitor/Strings.resx +++ b/src/Tools/dotnet-monitor/Strings.resx @@ -377,12 +377,6 @@ '{0}' is not a known trigger type. {0} = The type of trigger that is unknown. - - Call Stacks - - - Exceptions - Monitor logs and metrics in a .NET application send the results to a chosen destination. Gets the string to display in help that explains what the 'collect' command does. @@ -913,9 +907,6 @@ 0. providerName: The name of the provider that failed validation. 1. errorMessage: The validation failure message - - Parameter Capturing - Unable to find hosting startup assembly at determined path. diff --git a/src/Tools/dotnet-monitor/dotnet-monitor.csproj b/src/Tools/dotnet-monitor/dotnet-monitor.csproj index 10dd74e044b..1aed9ef4919 100644 --- a/src/Tools/dotnet-monitor/dotnet-monitor.csproj +++ b/src/Tools/dotnet-monitor/dotnet-monitor.csproj @@ -11,16 +11,16 @@ - - - - - - + + + + + + - + diff --git a/src/archives/AzureBlobStorage/ProjectsToPublish.props b/src/archives/AzureBlobStorage/ProjectsToPublish.props index a365792860f..c835563d054 100644 --- a/src/archives/AzureBlobStorage/ProjectsToPublish.props +++ b/src/archives/AzureBlobStorage/ProjectsToPublish.props @@ -16,8 +16,5 @@ TargetFramework=$(LatestToolTargetFramework);RuntimeIdentifier=;PublishDir=$(AzureBlobStoragePublishRootPath)$(LatestToolTargetFramework)\any\;SelfContained=false - - TargetFramework=$(OlderToolTargetFramework);RuntimeIdentifier=;PublishDir=$(AzureBlobStoragePublishRootPath)$(OlderToolTargetFramework)\any\;SelfContained=false - diff --git a/src/archives/S3Storage/ProjectsToPublish.props b/src/archives/S3Storage/ProjectsToPublish.props index 5e64c907506..12539a70ef0 100644 --- a/src/archives/S3Storage/ProjectsToPublish.props +++ b/src/archives/S3Storage/ProjectsToPublish.props @@ -16,8 +16,5 @@ TargetFramework=$(LatestToolTargetFramework);RuntimeIdentifier=;PublishDir=$(S3StoragePublishRootPath)$(LatestToolTargetFramework)\any\;SelfContained=false - - TargetFramework=$(OlderToolTargetFramework);RuntimeIdentifier=;PublishDir=$(S3StoragePublishRootPath)$(OlderToolTargetFramework)\any\;SelfContained=false - diff --git a/src/archives/pkgs/Common.targets b/src/archives/pkgs/Common.targets index 2d3c58992d4..f9fc051f67b 100644 --- a/src/archives/pkgs/Common.targets +++ b/src/archives/pkgs/Common.targets @@ -1,6 +1,6 @@ - +