meta: Fix .NET Core 3.0 compatibility + Drop NS1.3 (#1382)
* Update all dependencies and deal with warning/errors * Add updated AsyncEnumerable implementation * Fix broken target * Cleanup * Remove obsolete message * typo * Update azure pipelines * Update samples to .NET Core 3.0 * Pull out test change * Install the .net core 3 SDK on the ubuntu image for the time being * Target net core 3 for the unit tests because pipelines
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Import Project="../../Discord.Net.targets" />
|
||||
<PropertyGroup>
|
||||
<AssemblyName>Discord.Net.Analyzers</AssemblyName>
|
||||
<RootNamespace>Discord.Analyzers</RootNamespace>
|
||||
<Description>A Discord.Net extension adding support for design-time analysis of the API usage.</Description>
|
||||
<TargetFramework>netstandard1.3</TargetFramework>
|
||||
<TargetFrameworks>netstandard2.0;netstandard2.1</TargetFrameworks>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.CodeAnalysis" Version="2.8.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis" Version="3.3.1" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Discord.Net.Commands\Discord.Net.Commands.csproj" />
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Immutable;
|
||||
using System.Linq;
|
||||
using Microsoft.CodeAnalysis;
|
||||
@@ -24,6 +24,8 @@ namespace Discord.Analyzers
|
||||
|
||||
public override void Initialize(AnalysisContext context)
|
||||
{
|
||||
context.EnableConcurrentExecution();
|
||||
context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.Analyze | GeneratedCodeAnalysisFlags.ReportDiagnostics);
|
||||
context.RegisterSyntaxNodeAction(AnalyzeMemberAccess, SyntaxKind.SimpleMemberAccessExpression);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,16 +4,11 @@
|
||||
<AssemblyName>Discord.Net.Commands</AssemblyName>
|
||||
<RootNamespace>Discord.Commands</RootNamespace>
|
||||
<Description>A Discord.Net extension adding support for bot commands.</Description>
|
||||
<TargetFrameworks Condition=" '$(OS)' == 'Windows_NT' ">net46;netstandard1.3;netstandard2.0</TargetFrameworks>
|
||||
<TargetFrameworks Condition=" '$(OS)' != 'Windows_NT' ">netstandard1.3;netstandard2.0</TargetFrameworks>
|
||||
<TargetFrameworks Condition=" '$(OS)' == 'Windows_NT' ">net461;netstandard2.0;netstandard2.1</TargetFrameworks>
|
||||
<TargetFrameworks Condition=" '$(OS)' != 'Windows_NT' ">netstandard2.0;netstandard2.1</TargetFrameworks>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Discord.Net.Core\Discord.Net.Core.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.0.0" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition=" '$(TargetFramework)' != 'netstandard2.0' ">
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="1.1.1" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -49,7 +49,7 @@ namespace Discord.Commands
|
||||
string username = input.Substring(0, index);
|
||||
if (ushort.TryParse(input.Substring(index + 1), out ushort discriminator))
|
||||
{
|
||||
var channelUser = await channelUsers.FirstOrDefault(x => x.DiscriminatorValue == discriminator &&
|
||||
var channelUser = await channelUsers.FirstOrDefaultAsync(x => x.DiscriminatorValue == discriminator &&
|
||||
string.Equals(username, x.Username, StringComparison.OrdinalIgnoreCase)).ConfigureAwait(false);
|
||||
AddResult(results, channelUser as T, channelUser?.Username == username ? 0.85f : 0.75f);
|
||||
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
<AssemblyName>Discord.Net.Core</AssemblyName>
|
||||
<RootNamespace>Discord</RootNamespace>
|
||||
<Description>The core components for the Discord.Net library.</Description>
|
||||
<TargetFrameworks Condition=" '$(OS)' == 'Windows_NT' ">net46;netstandard1.3;netstandard2.0</TargetFrameworks>
|
||||
<TargetFrameworks Condition=" '$(OS)' != 'Windows_NT' ">netstandard1.3;netstandard2.0</TargetFrameworks>
|
||||
<TargetFrameworks Condition=" '$(OS)' == 'Windows_NT' ">net461;netstandard2.0;netstandard2.1</TargetFrameworks>
|
||||
<TargetFrameworks Condition=" '$(OS)' != 'Windows_NT' ">netstandard2.0;netstandard2.1</TargetFrameworks>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
|
||||
<PackageReference Include="System.Collections.Immutable" Version="1.3.1" />
|
||||
<PackageReference Include="System.Interactive.Async" Version="3.2.0" />
|
||||
<PackageReference Include="System.Interactive.Async" Version="4.0.0" />
|
||||
<PackageReference Include="IDisposableAnalyzers" Version="2.1.2">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace Discord
|
||||
/// <summary> Flattens the specified pages into one <see cref="IEnumerable{T}"/> asynchronously. </summary>
|
||||
public static async Task<IEnumerable<T>> FlattenAsync<T>(this IAsyncEnumerable<IEnumerable<T>> source)
|
||||
{
|
||||
return await source.Flatten().ToArray().ConfigureAwait(false);
|
||||
return await source.Flatten().ToArrayAsync().ConfigureAwait(false);
|
||||
}
|
||||
/// <summary> Flattens the specified pages into one <see cref="IAsyncEnumerable{T}"/>. </summary>
|
||||
public static IAsyncEnumerable<T> Flatten<T>(this IAsyncEnumerable<IEnumerable<T>> source)
|
||||
|
||||
@@ -25,26 +25,28 @@ namespace Discord
|
||||
_nextPage = nextPage;
|
||||
}
|
||||
|
||||
public IAsyncEnumerator<IReadOnlyCollection<T>> GetEnumerator() => new Enumerator(this);
|
||||
public IAsyncEnumerator<IReadOnlyCollection<T>> GetAsyncEnumerator(CancellationToken cancellationToken = new CancellationToken()) => new Enumerator(this, cancellationToken);
|
||||
internal class Enumerator : IAsyncEnumerator<IReadOnlyCollection<T>>
|
||||
{
|
||||
private readonly PagedAsyncEnumerable<T> _source;
|
||||
private readonly CancellationToken _token;
|
||||
private readonly PageInfo _info;
|
||||
|
||||
public IReadOnlyCollection<T> Current { get; private set; }
|
||||
|
||||
public Enumerator(PagedAsyncEnumerable<T> source)
|
||||
public Enumerator(PagedAsyncEnumerable<T> source, CancellationToken token)
|
||||
{
|
||||
_source = source;
|
||||
_token = token;
|
||||
_info = new PageInfo(source._start, source._count, source.PageSize);
|
||||
}
|
||||
|
||||
public async Task<bool> MoveNext(CancellationToken cancelToken)
|
||||
public async ValueTask<bool> MoveNextAsync()
|
||||
{
|
||||
if (_info.Remaining == 0)
|
||||
return false;
|
||||
|
||||
var data = await _source._getPage(_info, cancelToken).ConfigureAwait(false);
|
||||
var data = await _source._getPage(_info, _token).ConfigureAwait(false);
|
||||
Current = new Page<T>(_info, data);
|
||||
|
||||
_info.Page++;
|
||||
@@ -71,7 +73,11 @@ namespace Discord
|
||||
return true;
|
||||
}
|
||||
|
||||
public void Dispose() { Current = null; }
|
||||
public ValueTask DisposeAsync()
|
||||
{
|
||||
Current = null;
|
||||
return default;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
@@ -15,7 +15,7 @@
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Discord.Net.Core\Discord.Net.Core.csproj" />
|
||||
<ProjectReference Include="..\Discord.Net.WebSocket\Discord.Net.WebSocket.csproj" />
|
||||
<PackageReference Include="JetBrains.Annotations" Version="2018.3.0" />
|
||||
<PackageReference Include="JetBrains.Annotations" Version="2019.1.3" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Import Project="../../Discord.Net.targets" />
|
||||
<PropertyGroup>
|
||||
<AssemblyName>Discord.Net.Providers.WS4Net</AssemblyName>
|
||||
<RootNamespace>Discord.Providers.WS4Net</RootNamespace>
|
||||
<Description>An optional WebSocket client provider for Discord.Net using WebSocket4Net</Description>
|
||||
<TargetFramework>netstandard1.3</TargetFramework>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Discord.Net.Core\Discord.Net.Core.csproj" />
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Discord.Net.WebSockets;
|
||||
using Discord.Net.WebSockets;
|
||||
|
||||
namespace Discord.Net.Providers.WS4Net
|
||||
{
|
||||
|
||||
@@ -4,16 +4,13 @@
|
||||
<AssemblyName>Discord.Net.Rest</AssemblyName>
|
||||
<RootNamespace>Discord.Rest</RootNamespace>
|
||||
<Description>A core Discord.Net library containing the REST client and models.</Description>
|
||||
<TargetFrameworks Condition=" '$(OS)' == 'Windows_NT' ">net46;netstandard1.3;netstandard2.0</TargetFrameworks>
|
||||
<TargetFrameworks Condition=" '$(OS)' != 'Windows_NT' ">netstandard1.3;netstandard2.0</TargetFrameworks>
|
||||
<TargetFrameworks Condition=" '$(OS)' == 'Windows_NT' ">net461;netstandard2.0;netstandard2.1</TargetFrameworks>
|
||||
<TargetFrameworks Condition=" '$(OS)' != 'Windows_NT' ">netstandard2.0;netstandard2.1</TargetFrameworks>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Discord.Net.Core\Discord.Net.Core.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.3' ">
|
||||
<PackageReference Include="System.Net.Http" Version="4.3.3" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition=" '$(TargetFramework)' == 'net46' ">
|
||||
<ItemGroup Condition=" '$(TargetFramework)' == 'net461' ">
|
||||
<Reference Include="System.Net.Http" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
||||
@@ -4,15 +4,12 @@
|
||||
<AssemblyName>Discord.Net.WebSocket</AssemblyName>
|
||||
<RootNamespace>Discord.WebSocket</RootNamespace>
|
||||
<Description>A core Discord.Net library containing the WebSocket client and models.</Description>
|
||||
<TargetFrameworks Condition=" '$(OS)' == 'Windows_NT' ">net46;netstandard1.3;netstandard2.0</TargetFrameworks>
|
||||
<TargetFrameworks Condition=" '$(OS)' != 'Windows_NT' ">netstandard1.3;netstandard2.0</TargetFrameworks>
|
||||
<TargetFrameworks Condition=" '$(OS)' == 'Windows_NT' ">net461;netstandard2.0;netstandard2.1</TargetFrameworks>
|
||||
<TargetFrameworks Condition=" '$(OS)' != 'Windows_NT' ">netstandard2.0;netstandard2.1</TargetFrameworks>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Discord.Net.Core\Discord.Net.Core.csproj" />
|
||||
<ProjectReference Include="..\Discord.Net.Rest\Discord.Net.Rest.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.3' ">
|
||||
<PackageReference Include="System.Net.WebSockets.Client" Version="4.3.2" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<AssemblyName>Discord.Net.Webhook</AssemblyName>
|
||||
<RootNamespace>Discord.Webhook</RootNamespace>
|
||||
<Description>A core Discord.Net library containing the Webhook client and models.</Description>
|
||||
<TargetFrameworks>netstandard1.3</TargetFrameworks>
|
||||
<TargetFrameworks>netstandard2.0;netstandard2.1</TargetFrameworks>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Discord.Net.Core\Discord.Net.Core.csproj" />
|
||||
|
||||
@@ -13,26 +13,26 @@
|
||||
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
||||
<iconUrl>https://github.com/RogueException/Discord.Net/raw/dev/docs/marketing/logo/PackageLogo.png</iconUrl>
|
||||
<dependencies>
|
||||
<group targetFramework="net46">
|
||||
<group targetFramework="net461">
|
||||
<dependency id="Discord.Net.Core" version="2.2.0-dev$suffix$" />
|
||||
<dependency id="Discord.Net.Rest" version="2.2.0-dev$suffix$" />
|
||||
<dependency id="Discord.Net.WebSocket" version="2.2.0-dev$suffix$" />
|
||||
<dependency id="Discord.Net.Commands" version="2.2.0-dev$suffix$" />
|
||||
<dependency id="Discord.Net.Webhook" version="2.2.0-dev$suffix$" />
|
||||
</group>
|
||||
<group targetFramework="netstandard1.3">
|
||||
<dependency id="Discord.Net.Core" version="2.2.0-dev$suffix$" />
|
||||
<dependency id="Discord.Net.Rest" version="2.2.0-dev$suffix$" />
|
||||
<dependency id="Discord.Net.WebSocket" version="2.2.0-dev$suffix$" />
|
||||
<dependency id="Discord.Net.Commands" version="2.2.0-dev$suffix$" />
|
||||
<dependency id="Discord.Net.Webhook" version="2.2.0-dev$suffix$" />
|
||||
</group>
|
||||
</group>
|
||||
<group targetFramework="netstandard2.0">
|
||||
<dependency id="Discord.Net.Core" version="2.2.0-dev$suffix$" />
|
||||
<dependency id="Discord.Net.Rest" version="2.2.0-dev$suffix$" />
|
||||
<dependency id="Discord.Net.WebSocket" version="2.2.0-dev$suffix$" />
|
||||
<dependency id="Discord.Net.Commands" version="2.2.0-dev$suffix$" />
|
||||
<dependency id="Discord.Net.Webhook" version="2.2.0-dev$suffix$" />
|
||||
</group>
|
||||
<group targetFramework="netstandard2.1">
|
||||
<dependency id="Discord.Net.Core" version="2.2.0-dev$suffix$" />
|
||||
<dependency id="Discord.Net.Rest" version="2.2.0-dev$suffix$" />
|
||||
<dependency id="Discord.Net.WebSocket" version="2.2.0-dev$suffix$" />
|
||||
<dependency id="Discord.Net.Commands" version="2.2.0-dev$suffix$" />
|
||||
<dependency id="Discord.Net.Webhook" version="2.2.0-dev$suffix$" />
|
||||
</group>
|
||||
</dependencies>
|
||||
</metadata>
|
||||
|
||||
Reference in New Issue
Block a user