Smdn.Net.EchonetLite.RouteB.Primitives version 2.2.0
·
13 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2025-12-23 update assembly version
- 2025-12-23 add target framework net10.0
- 2025-11-26 fix warning IDE0340
- 2025-07-08 remove redundant properties that have the same as default values
- 2025-07-06 suppress warnings
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Primitives-net10.0.apilist.cs b/doc/api-list/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Primitives-net10.0.apilist.cs
new file mode 100644
index 0000000..27f28b6
--- /dev/null
+++ b/doc/api-list/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Primitives-net10.0.apilist.cs
@@ -0,0 +1,85 @@
+// Smdn.Net.EchonetLite.RouteB.Primitives.dll (Smdn.Net.EchonetLite.RouteB.Primitives-2.2.0)
+// Name: Smdn.Net.EchonetLite.RouteB.Primitives
+// AssemblyVersion: 2.2.0.0
+// InformationalVersion: 2.2.0+eceaa1ab8c33ec84da009bb0a40f14181fd5e97b
+// TargetFramework: .NETCoreApp,Version=v10.0
+// Configuration: Release
+// Metadata: IsTrimmable=True
+// Metadata: RepositoryUrl=https://github.com/smdn/Smdn.Net.EchonetLite
+// Metadata: RepositoryBranch=main
+// Metadata: RepositoryCommit=eceaa1ab8c33ec84da009bb0a40f14181fd5e97b
+// Referenced assemblies:
+// Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
+// Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
+// Smdn.Net.EchonetLite.Primitives, Version=2.0.0.0, Culture=neutral
+// System.ComponentModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Memory, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+// System.Net.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+#nullable enable annotations
+
+using System;
+using System.Buffers;
+using System.Net;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Logging;
+using Smdn.Net.EchonetLite.RouteB.Credentials;
+using Smdn.Net.EchonetLite.RouteB.Transport;
+using Smdn.Net.EchonetLite.Transport;
+
+namespace Smdn.Net.EchonetLite.RouteB.Credentials {
+ public interface IRouteBCredential : IDisposable {
+ void WriteIdTo(IBufferWriter<byte> buffer);
+ void WritePasswordTo(IBufferWriter<byte> buffer);
+ }
+
+ public interface IRouteBCredentialIdentity {
+ }
+
+ public interface IRouteBCredentialProvider {
+ IRouteBCredential GetCredential(IRouteBCredentialIdentity identity);
+ }
+
+ public static class RouteBCredentials {
+ public const int AuthenticationIdLength = 32;
+ public const int PasswordLength = 12;
+ }
+}
+
+namespace Smdn.Net.EchonetLite.RouteB.DependencyInjection {
+ public interface IRouteBServiceBuilder<TServiceKey> {
+ Func<TServiceKey, string?>? OptionsNameSelector { get; }
+ TServiceKey ServiceKey { get; }
+ IServiceCollection Services { get; }
+ }
+
+ public static class IRouteBServiceBuilderExtensions {
+ public static string? GetOptionsName<TServiceKey>(this IRouteBServiceBuilder<TServiceKey> builder) {}
+ }
+}
+
+namespace Smdn.Net.EchonetLite.RouteB.Transport {
+ [Obsolete("Use IRouteBServiceBuilder instead.")]
+ public interface IRouteBEchonetLiteHandlerBuilder {
+ IServiceCollection Services { get; }
+ }
+
+ public interface IRouteBEchonetLiteHandlerFactory {
+ ValueTask<RouteBEchonetLiteHandler> CreateAsync(CancellationToken cancellationToken);
+ }
+
+ public abstract class RouteBEchonetLiteHandler : EchonetLiteHandler {
+ protected RouteBEchonetLiteHandler(ILogger? logger, IServiceProvider? serviceProvider) {}
+
+ public abstract IPAddress? PeerAddress { get; }
+
+ public ValueTask ConnectAsync(IRouteBCredential credential, CancellationToken cancellationToken = default) {}
+ protected abstract ValueTask ConnectAsyncCore(IRouteBCredential credential, CancellationToken cancellationToken);
+ public ValueTask DisconnectAsync(CancellationToken cancellationToken = default) {}
+ protected abstract ValueTask DisconnectAsyncCore(CancellationToken cancellationToken);
+ }
+}
+// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.7.1.0.
+// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.5.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
diff --git a/doc/api-list/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Primitives-net8.0.apilist.cs b/doc/api-list/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Primitives-net8.0.apilist.cs
index aeefe55..a69e48e 100644
--- a/doc/api-list/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Primitives-net8.0.apilist.cs
+++ b/doc/api-list/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Primitives-net8.0.apilist.cs
@@ -1,81 +1,85 @@
-// Smdn.Net.EchonetLite.RouteB.Primitives.dll (Smdn.Net.EchonetLite.RouteB.Primitives-2.1.0)
+// Smdn.Net.EchonetLite.RouteB.Primitives.dll (Smdn.Net.EchonetLite.RouteB.Primitives-2.2.0)
// Name: Smdn.Net.EchonetLite.RouteB.Primitives
-// AssemblyVersion: 2.1.0.0
-// InformationalVersion: 2.1.0+8350a1992a3cc375c86febf128c7a1ab32401211
+// AssemblyVersion: 2.2.0.0
+// InformationalVersion: 2.2.0+eceaa1ab8c33ec84da009bb0a40f14181fd5e97b
// TargetFramework: .NETCoreApp,Version=v8.0
// Configuration: Release
+// Metadata: IsTrimmable=True
+// Metadata: RepositoryUrl=https://github.com/smdn/Smdn.Net.EchonetLite
+// Metadata: RepositoryBranch=main
+// Metadata: RepositoryCommit=eceaa1ab8c33ec84da009bb0a40f14181fd5e97b
// Referenced assemblies:
// Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Smdn.Net.EchonetLite.Primitives, Version=2.0.0.0, Culture=neutral
// System.ComponentModel, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Memory, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Net.Primitives, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
#nullable enable annotations
using System;
using System.Buffers;
using System.Net;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Smdn.Net.EchonetLite.RouteB.Credentials;
using Smdn.Net.EchonetLite.RouteB.Transport;
using Smdn.Net.EchonetLite.Transport;
namespace Smdn.Net.EchonetLite.RouteB.Credentials {
public interface IRouteBCredential : IDisposable {
void WriteIdTo(IBufferWriter<byte> buffer);
void WritePasswordTo(IBufferWriter<byte> buffer);
}
public interface IRouteBCredentialIdentity {
}
public interface IRouteBCredentialProvider {
IRouteBCredential GetCredential(IRouteBCredentialIdentity identity);
}
public static class RouteBCredentials {
public const int AuthenticationIdLength = 32;
public const int PasswordLength = 12;
}
}
namespace Smdn.Net.EchonetLite.RouteB.DependencyInjection {
public interface IRouteBServiceBuilder<TServiceKey> {
Func<TServiceKey, string?>? OptionsNameSelector { get; }
TServiceKey ServiceKey { get; }
IServiceCollection Services { get; }
}
public static class IRouteBServiceBuilderExtensions {
public static string? GetOptionsName<TServiceKey>(this IRouteBServiceBuilder<TServiceKey> builder) {}
}
}
namespace Smdn.Net.EchonetLite.RouteB.Transport {
[Obsolete("Use IRouteBServiceBuilder instead.")]
public interface IRouteBEchonetLiteHandlerBuilder {
IServiceCollection Services { get; }
}
public interface IRouteBEchonetLiteHandlerFactory {
ValueTask<RouteBEchonetLiteHandler> CreateAsync(CancellationToken cancellationToken);
}
public abstract class RouteBEchonetLiteHandler : EchonetLiteHandler {
protected RouteBEchonetLiteHandler(ILogger? logger, IServiceProvider? serviceProvider) {}
public abstract IPAddress? PeerAddress { get; }
public ValueTask ConnectAsync(IRouteBCredential credential, CancellationToken cancellationToken = default) {}
protected abstract ValueTask ConnectAsyncCore(IRouteBCredential credential, CancellationToken cancellationToken);
public ValueTask DisconnectAsync(CancellationToken cancellationToken = default) {}
protected abstract ValueTask DisconnectAsyncCore(CancellationToken cancellationToken);
}
}
-// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.6.0.0.
-// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.4.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
+// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.7.1.0.
+// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.5.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
diff --git a/doc/api-list/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Primitives-netstandard2.1.apilist.cs b/doc/api-list/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Primitives-netstandard2.1.apilist.cs
index 1f8619f..aab2873 100644
--- a/doc/api-list/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Primitives-netstandard2.1.apilist.cs
+++ b/doc/api-list/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Primitives-netstandard2.1.apilist.cs
@@ -1,78 +1,81 @@
-// Smdn.Net.EchonetLite.RouteB.Primitives.dll (Smdn.Net.EchonetLite.RouteB.Primitives-2.1.0)
+// Smdn.Net.EchonetLite.RouteB.Primitives.dll (Smdn.Net.EchonetLite.RouteB.Primitives-2.2.0)
// Name: Smdn.Net.EchonetLite.RouteB.Primitives
-// AssemblyVersion: 2.1.0.0
-// InformationalVersion: 2.1.0+8350a1992a3cc375c86febf128c7a1ab32401211
+// AssemblyVersion: 2.2.0.0
+// InformationalVersion: 2.2.0+eceaa1ab8c33ec84da009bb0a40f14181fd5e97b
// TargetFramework: .NETStandard,Version=v2.1
// Configuration: Release
+// Metadata: RepositoryUrl=https://github.com/smdn/Smdn.Net.EchonetLite
+// Metadata: RepositoryBranch=main
+// Metadata: RepositoryCommit=eceaa1ab8c33ec84da009bb0a40f14181fd5e97b
// Referenced assemblies:
// Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Smdn.Net.EchonetLite.Primitives, Version=2.0.0.0, Culture=neutral
// netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
#nullable enable annotations
using System;
using System.Buffers;
using System.Net;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Smdn.Net.EchonetLite.RouteB.Credentials;
using Smdn.Net.EchonetLite.RouteB.Transport;
using Smdn.Net.EchonetLite.Transport;
namespace Smdn.Net.EchonetLite.RouteB.Credentials {
public interface IRouteBCredential : IDisposable {
void WriteIdTo(IBufferWriter<byte> buffer);
void WritePasswordTo(IBufferWriter<byte> buffer);
}
public interface IRouteBCredentialIdentity {
}
public interface IRouteBCredentialProvider {
IRouteBCredential GetCredential(IRouteBCredentialIdentity identity);
}
public static class RouteBCredentials {
public const int AuthenticationIdLength = 32;
public const int PasswordLength = 12;
}
}
namespace Smdn.Net.EchonetLite.RouteB.DependencyInjection {
public interface IRouteBServiceBuilder<TServiceKey> {
Func<TServiceKey, string?>? OptionsNameSelector { get; }
TServiceKey ServiceKey { get; }
IServiceCollection Services { get; }
}
public static class IRouteBServiceBuilderExtensions {
public static string? GetOptionsName<TServiceKey>(this IRouteBServiceBuilder<TServiceKey> builder) {}
}
}
namespace Smdn.Net.EchonetLite.RouteB.Transport {
[Obsolete("Use IRouteBServiceBuilder instead.")]
public interface IRouteBEchonetLiteHandlerBuilder {
IServiceCollection Services { get; }
}
public interface IRouteBEchonetLiteHandlerFactory {
ValueTask<RouteBEchonetLiteHandler> CreateAsync(CancellationToken cancellationToken);
}
public abstract class RouteBEchonetLiteHandler : EchonetLiteHandler {
protected RouteBEchonetLiteHandler(ILogger? logger, IServiceProvider? serviceProvider) {}
public abstract IPAddress? PeerAddress { get; }
public ValueTask ConnectAsync(IRouteBCredential credential, CancellationToken cancellationToken = default) {}
protected abstract ValueTask ConnectAsyncCore(IRouteBCredential credential, CancellationToken cancellationToken);
public ValueTask DisconnectAsync(CancellationToken cancellationToken = default) {}
protected abstract ValueTask DisconnectAsyncCore(CancellationToken cancellationToken);
}
}
-// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.6.0.0.
-// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.4.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
+// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.7.1.0.
+// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.5.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)Full changes
Full changes in this release:
diff --git a/src/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Credentials/IRouteBCredentialIdentity.cs b/src/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Credentials/IRouteBCredentialIdentity.cs
index 22acb97..1c8ef87 100644
--- a/src/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Credentials/IRouteBCredentialIdentity.cs
+++ b/src/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Credentials/IRouteBCredentialIdentity.cs
@@ -5,4 +5,5 @@ namespace Smdn.Net.EchonetLite.RouteB.Credentials;
/// <summary>
/// Provides a mechanism for abstracting identities corresponding to credentials used for the route B authentication.
/// </summary>
+#pragma warning disable CA1040
public interface IRouteBCredentialIdentity { }
diff --git a/src/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Primitives.csproj b/src/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Primitives.csproj
index 8116f89..6ddd4f6 100644
--- a/src/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Primitives.csproj
+++ b/src/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Primitives.csproj
@@ -5,12 +5,10 @@ SPDX-License-Identifier: MIT
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFrameworks>netstandard2.1;net8.0</TargetFrameworks>
- <VersionPrefix>2.1.0</VersionPrefix>
+ <TargetFrameworks>netstandard2.1;net8.0;net10.0</TargetFrameworks>
+ <VersionPrefix>2.2.0</VersionPrefix>
<VersionSuffix></VersionSuffix>
<PackageValidationBaselineVersion>2.0.0</PackageValidationBaselineVersion>
- <Nullable>enable</Nullable>
- <RootNamespace/> <!-- empty the root namespace so that the namespace is determined only by the directory name, for code style rule IDE0130 -->
<NoWarn>CS1591;$(NoWarn)</NoWarn> <!-- CS1591: Missing XML comment for publicly visible type or member 'Type_or_Member' -->
</PropertyGroup>
diff --git a/src/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Transport/IRouteBEchonetLiteHandlerBuilder.cs b/src/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Transport/IRouteBEchonetLiteHandlerBuilder.cs
index 2eb4e8b..3b528ca 100644
--- a/src/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Transport/IRouteBEchonetLiteHandlerBuilder.cs
+++ b/src/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Transport/IRouteBEchonetLiteHandlerBuilder.cs
@@ -11,7 +11,7 @@ namespace Smdn.Net.EchonetLite.RouteB.Transport;
/// <summary>
/// An interface for configuring <see cref="RouteBEchonetLiteHandler"/> providers.
/// </summary>
-[Obsolete($"Use {nameof(IRouteBServiceBuilder<object>)} instead.")] // TODO: use nameof with open generic type
+[Obsolete($"Use {nameof(IRouteBServiceBuilder<>)} instead.")]
public interface IRouteBEchonetLiteHandlerBuilder {
/// <summary>
/// Gets the <see cref="IServiceCollection"/> where <see cref="RouteBEchonetLiteHandler"/> services are configured.Notes
What's Changed
Dependencies
- Bump smdn/Smdn.Fundamentals/.github/workflows/test.yml@workflows/test/v1.4.1 from 1.4.1 to 1.4.2 by @dependabot[bot] in #18
- Bump smdn/Smdn.Fundamentals/.github/workflows/generate-release-target.yml@workflows/release-target/v1.10.2 from 1.10.2 to 1.10.3 by @dependabot[bot] in #19
- Bump smdn/Smdn.Fundamentals/.github/workflows/publish-release-target.yml@workflows/release-target/v1.10.2 from 1.10.2 to 1.10.3 by @dependabot[bot] in #20
- Bump actions/checkout from 4.2.2 to 5.0.0 by @dependabot[bot] in #22
- Bump github/codeql-action from 3 to 4 by @dependabot[bot] in #23
- Bump actions/checkout from 5.0.0 to 5.0.1 in the github-actions-workflows group by @dependabot[bot] in #24
New Contributors
- @dependabot[bot] made their first contribution in #18
Full Changelog: releases/Smdn.Net.EchonetLite.RouteB.Primitives-2.1.0...releases/Smdn.Net.EchonetLite.RouteB.Primitives-2.2.0