Skip to content

Releases: nogic1008/WritableOptions.Net

v3.1.0

29 Apr 09:30
ef9f0f6
Compare
Choose a tag to compare

Full Changelog

Breaking Change 💥

  • This library now uses .NET 8 libraries on netstandard2.0
    • It warns on .NET Core 3.1 or lower. (see dotnet/runtime#94327)
    • To suppress warning, you can add SuppressTfmSupportBuildWarnings on your csproj file.

Warning

This library does not been tested on .NET Core 3.1 or lower environments.
Be sure to integration test yourself.

<SuppressTfmSupportBuildWarnings>true</SuppressTfmSupportBuildWarnings>

Features ✨

  • Support .NET 8 (#200)

Development 🚀

  • ci(devcontainer): use base container (#195)
  • ci(gh-action): use repository variables (#212)
  • chore: migrate to dotnet-coverage (#264)
  • test: migrate to MSTest SDK (#294, #296)
  • ci(dependabot): add devcontainer config (#301)

Dependencies Update 🤖

powered by dependabot

Kind Package old new PR(s)
NuGet System.Text.Json 7.0.1 8.0.3 #191, #228, #288
NuGet Microsoft.Extensions.Hosting 7.0.0 8.0.0 #189, #288
NuGet Microsoft.Extensions.Options 7.0.0 8.0.2 #190, #288
GitHub Actions actions/cache 3.2.3 3.3.1 #186, #188, #193, #201, #202
GitHub Actions actions/checkout 3.3.0 4.1.4 #204, #206, #207, #218, #232, #234, #239, #243, #287, #298, #300
GitHub Actions actions/setup-dotnet 3.0.3 4.0.0 #214, #215, #255
GitHub Actions actions/upload-artifact 3.1.2 4.3.3 #235, #258, #274, #279, #299
GitHub Actions codecov/codecov-action 3.1.1 4.3.0 #205, #208, #210, #275, #278, #286, #289, #291, #292
NuGet(dev) BenchmarkDotNet 0.13.4 0.13.12 #192, #223, #225, #236, #240, #245, #260, #268
NuGet(dev) FluentAssertions 6.9.0 6.12.0 #187, #209, #231
NuGet(dev) Moq 4.18.4 4.20.70 #227, #229, #262, #265
NuGet(dev) Microsoft.SourceLink.GitHub 1.1.1 8.0.0 #266

v3.0.1

26 Jan 08:32
b0cfcd5
Compare
Choose a tag to compare

There are no new features or bug fixes in v3.0.1, but it does include internal processing improvements.
11~17% faster than previous version!

Full Changelog

Refactoring:broom:

  • perf: use JsonElement struct instead of JsonDocument class (#182)
  • perf: use ArrayPool to cache utf8 byte data (#182)
  • perf: use single FileStream on read/write JSON (#182)
  • perf: use Encoding.Preamble to reduce allocation (#183)

Development:rocket:

  • chore(deps): upgrade benchmark baseline version to v3.0.0 (#179)

Dependencies Update:robot:

powered by dependabot🤖

Kind Package old new PR
NuGet(dev) BenchmarkDotNet 0.13.3 0.13.4 #181
NuGet(dev) FluentAssertions 6.8.0 6.9.0 #180

v3.0.0

11 Jan 04:06
228ce9f
Compare
Choose a tag to compare

Full Changelog

Breaking Change:warning:

  • IServiceCollection.ConfigureWritable() and IServiceCollection.ConfigureWritableWithExplicitPath() now returns IServiceCollection

Bug Fixes:bug:

  • create new JSON file if not exists (#159, closes #157)

New Features:sparkles:

Refactoring

  • perf: extract JsonWriterOptions into a variable (#127), thanks @adamradocz

Documentation:memo:

  • add documentation for v3 (#177, closes #100)

Development:wrench:

  • Change benchmark to compare with v2.0.0 (#117)
  • style(lint): fix format on Example projects (#119)
  • ci(devcontainer): update devcontainer to v0.238.1 (#122)
  • ci(gh-actions): use reusable action (#155)
  • Drop .NET Core 3.1 SDK from develop environment (#163)

Dependencies Update:robot:

powered by dependabot🤖

Kind Package old new PR
NuGet System.Text.Json 6.0.4 7.0.1 #121,#135,#160
NuGet(dev) BenchmarkDotNet 0.13.1 0.13.3 #133,#171
NuGet(dev) coverlet.collector 3.1.2 3.2.0 #149
NuGet(dev) FluentAssertions 6.7.0 6.8.0 #147
NuGet(dev) Microsoft.NET.Test.Sdk 17.2.0 17.4.1 #129,#134,#137,#154,#161
NuGet(dev) Microsoft.NETFramework.ReferenceAssemblies 1.0.2 1.0.3 #131
NuGet(dev) Moq 4.18.1 4.18.4 #125,#156,#173
NuGet(dev) xunit 2.4.1 2.4.2 #124
CI/CD actions/cache v3.0.2 v3.2.3 #116,#120,#123,#128,#130,#132,#140,#141,#144,#162,#168,#172,#176
CI/CD actions/checkout v3.0.2 v3.3.0 #143,#158,#174
CI/CD actions/setup-dotnet v2.1.0 v3.0.3 #138,#139,#142,#145,#148
CI/CD actions/upload-artifact v3.1.0 v3.1.2 #146,#175
CI/CD codecov/codecov-action v3.1.0 v3.1.1 #136

v3.0.0-beta.3

26 Dec 05:45
3bb4176
Compare
Choose a tag to compare
v3.0.0-beta.3 Pre-release
Pre-release

Full Changelog

Bug Fixes:bug:

  • support Blazor Server App (#169, closes #64)

Dependencies Update:robot:

powered by dependabot🤖

Kind Package old new PR
CI/CD actions/cache v3.2.0 v3.2.1 #168

v3.0.0-beta.2

24 Dec 02:16
354aeef
Compare
Choose a tag to compare
v3.0.0-beta.2 Pre-release
Pre-release

Full Changelog

New Features:sparkles:

v3.0.0-beta.1

22 Dec 04:17
911411a
Compare
Choose a tag to compare
v3.0.0-beta.1 Pre-release
Pre-release

Full Changelog

Breaking Change:warning:

  • IServiceCollection.ConfigureWritable() and IServiceCollection.ConfigureWritableWithExplicitPath() now returns IServiceCollection

Bug Fixes:bug:

  • create new JSON file if not exists (#159, closes #157)

New Features:sparkles:

  • Support .NET 7 (#88)

Refactoring

  • perf: extract JsonWriterOptions into a variable (#127), thanks @adamradocz

Development:wrench:

  • Change benchmark to compare with v2.0.0 (#117)
  • style(lint): fix format on Example projects (#119)
  • ci(devcontainer): update devcontainer to v0.238.1 (#122)
  • ci(gh-actions): use reusable action (#155)
  • Drop .NET Core 3.1 SDK from develop environment (#163)

Dependencies Update:robot:

powered by dependabot🤖

Kind Package old new PR
NuGet System.Text.Json 6.0.4 7.0.1 #121,#135,#160
NuGet(dev) BenchmarkDotNet 0.13.1 0.13.2 #133
NuGet(dev) coverlet.collector 3.1.2 3.2.0 #149
NuGet(dev) FluentAssertions 6.7.0 6.8.0 #147
NuGet(dev) Microsoft.NET.Test.Sdk 17.2.0 17.4.1 #129,#134,#137,#154,#161
NuGet(dev) Microsoft.NETFramework.ReferenceAssemblies 1.0.2 1.0.3 #131
NuGet(dev) Moq 4.18.1 4.18.3 #125,#156
NuGet(dev) xunit 2.4.1 2.4.2 #124
CI/CD actions/cache v3.0.2 v3.2.0 #116,#120,#123,#128,#130,#132,#140,#141,#144,#162
CI/CD actions/checkout v3.0.2 v3.2.0 #143,#158
CI/CD actions/setup-dotnet v2.1.0 v3.0.3 #138,#139,#142,#145,#148
CI/CD actions/upload-artifact v3.1.0 v3.1.1 #146
CI/CD codecov/codecov-action v3.1.0 v3.1.1 #136

v2.0.0

31 May 05:45
886390b
Compare
Choose a tag to compare

Full Changelog

Breaking Change:warning:

  • IWritableOptions<TOptions> implements IOptionsMonitor<TOptions>.
  • JsonWritableOptions<TOptions> has CurrentValue and OnChange(Action<TOptions,String>) members.
  • JsonWritableOptions<TOptions> constructor throws ArgumentNullException if argument is null.

New Features:sparkles:

  • Add IOptionsMonitor<TOptions> implements (#99, @anpin)
    • Useful for binding properties like Xamarin and MAUI
  • Add ConfigureWritableWithExplicitPath extension method (#99, @anpin)
    • Useful for load application settings from other directories such as Xamarin

Code Refactoring:broom:

  • style: move using directive to top (#68)
  • style: use discard(_) on expression value (#70)
  • use LoggerMessage pattern on sample project (#78)
  • ci: add file option to reduce coverage size (#90)
  • perf: store UTF-8 encoded property name instead of string (#104)

Documentation:memo:

Development:wrench:

  • Add <NoWarn> option on test projects (#72)
  • Add .NET Framework 4.8 unit test (#98)
  • Add .NET Framework 4.8 on benchmark (#92)

CI/CD:rocket:

Dependencies Update:robot:

powered by dependabot🤖

Kind Package old new PR
Prod Microsoft.Extensions.Hosting 6.0.0 6.0.1 #66
Prod System.Text.Json 6.0.1 6.0.4 #67,#94,#105
CI/CD actions/cache v2.1.7 v3.0.2 #85,#86,#93
CI/CD actions/checkout v2.3.4 v3.0.0 #82,#96,#97
CI/CD actions/setup-dotnet v1.9.0 v2.1.0 #79,#80,#103
CI/CD actions/upload-artifact v2.3.1 v3.1.0 #83,#114
CI/CD codecov/codecov-action v2.1.0 v3.1.0 #89,#98
Dev coverlet.collector 3.1.0 3.1.2 #62,#65
Dev FluentAssertions 6.2.0 6.7.0 #57,#61,#74,#87,#113
Dev Microsoft.NET.Test.Sdk 17.0.0 17.2.0 #77,#106
Dev Moq 4.16.1 4.18.1 #81,#84,#107,#111
Dev xunit.runner.visualstudio 2.4.3 2.4.5 #102
Sample Awesome.Net.WritableOptions 1.3.1 3.0.0 #75
Sample ConsoleAppFramework 4.0.1 4.0.6 #59,#60,#63

v1.1.1

01 Jan 09:19
4e4773d
Compare
Choose a tag to compare

diff

Bug Fixes:bug:

  • Support UTF-8 with BOM format JSON (#56) close #55

Code Refactoring:broom:

Dev/Test

  • use ArgumentNullException.ThrowIfNull() (#50)
  • move global using settings to .csproj (#50)
  • create TempFileProvider class for test (#50)

Documentation:memo:

  • include README on NuGet package (#53)

Development:rocket:

CI/CD

  • add framework matrix test (#51)
    • Test with .NET Core 3.1 and .NET 6

Dependencies Update

powered by dependabot🤖

Kind Package old new PR
CI/CD actions/setup-dotnet 1.8.2 1.9.0 #47
CI/CD actions/upload-artifact 2.2.4 2.3.1 #48,#52
CI/CD actions/cache 2.1.6 2.1.7 #46
Prod System.Text.Json 6.0.0 6.0.1 #49
Sample ConsoleAppFramework 3.3.2 4.0.1 #54

v1.1.0

09 Nov 01:46
7596697
Compare
Choose a tag to compare

diff

New Features:sparkles:

  • support .NET 6 (#42)
    • add net6.0 on TargetFrameworks
    • update to .NET 6 Libraries
    • use C# 10

Documentation:memo:

  • bundle XML document on Release build (#13)

Development:rocket:

Testing

  • add more test
    • JsonWritableOptions<T>.Update() does not change other JSON section (#15)
    • JsonWritableOptions<T>.Update(TOptions, true) calls IConfigurationRoot.Reload() (#29)
    • ConfigureWritable<T>() test (#30)
  • add coverage report (#16, #18)

CI/CD

Dependencies Update

powered by dependabot🤖

Kind Package old new PR
CI/CD actions/cache v2.1.4 v2.1.6 #25
CI/CD actions/setup-dotnet v1.7.2 v1.8.2 #23,#41
CI/CD actions/upload-artifact v2.2.2 v2.2.4 #27
CI/CD codecov/codecov-action v1 v2.1.0 #34,#39,#40
Prod Microsoft.Extensions.Configuration.Abstractions 3.1.* 6.0.0 #42
Prod Microsoft.Extensions.Hosting 3.1.* 6.0.0 #42
Prod Microsoft.Extensions.Options 3.1.* 6.0.0 #42
Prod System.Text.Json 4.7 6.0.0 #42
Dev ConsoleAppFramework 3.2.0 3.3.2 #28,#32,#43
Dev Microsoft.NET.Test.Sdk 16.8.3 17.0.0 #22,#37,#45
Dev BenchmarkDotNet 0.12.1 0.13.1 #24,#35
Dev FluentAssertions 5.10.3 6.2.0 #36,#38,#44
Dev Moq 4.16.0 4.16.1 #26
Dev Newtonsoft.Json 12.0.3 13.0.1 #21

v1.0.1

02 Mar 00:38
c2a2a65
Compare
Choose a tag to compare

Documentation

  • fix wrong PackageProjectUrl (#12)