Releases: FoundatioFx/Foundatio
v10.4.0
What's Changed
- Support for UniqueId on QueueEntryOptions (with MessageBus support) by @jcono in #268
- InMemoryCacheClient.SetAllAsync isn't respecting the expiry by @dcomartin in #272
- Updated DeepCloner to 0.10.3 by @niemyjski in #267
New Contributors
- @dcomartin made their first contribution in #272
Full Changelog: v10.3.1...v10.4.0
v10.3.1
Full Changelog: v10.3.0...v10.3.1
v10.2.5
Full Changelog: v10.2.5...v10.3.0
v10.2.5
Full Changelog: v10.2.4...v10.2.5
v10.2.4
Full Changelog: v10.2.3...v10.2.4
v10.2.3
Full Changelog: v10.2.2...v10.2.3
v10.2.2
Full Changelog: v10.2.1...v10.2.2
v10.0.0
What's Changed
- Feature/queue options by @ejsmith in #205
- Fix for #209 by @Leon99 in #210
- Fix lock example by @Leon99 in #219
- Added unit test to demonstrate that issue #239 is not solved by @Seadoo2017 in #250
New Contributors
- @Leon99 made their first contribution in #210
- @Seadoo2017 made their first contribution in #250
Full Changelog: v9.1.1...v10.0.0
v9.0.0
What's Changed
- Change hosting to new generic host by @ejsmith in #155
- Bump Newtonsoft.Json from 12.0.2 to 12.0.3 by @dependabot-preview in #161
- Bump MessagePack from 1.7.3.7 to 1.8.74 by @dependabot-preview in #160
- Bump Microsoft.SourceLink.GitHub from 1.0.0-beta2-19367-01 to 1.0.0-beta2-19554-01 by @dependabot-preview in #159
- Bump App.Metrics.Abstractions from 3.1.0 to 3.2.0 by @dependabot-preview in #158
- Bump Microsoft.Extensions.DependencyInjection from 2.2.0 to 3.0.0 by @dependabot-preview in #157
- Bump Microsoft.Extensions.Configuration.Json from 2.2.0 to 3.0.0 by @dependabot-preview in #165
- Bump Microsoft.AspNetCore.TestHost from 2.2.0 to 3.0.0 by @dependabot-preview in #162
- Bump BenchmarkDotNet from 0.11.5 to 0.12.0 by @dependabot-preview in #164
- Bump Microsoft.NET.Test.Sdk from 16.3.0 to 16.4.0 by @dependabot-preview in #163
- Bump Microsoft.Extensions.Configuration.EnvironmentVariables from 2.2.4 to 3.0.0 by @dependabot-preview in #166
- Bump Serilog.AspNetCore from 3.0.0 to 3.2.0 by @dependabot-preview in #167
- Revert "Bump Microsoft.Extensions.DependencyInjection from 2.2.0 to 3.0.0" by @ejsmith in #169
- Bump MessagePack from 1.8.74 to 1.8.80 by @dependabot-preview in #173
- Bump Microsoft.Extensions.Hosting from 3.0.0 to 3.0.1 by @dependabot-preview in #172
- Bump Microsoft.Extensions.Configuration.Json from 3.0.0 to 3.0.1 by @dependabot-preview in #171
- Feature/actions by @ejsmith in #177
- Bump Microsoft.Extensions.Hosting from 3.1.0 to 3.1.1 by @dependabot-preview in #179
- Bump Microsoft.AspNetCore.TestHost from 3.1.0 to 3.1.1 by @dependabot-preview in #180
- Bump Microsoft.Extensions.Configuration.EnvironmentVariables from 3.1.0 to 3.1.1 by @dependabot-preview in #181
- Bump Microsoft.Extensions.Configuration.Json from 3.1.0 to 3.1.1 by @dependabot-preview in #182
Full Changelog: v8.1...v9.0.0
v8.0.0
What’s New
With the 8.0 release we focused on adding new features, improving the build process using containers, and squashing some bugs.
New Features
- Added support for Startup Actions that can be run when you startup your application. You can register an expression or implement
IStartupAction
and have a method called on startup. - We are taking Jobs to the next Level via new
HostedJobService
implementation. This new functionality allows you to register jobs to run jobs as background tasks in ASP.NET Core. You can find this new functionality in theFoundatio.Hosting
NuGet package. Below are some of the awesome things we enabled out of the box:- Ability to define jobs via
services.AddJob<MyJob>()
- Ability to define Cron jobs via
services.AddCronJob<MyJob>("* * * * *")
- Ability to wait for startup actions to complete before running the jobs.
- Ability to prevent your app from serving requests before the startup action run by calling
app.UseWaitForStartupActionsBeforeServingRequests()
. - Return
Unhealthy
health checks if startup actions haven't completed. You can enable this by callingservices.AddHealthChecks().AddCheckForStartupActionsComplete()
- Ability to define jobs via
- Added
GetPagedFileListAsync
to theIFileStorage
interface to allow to allow for efficient paging. - Added deleted file count to
DeleteFilesAsync
to get more insight into delete operations. - Added
RemoveAsync
,RemoveIfEqualAsync
, andReplaceIfEqualAsync
to theICacheClient
interface. - Added
IQueueActivity
interface to queue implementations. This allows you easily check when something has last occurred. We are using this interface for quick health checks. - Added new
SafeSleepAsync
methods toSystemClock
. This ensured a common pattern for safely recovering from sleep operations once a token had been cancelled.
Bug Fixes
- Fixed an issue with
CacheLockProvider
not cleaning upAsyncAutoResetEvents
after callingAcquireAsync
. - Fixed an issue where you could release any lock by lock name via the
CacheLockProvider
. You need to be sure you are releasing the lock you acquired and not someone elses lock. - Fixed a bug where the connection string parser could throw a null reference exception.
Breaking
- We changed the
ILockProvider
interface signatures quite a bit in this release. We changedReleaseAsync
andRenewAsync
methods to take an actual lock instance to prevent someone from releasing someone else lock. - We changed the
ILock
interface signatures a tiny bit by updating argument names and added some additional read only properties. We feel like this change will give us better control over assuring you a lock is unique as well as give us better insights into lock timings. - We removed
GetFileListAsync
from IFileStorage. It's now an extension method that calls intoGetPagedFileListAsync
.
Please take a look at the change log for a full list of the changes.
Check It Out – Feedback Appreciated!
We made many other improvements to ensure your apps run fast when using Foundatio, too many to be listed here. If you’re already using it, just update your NuGet package to the latest version to take advantage of these improvements. If you’re not using it yet, try it out. It’s worth a shot, we promise!
Once you’ve given it a go, please let us know what you like, or what you hate, by posting a issue.
Until next time, happy coding!