Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 4 additions & 7 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,13 +155,10 @@ eng\scripts\Export-API.ps1 tables
.NET is using the [ApiCompat tool](https://github.com/dotnet/arcade/tree/master/src/Microsoft.DotNet.ApiCompat) to enforce API compatibility between versions. Builds of GA'ed libraries will fail locally and in CI if there are breaking changes.

### How it works
We use a dummy project called [ApiCompat](https://github.com/Azure/azure-sdk-for-net/tree/master/eng/ApiCompat/ApiCompat.csproj) to enforce API compatibility between the GA'ed libraries and the most recent version available on Nuget. This project includes package references to all GA'ed libraries and to Microsoft.DotNet.ApiCompat.
Each listed library package is restored from Nuget via the package references listed in the `ApiCompat.csproj` file, in combination with the version listed for that package in [eng/Packages.Data.props](https://github.com/Azure/azure-sdk-for-net/blob/master/eng/Packages.Data.props).
The `ApiCompatVerification` target defined in `ApiCompat.csproj` is referenced in the [eng/Directory.Build.Data.targets](https://github.com/Azure/azure-sdk-for-net/blob/master/eng/Directory.Build.Data.targets) which causes this target to be executed for each csproj that has the `EnableApiCompat` parameter set to true. The `EnableApiCompat` parameter defaults to the value of the `IsShippingClientLibrary` parameter, which is defined in [eng/Directory.Build.Data.props](https://github.com/Azure/azure-sdk-for-net/blob/master/eng/Directory.Build.Data.props). For libraries that do not yet have a public package defined in `ApiCompat.csproj` for comparison, set `<EnableApiCompat>false</EnableApiCompat>` in the csproj.

### Adding a new GA'ed library
To include add a new GA'ed library in the `ApiCompatVerification` target, add a package reference for the library to the `ApiCompat.csproj` file. You will also need to include the latest GA version of the library in [eng/Packages.Data.props](https://github.com/Azure/azure-sdk-for-net/blob/master/eng/Packages.Data.props).
Finally, include the `ApiCompat.csproj` in your solution so that the project will get automatically restored in Visual Studio.
We use a dummy project called [ApiCompat](https://github.com/Azure/azure-sdk-for-net/tree/master/eng/ApiCompat/ApiCompat.csproj) to enforce API compatibility between the GA'ed libraries and the most recent version available on Nuget. This project includes package references to the GA'ed library and to Microsoft.DotNet.ApiCompat.
Each library needs to provide a `ApiCompatVersion` property which is set to the last GA'ed version of the library which is used to compare APIs with the current to ensure no breaks
have been introduced.
The `ApiCompatVerification` target defined in `ApiCompat.csproj` is referenced in the [eng/Directory.Build.Data.targets](https://github.com/Azure/azure-sdk-for-net/blob/master/eng/Directory.Build.Data.targets) which causes this target to be executed for each csproj that has the `ApiCompatVersion` property set. For libraries that wish to disable the APICompat check they can remove the `ApiCompatVersion` property from their project. Our version bump automation will automatically add or increment the `ApiCompatVersion` property to the project when it detects that the version it is changing was a GA version which usually indicates that we just shipped that GA version and so it should be the new baseline for api checks.

### Releasing a new version of a GA'ed libary
Since the [eng/Packages.Data.props](https://github.com/Azure/azure-sdk-for-net/blob/master/eng/Packages.Data.props) is currently maintained manually, you will need to update the version number for your library in this file when releasing a new version.
Expand Down
44 changes: 16 additions & 28 deletions eng/ApiCompat/ApiCompat.csproj
Original file line number Diff line number Diff line change
@@ -1,41 +1,31 @@
<Project Sdk="Microsoft.NET.Sdk">
<!--This project is used to enforce API compatibility between the GA'ed libraries and the most recent version available on Nuget. The most recent
<!--
This project is used to enforce API compatibility between the GA'ed libraries and the most recent version available on Nuget. The most recent
version is restored from Nuget via the package references below. The ApiCompatVerification target, specified below, is referenced in the
eng/Directory.Build.Data.targets file which causes this target to be executed for each csproj that has the EnableApiCompat parameter set to true.
The EnableApiCompat parameter defaults to the value of the IsShippingClientLibrary parameter, which is defined in the eng/Directory.Build.Data.props file.-->
eng/Directory.Build.Data.targets file which causes this target to be executed for each csproj that has an ApiCompatVersion set.
-->
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RunApiCompatForSrc>true</RunApiCompatForSrc>
<IntermediateOutputPath>$(IntermediateOutputPath)/$(TargetPackageName)</IntermediateOutputPath>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.DotNet.ApiCompat" />
<PackageReference Include="Microsoft.DotNet.ApiCompat" Version="5.0.0-beta.19552.1" />
<PackageReference Include="$(TargetPackageName)" Version="$(TargetPackageVersion)" />
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How does this work in VS when you have multiple projects open?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This project should never really be loaded in VS but you bring up a good question that I should verify that these changes work in VS which I haven't done yet.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We had problems with building other projects when this one is not loaded in VS.

Currently it's added to all solutions.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, does this work well without requiring a manual restore?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The manual restore is not at all needed with this solution, as we restore as part of the call to the run the apicompat target. We no longer have a projectreference to this project.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK I just did some basic testing in VS (used keyvault solution for testing) and while the APICompat project is in the solution it will build but will not end up doing anything interesting when building without the extra properties, it doesn't fail but it also doesn't do anything interesting. The ApiCompat checks still work as expected for the other projects when building in VS.

So in the end things appear to work as I expect and we should just remove the ApiCompat project from the solutions. I'll make a pass over those and clean those up as part of this PR.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Last question, how's the build time considering we do additional restore per every project?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven't looked at before and after build times but I don't think it will be much of an impact because the Restore step should be a no-op after the first time. I will take a look at a core build to see if there is any notice impact.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I looked at a few random builds before and after my change of the core pipeline and the build and package are both in the 7min range so nothing really jumps out. However with that said please do let me know if anyone sees any noticeable performance issues.

</ItemGroup>

<ItemGroup>
<PackageReference Include="Azure.AI.TextAnalytics" />
<PackageReference Include="Azure.Core" />
<PackageReference Include="Azure.Data.AppConfiguration" />
<PackageReference Include="Azure.Messaging.EventHubs" />
<PackageReference Include="Azure.Messaging.EventHubs.Processor" />
<PackageReference Include="Azure.Identity" />
<PackageReference Include="Azure.Security.KeyVault.Certificates" />
<PackageReference Include="Azure.Security.KeyVault.Keys" />
<PackageReference Include="Azure.Security.KeyVault.Secrets" />
<PackageReference Include="Azure.Storage.Blobs" />
<PackageReference Include="Azure.Storage.Blobs.Batch" />
<PackageReference Include="Azure.Storage.Common" />
<PackageReference Include="Azure.Storage.Files.Shares" />
<PackageReference Include="Azure.Storage.Queues" />
<PackageReference Include="Microsoft.Extensions.Azure" />
</ItemGroup>

<Import Project="..\Packages.Data.props" />

<Target Name="ApiCompatVerification" DependsOnTargets="_ResolveResolvedMatchingContract;$(TargetsTriggeredByCompilation)">
<Target Name="_VerifyTargetPackageInfo">
<Error Condition="'$(TargetPackageName)' == ''" Text="TargetPackageName is not set!" />
<Error Condition="'$(TargetPackageVersion)' == ''" Text="TargetPackageVersion is not set!" />
<Error Condition="'$(TargetOutputPath)' == ''" Text="TargetOutputPath is not set!" />
</Target>

<Target Name="ApiCompatVerification"
DependsOnTargets="_VerifyTargetPackageInfo;
Restore;
_ResolveResolvedMatchingContract;
$(TargetsTriggeredByCompilation)" />

<Target Name="_ResolveResolvedMatchingContract" DependsOnTargets="ResolveReferences">
<PropertyGroup>
<TargetPackageDll Condition="'%(ResolvedCompileFileDefinitions.NuGetPackageId)' == '$(TargetPackageName)'" >%(ResolvedCompileFileDefinitions.Identity)</TargetPackageDll>
Expand All @@ -46,8 +36,6 @@
<_DependencyDirectories Include="$(TargetOutputPath)" />
<ReferencePath Remove="$(TargetPackageDll)" />
</ItemGroup>
<Error Condition="'@(ResolvedMatchingContract)' == ''"
Text="Unable to find dll for $(TargetPackageName). Make sure it is included in list of Package References if the ApiCompatVerification target (defined in eng/ApiCompat/ApiCompat.csproj) is intended to run for this package. If ApiCompatVerification should not be run, set the EnableApiCompat parameter to false in the csproj file." />
<Message Text="Running ApiCompatVerification against $(TargetPackageDll) using assemblies from $(TargetOutputPath)" Importance="High" />
</Target>
</Project>
7 changes: 0 additions & 7 deletions eng/Directory.Build.Data.props
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@
<EnableFxCopAnalyzers Condition="'$(IsShippingClientLibrary)' == 'true'">true</EnableFxCopAnalyzers>
<EnableStyleCopAnalyzers Condition="'$(EnableStyleCopAnalyzers)' == '' and '$(IsClientLibrary)' == 'true'">true</EnableStyleCopAnalyzers>
<GenerateAPIListing Condition="'$(IsShippingClientLibrary)' == 'true'">true</GenerateAPIListing>
<EnableApiCompat Condition="'$(EnableApiCompat)' == '' and '$(IsShippingClientLibrary)' == 'true'">true</EnableApiCompat>
</PropertyGroup>

<!-- TODO. REVIEW -->
Expand Down Expand Up @@ -143,10 +142,4 @@
<!-- Disable doc comments for test projects -->
<DocumentationFile></DocumentationFile>
</PropertyGroup>

<!-- Management Client Library Specific Overrides -->
<PropertyGroup Condition="'$(IsMgmtClientLibrary)' == 'true'">
<EnableApiCompat>false</EnableApiCompat>
</PropertyGroup>

</Project>
14 changes: 6 additions & 8 deletions eng/Directory.Build.Data.targets
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,6 @@
<PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
</ItemGroup>

<!-- Enable ApiCompat -->
<ItemGroup>
<ProjectReference Include="$(RepoRoot)/eng/ApiCompat/ApiCompat.csproj" ReferenceOutputAssembly="false" BuildReference="false" Condition="'$(EnableApiCompat)' == 'true'" />
</ItemGroup>

<PropertyGroup>
<ImportDefaultReferences Condition="'$(ImportDefaultReferences)' == ''">true</ImportDefaultReferences>
<DefaultReferenceTargets>AzSdk.reference.targets</DefaultReferenceTargets>
Expand Down Expand Up @@ -164,7 +159,7 @@
<PackageReference Include="Moq" />
</ItemGroup>
<!-- *********** END OF Management Client Library Override section ************* -->

<!-- Added layer of checks to make sure we correctly switched to project references -->
<Target Name="VerifyProjectReferencesReferences" AfterTargets="Build">
<ItemGroup>
Expand All @@ -179,10 +174,13 @@
Text="When UseProjectReferenceToAzureClients=true all Azure.* references should be Project References, but the following are not [@(ShouldBeProjectReference)]" />
</Target>

<Target Name="RunApiCompat" AfterTargets="CoreBuild" Condition="'$(EnableApiCompat)' == 'true' and '$(DesignTimeBuild)' != 'true'">
<Target Name="RunApiCompat" AfterTargets="CoreBuild" Condition="'$(ApiCompatVersion)' != '' and '$(DesignTimeBuild)' != 'true'">
<MSBuild
Projects="$(MSBuildThisFileDirectory)/ApiCompat/ApiCompat.csproj"
Properties="TargetPackageName=$(PackageId);TargetOutputPath=$(IntermediateOutputPath)"
Properties="TargetPackageName=$(PackageId);
TargetPackageVersion=$(ApiCompatVersion);
TargetOutputPath=$(IntermediateOutputPath);
BaseIntermediateOutputPath=$(BaseIntermediateOutputPath)\ApiCompat\"
Targets="ApiCompatVerification"
/>
</Target>
Expand Down
5 changes: 2 additions & 3 deletions eng/Packages.Data.props
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@
<PackageReference Update="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="2.6.1" />
<PackageReference Update="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.6.2" />
<PackageReference Update="Microsoft.CodeAnalysis" Version="2.3.0" />
<PackageReference Update="Microsoft.DotNet.ApiCompat" Version="5.0.0-beta.19552.1" />
<PackageReference Update="Microsoft.IdentityModel.Clients.ActiveDirectory" Version="4.5.1" />
<PackageReference Update="Microsoft.Identity.Client" Version="4.10.0" />
<PackageReference Update="Microsoft.Identity.Client.Extensions.Msal" Version="2.8.0-preview" />
Expand Down Expand Up @@ -129,7 +128,7 @@
<PackageReference Update="Azure.ClientSdk.Analyzers" Version="0.1.1-dev.20200602.2" />
<PackageReference Update="Microsoft.Bcl.AsyncInterfaces" Version="1.0.0" />
<PackageReference Update="Microsoft.DotNet.GenAPI" Version="5.0.0-beta.19552.1" />

<!-- Azure SDK packages -->
<PackageReference Update="Azure.Storage.Blobs" Version="12.0.0" />
</ItemGroup>
Expand All @@ -151,7 +150,7 @@
<!-- Extension packages -->
<PackageReference Update="Microsoft.AspNetCore.Server.Kestrel" Version="2.2.0" />
<PackageReference Update="Microsoft.AspNetCore.Server.WebListener" Version="1.0.2" />

<PackageReference Update="Microsoft.Extensions.Azure" Version="1.0.0" />
<PackageReference Update="Microsoft.Extensions.Configuration" Version="2.1.0" />
<PackageReference Update="Microsoft.Extensions.Configuration.Binder" Version="2.1.0" />
Expand Down
88 changes: 45 additions & 43 deletions eng/scripts/Update-PkgVersion.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -35,54 +35,56 @@ Update-PkgVersion.ps1 -ServiceDirectory cognitiveservices -PackageName Microsoft

[CmdletBinding()]
Param (
[ValidateNotNullOrEmpty()]
[string] $RepoRoot = "${PSScriptRoot}/../..",
[Parameter(Mandatory=$True)]
[string] $ServiceDirectory,
[Parameter(Mandatory=$True)]
[string] $PackageName,
[string] $PackageDirName,
[string] $NewVersionString
[ValidateNotNullOrEmpty()]
[string] $RepoRoot = "${PSScriptRoot}/../..",
[Parameter(Mandatory=$True)]
[string] $ServiceDirectory,
[Parameter(Mandatory=$True)]
[string] $PackageName,
[string] $PackageDirName,
[string] $NewVersionString
)

. ${PSScriptRoot}\..\common\scripts\SemVer.ps1
# Obtain Current Package Version
if ([System.String]::IsNullOrEmpty($PackageDirName)) { $PackageDirName = $PackageName }
$changelogPath = Join-Path $RepoRoot "sdk" $ServiceDirectory $PackageDirName "CHANGELOG.md"
$csprojPath = Join-Path $RepoRoot "sdk" $ServiceDirectory $PackageDirName "src" "${PackageName}.csproj"
$csproj = new-object xml
$csproj.PreserveWhitespace = $true
$csproj.Load($csprojPath)
$propertyGroup = ($csproj | Select-Xml "Project/PropertyGroup/Version").Node.ParentNode
$packageVersion = $propertyGroup.Version

$packageSemVer = [AzureEngSemanticVersion]::new($packageVersion)
$packageOldSemVer = [AzureEngSemanticVersion]::new($packageVersion)
Write-Host "Current Version: ${PackageVersion}"

if ([System.String]::IsNullOrEmpty($NewVersionString)) {
$packageSemVer.IncrementAndSetToPrerelease()

& "${PSScriptRoot}/../common/Update-Change-Log.ps1" -Version $packageSemVer.ToString() -ChangeLogPath $changeLogPath -Unreleased $true
}
else {
$packageSemVer = [AzureEngSemanticVersion]::new($NewVersionString)

# Updated Version in csproj and changelog using computed or set NewVersionString
function Update-Version([AzureEngSemanticVersion]$SemVer, $Unreleased=$True, $ReplaceVersion=$False)
{
Write-Verbose "New Version: ${NewPackageVersion}"
if ($SemVer.HasValidPrereleaseLabel() -ne $true){
Write-Error "Invalid prerelease label"
exit 1
}

${PackageVersion}.Node.InnerText = $SemVer.ToString()
$CsprojData.Save($PackageCsprojPath)

# Increment Version in ChangeLog file
& "${PSScriptRoot}/../common/Update-Change-Log.ps1" -Version $SemVer.ToString() -ChangeLogPath $ChangelogPath -Unreleased $Unreleased -ReplaceVersion $ReplaceVersion
& "${PSScriptRoot}/../common/Update-Change-Log.ps1" -Version $packageSemVer.ToString() -ChangeLogPath $changeLogPath -Unreleased $false -ReplaceVersion $true
}

# Obtain Current Package Version
if ([System.String]::IsNullOrEmpty($PackageDirName)) {$PackageDirName = $PackageName}
$CsprojData = New-Object -TypeName XML
$CsprojData.PreserveWhitespace = $True
$PackageCsprojPath = Join-Path $RepoRoot "sdk" $ServiceDirectory $PackageDirName "src" "${PackageName}.csproj"
$ChangelogPath = Join-Path $RepoRoot "sdk" $ServiceDirectory $PackageDirName "CHANGELOG.md"
$CsprojData.Load($PackageCsprojPath)
$PackageVersion = Select-XML -Xml $CsprojData -XPath '/Project/PropertyGroup/Version'

if ([System.String]::IsNullOrEmpty($NewVersionString))
{
$SemVer = [AzureEngSemanticVersion]::new($PackageVersion)
Write-Verbose "Current Version: ${PackageVersion}"

$SemVer.IncrementAndSetToPrerelease()
Update-Version -SemVer $SemVer
Write-Host "New Version: ${packageSemVer}"
if ($packageSemVer.HasValidPrereleaseLabel() -ne $true){
Write-Error "Invalid prerelease label"
exit 1
}
else
{
# Use specified VersionString
$SemVer = [AzureEngSemanticVersion]::new($NewVersionString)
Update-Version -SemVer $SemVer -Unreleased $False -ReplaceVersion $True

if (!$packageOldSemVer.IsPrerelease) {
if (!$propertyGroup.ApiCompatVersion) {
$propertyGroup.InsertAfter($csproj.CreateElement("ApiCompatVersion"), $propertyGroup["Version"]) | Out-Null
$whitespace = $propertyGroup["Version"].PreviousSibling
$propertyGroup.InsertAfter($whitespace.Clone(), $propertyGroup["Version"]) | Out-Null
}
$propertyGroup.ApiCompatVersion = $packageOldSemVer.ToString()
}

$propertyGroup.Version = $packageSemVer.ToString()
$csproj.Save($csprojPath)
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Azure.Data.AppConfiguration
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Azure.Identity", "..\..\identity\Azure.Identity\src\Azure.Identity.csproj", "{042736B0-D082-4366-BD2B-02D49FEC6073}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ApiCompat", "..\..\..\eng\ApiCompat\ApiCompat.csproj", "{CB965318-37F5-4FD9-ACE4-08634BAC833D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Azure.Core.TestFramework", "..\..\core\Azure.Core.TestFramework\src\Azure.Core.TestFramework.csproj", "{1FC8A3EA-3C0D-4DDF-B710-A7091F2CEBB1}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Azure.Core.TestFramework", "..\..\core\Azure.Core.TestFramework\src\Azure.Core.TestFramework.csproj", "{1FC8A3EA-3C0D-4DDF-B710-A7091F2CEBB1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand Down Expand Up @@ -43,10 +41,6 @@ Global
{042736B0-D082-4366-BD2B-02D49FEC6073}.Debug|Any CPU.Build.0 = Debug|Any CPU
{042736B0-D082-4366-BD2B-02D49FEC6073}.Release|Any CPU.ActiveCfg = Release|Any CPU
{042736B0-D082-4366-BD2B-02D49FEC6073}.Release|Any CPU.Build.0 = Release|Any CPU
{CB965318-37F5-4FD9-ACE4-08634BAC833D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CB965318-37F5-4FD9-ACE4-08634BAC833D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CB965318-37F5-4FD9-ACE4-08634BAC833D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CB965318-37F5-4FD9-ACE4-08634BAC833D}.Release|Any CPU.Build.0 = Release|Any CPU
{1FC8A3EA-3C0D-4DDF-B710-A7091F2CEBB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1FC8A3EA-3C0D-4DDF-B710-A7091F2CEBB1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1FC8A3EA-3C0D-4DDF-B710-A7091F2CEBB1}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand Down
3 changes: 3 additions & 0 deletions sdk/appconfiguration/Azure.Data.AppConfiguration/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Release History

## 1.1.0-preview.1 (Unreleased)


## 1.0.0

### Breaking changes
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<Description>This is the Microsoft Azure Application Configuration Service client library</Description>
<AssemblyTitle>Microsoft Azure.Data.AppConfiguration client library</AssemblyTitle>
<Version>1.0.0</Version>
<Version>1.1.0-preview.1</Version>
<ApiCompatVersion>1.0.0</ApiCompatVersion>
<PackageTags>Microsoft Azure Application Configuration;$(PackageCommonTags)</PackageTags>
<TargetFrameworks>$(RequiredTargetFrameworks)</TargetFrameworks>
<NoWarn>$(NoWarn);3021</NoWarn>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -834,7 +834,8 @@ private void AssertContent(byte[] expected, MockRequest request, bool compareAsS
private void AssertRequestCommon(MockRequest request)
{
Assert.True(request.Headers.TryGetValue("User-Agent", out var value));
StringAssert.Contains("azsdk-net-Data.AppConfiguration/1.0.0", value);
Version version = typeof(ConfigurationClient).Assembly.GetName().Version;
StringAssert.Contains($"azsdk-net-Data.AppConfiguration/{version.Major}.{version.Minor}.{version.Build}", value);
}

private static ConfigurationSetting CreateSetting(int i)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,14 @@
<PackageTags>Microsoft Azure Client Pipeline</PackageTags>
<Nullable>enable</Nullable>
<TargetFrameworks>$(RequiredTargetFrameworks)</TargetFrameworks>
<EnableApiCompat>false</EnableApiCompat>
<NoWarn>$(NoWarn);AZC0001;AZC0012</NoWarn>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Azure.Core" />
<PackageReference Include="System.Text.Json" />
</ItemGroup>

<ItemGroup>
<Compile Include="$(AzureCoreSharedSources)Argument.cs" />
<Compile Include="$(AzureCoreSharedSources)HashCodeBuilder.cs" />
Expand Down
Loading