Releases: KinsonDigital/Carbonate
🚀Preview Release - v1.0.0-preview.18
Carbonate Preview Release Notes - v1.0.0-preview.18
Quick Reminder
As with all software, there is always a chance for issues and bugs, especially for preview releases, which is why your input is greatly appreciated. 🙏🏼
Bug Fixes 🐛
- #202 - Fixed a bug with null ref exceptions when using
ReactableBase.UnsubscribeAll()
.
Dependency Updates 📦
- #201 - Updated dependency coverlet.msbuild to v6.0.2
- #200 - Updated dependency coverlet.collector to v6.0.2
- #199 - Updated dependency xunit to v2.7.0
- #199 - Updated dependency xunit.runner.visualstudio to v2.5.7
- #198 - Updated dependency nsubstitute.analyzers.csharp to v1.0.17
- #197 - Updated dependency microsoft.net.test.sdk to v17.9.0
🚀Preview Release - v1.0.0-preview.17
Carbonate Preview Release Notes - v1.0.0-preview.17
Quick Reminder
As with all software, there is always a chance for issues and bugs, especially for preview releases, which is why your input is greatly appreciated. 🙏🏼
New Features ✨
- #188 - Added a property which is a list of all the subscription names for all of the reactables.
- The name of the property that was added is
SubscriptionNames
.
- The name of the property that was added is
- #181 - Added ability to prevent unsubscription in all of the following notification delegates:
onOnReceive
onOnRespond
onOnReceiveRespond
- #159 - Created extension methods for all reactable types to easily create subscriptions.
Bug Fixes 🐛
- #187 - Fixed the following bugs:
- Fixed a processing error in the
TwoWay.PushPullReactable
class. - Fixed a processing error in the
OneWay.PullReactable
class. - Fixed an issue where it was allowed to pull data while the
OneWay.PullReactable
was disposed. - Fixed an issue where it was allowed to push and pull data while the
TwoWay.PushPullReactable
was disposed.
- Fixed a processing error in the
Breaking Changes 🧨
- #188 - Introduced the following breaking changes:
- Changed the
IReactable<TSubscription>.SubscriptionIds
property type fromReadOnlyCollection<Guid>
toImmutableArray<Guid>
. - Changed the
ReactableBase<TSubscription>.SubscriptionIds
property type fromReadOnlyCollection<Guid>
toImmutableArray<Guid>
.
- Changed the
- #187 - Introduced the following breaking changes:
- Renamed the method parameter of type
Guid
for the following methods to the nameid
:NonDirectional.IPushable.Push()
NonDirectional.PushReactable.Push()
OneWay.IPushable.Push()
OneWay.IPullable.Pull()
OneWay.PushReactable.Push()
OneWay.PullReactable.Pull()
TwoWay.IPushablePullable.PushPull()
TwoWay.PushPullReactable.PushPull()
- Changed the type of the
ReactableBase.Subscriptions
property fromReadOnlyCollection<TSubscription>
toImmutableArray<TSubscription>
. - Swapped the position of the parameters for the
Push()
method for the interfaceIPushable<TIn>
. - Swapped the position of the parameters for the
Push()
method for the classPushReactable<TIn>
. - Swapped the position of the parameters for the
PushPull()
method for the interfacePushablePullable<TIn, TOut>
. - Swapped the position of the parameters for the
PushPull()
method for the classPushPullReactable<TIn, TOut>
.
- Renamed the method parameter of type
- #159 - Introduced the following breaking changes:
- Refactored the name of the
BuildNonReceive()
method toBuildNonReceiveOrRespond()
in the interfaceISubscriptionBuilder
. - Refactored the name of the
BuildNonReceive()
method toBuildNonReceiveOrRespond()
in the classSubscriptionBuilder
. - Refactored the name of the
BuildTwoWayRespond()
method toBuildTwoWay()
in the interfaceISubscriptionBuilder
. - Refactored the name of the
BuildTwoWayRespond()
method toBuildTwoWay()
in the classSubscriptionBuilder
. - Refactored the name of the
IRespondSubscription
interface toIReceiveRespondSubscription
. - Refactored the name of the
RespondSubscription
class toReceiveRespondSubscription
.
- Refactored the name of the
Dependency Updates 📦
- #185 - Updated dotnet to v8
- #195 - Updated xunit to v2.6.6
- #178 - Updated xunit-runner.visualstudio to v2.5.6
- #193 - Updated actions/checkout action to v4
- #171 - Updated actions/setup-dotnet action to v4
- #177 - Updated kinsondigital/infrastructure action to v13.6.3
- #180 - Updated benchmarkdotnet to v0.12.13
- #167 - Updated microsoft.codeanalysis.netanalyzers to v8
- #166 - Updated microsoft.net.test.sdk to v17.8.0
Other 🪧
🚀Preview Release - v1.0.0-preview.16
Carbonate Preview Release Notes - v1.0.0-preview.16
Quick Reminder
As with all software, there is always a chance for issues and bugs, especially for preview releases, which is why your input is greatly appreciated. 🙏🏼
New Features ✨
- #150 - Add fluent API to help improve the readability and setup of reactable and subscription setup.
- The fluent API types are located in a new namespace named
Carbonate.Fluent
. Use the typesReactableBuilder
andSubscriptionBuilder
.
- The fluent API types are located in a new namespace named
Breaking Changes 🧨
- #150 - Introduced many public API improvements related to parameter order, class, interface, and param names. This was done to help improve the understanding and usage of the API. Updating your code base is pretty straightforward.
- Renamed the
TDataIn
generic params in the entire codebase toTIn
. - Renamed the
TDataOut
generic params in the entire codebase toTOut
. - Renamed the
Carbonate.UniDirectional
namespace toCarbonate.OneWay
. - Renamed the
Carbonate.BiDirectional
namespace toCarbonate.TwoWay
. - Renamed the
Carbonate.Core.UniDirectional
namespace toCarbonate.Core.OneWay
. - Renamed the
Carbonate.Core.BiDirectional
namespace toCarbonate.Core.TwoWay
. - Renamed the
Carbonate.BiDirectional.IPullReactable
interface toCarbonate.TwoWay.IPushPullReactable
. - Renamed the
Carbonate.BiDirectional.PullReactable
class toCarbonate.TwoWay.PushPullReactable
. - Renamed the
Carbonate.BiDirectional.IPullable
interface toCarbonate.TwoWay.IPushablePullable
. - Renamed the
ReceiveReactor
constructor param namedonReceiveData
toonReceive
. - Renamed the non-directional
RespondReactor
constructor param namedonRespondData
toonRespond
. - Renamed the one-way
RespondReactor<TDataIn>
constructor param namedonRespondData
toonReceiveRespond
. - Renamed the two-way
RespondReactor<TDataOut, TDataIn>
constructor param namedonRespondData
toonReceiveRespond
. - Renamed the non-directional
IReceiveReactor
interface toIReceiveSubscription
. - Renamed the non-directional
ReceiveReactor
class toReceiveSubscription
. - Renamed the one-way
IReceiveReactor<TDataIn>
interface toIReceiveSubscription<TIn>
. - Renamed the one-way
ReceiveReactor<TDataIn>
class toReceiveSubscription<TIn>
. - Renamed the one-way
IRespondReactor<TDataIn>
interface toIRespondSubscription<TIn>
. - Renamed the one-way
RespondReactor<TDataIn>
class toRespondSubscription<TIn>
. - Renamed the one-way
IRespondReactor<TDataIn, TDataOut>
interface toIRespondSubscription<TIn, TOut>
. - Renamed the one-way
RespondReactor<TDataIn, TDataOut>
class toRespondSubscription<TIn, TOut>
. - Renamed the
IReactor
interface toISubscription
. - Renamed the
IReactable.Reactors
property toIReactable.Subscriptions
. - Renamed the
IReactable.Subscribe()
method parameter namedreactor
tosubscription
. - Renamed the
ReactableBase.Reactors
property toReactableBase.Subscriptions
- Renamed the
ReactableBase.Subscribe()
method parameter namedreactor
tosubscription
. - Renamed
ReactableBase
class generic parameter fromT
toTSubscription
. - Renamed the non-directional
ReceiveSubscription
constructor parametereventId
toid
. - Renamed the one-way
RespondSubscription<TOut>
constructor parameterresponded
toid
. - Renamed the two-way
RespondSubscription<TIn, TOut>
constructor parameterresponded
toid
. - Renamed the
SubscriptionBase
constructor parametereventId
toid
. - Swapped the parameter positions for parameters
name
andonReceive
for the non-directionalReceiveSubscription
constructor. -
- Used to be the
ReceiveReactor
class
- Used to be the
- Swapped the parameter positions for parameters
name
andonReceive
for the one-wayReceiveSubscription<TIn>
constructor. -
- Used to be the
ReceiveReactor<TDataIn>
class
- Used to be the
- Swapped the parameter positions for parameters
name
andonReceive
for the one-wayReceiveSubscription<TIn>
constructor. -
- Used to be the
ReceiveReactor<TDataIn>
class
- Used to be the
- Swapped the parameter positions for parameters
name
andonRespond
for the one-wayRespondSubscription<TOut>
constructor. -
- Used to be the
RespondReactor<TDataOut>
class
- Used to be the
- Swapped the parameter positions for parameters
name
andonReceiveRespond
for the two-wayRespondSubscription<TIn, TOut>
constructor. -
- Used to be the
RespondReactor<TDataIn, TDataOut>
class
- Used to be the
- Set the non-directional
ReceiveSubscription
class constructor parameter namedonReceive
to be non-nullable. -
- Used to be the
ReceiveReactor
class
- Used to be the
- Set the one-way
ReceiveSubscription<TIn>
class constructor parameter namedonReceive
to be non-nullable. -
- Used to be the
ReceiveReactor<TDataIn>
class
- Used to be the
- Set the one-way
RespondSubscription<TOut>
class constructor parameter namedonRespond
to be non-nullable. -
- Used to be the
RespondReactor<TDataOut>
class
- Used to be the
- Set the two-way
RespondSubscription<TIn, TOut>
class constructor parameter namedonReceiveRespond
to be non-nullable.- Used to be the
RespondReactor<TDataIn, TDataOut>
class
- Used to be the
- Renamed the
Dependency Updates 📦
- #149 - Updated dependency benchmarkdotnet to v0.13.8
- #147 - Updated actions/checkout action to v4
- #146 - Updated kinsondigital/infrastructure action to v13
- #145 - Updated dependency microsoft.net.test.sdk to v17.7.2
- #143 - Updated dependency microsoft.codeanalysis.netanalyzers to v7.0.4
- #141 - Updated dependency fluentassertions to v6.12.0
- #139 - Updated dependency microsoft.net.test.sdk to v17.7.1
- #138 - Updated kinsondigital/infrastructure action to v12
- #137 - Locked version of MOQ.
- #135 - Updated kinsondigital/infrastructure action to v11
- #133 - Updated dependency microsoft.net.test.sdk to v17.7.0
- #132 - Updated dependency benchmarkdotnet to v0.13.7
Other 🪧
🚀Preview Release - v1.0.0-preview.15
Carbonate Preview Release Notes - v1.0.0-preview.15
Quick Reminder
As with all software, there is always a chance for issues and bugs, especially for preview releases, which is why your input is greatly appreciated. 🙏🏼
Dependency Updates 📦
- #123 - chore(deps): updated dependency coverlet.msbuild to v6
- #122 - chore(deps): updated dependency coverlet.collector to v6
- #121 - chore(deps): updated dependency xunit.runner.visualstudio to v2.5.0
- #120 - chore(deps): updated dependency xunit to v2.5.0
- #119 - chore(deps): updated dependency microsoft.net.test.sdk to v17.6.3
- #118 - chore(deps): updated dependency fluentassertions to v6.11.0
- #116 - chore(deps): updated kinsondigital/infrastructure action to v10.1.0
- #114 - chore(deps): updated dependency microsoft.codeanalysis.netanalyzers to v7.0.3
- #113 - chore(deps): updated dependency benchmarkdotnet to v0.13.6
Other 🪧
- #111 - Project and ci improvements
- #109 - Added workflows
- #107 - Setup renovate to use org level preset
- #103 - Created sonar scan status check workflow
- #101 - Removed solution items
- #99 - Updated deprecated step outputs
- #96 - Removed the contributing document
- #93 - Updated contributor covenant badge
- #92 - Added samples to readme
- #90 - Updated Readme
- #89 - Updated CICD to the latest version
- #87 - Fixed workflow step name
- #83 - Updated twitter link
- #81 - Removed repo related docs
🚀Preview Release - v1.0.0-preview.14
Carbonate Preview Release Notes - v1.0.0-preview.14
Quick Reminder
As with all software, there is always a chance for issues and bugs, especially for preview releases, which is why your input is greatly appreciated. 🙏🏼
New Features ✨
- #77 - Changed the following classes:
💡These changes were done to give users more control.
- Removed the
sealed
keyword from the following classes:NonDirectional.ReceiveReactor
UniDirectional.ReceiveReactor
UniDirectional.RespondReactor
BiDirectional.RespondReactor
- Changed the following methods to
virtual
:NonDirectional.ReceiveReactor.OnReceive()
UniDirectional.ReceiveReactor.OnReceive()
UniDirectional.RespondReactor.OnRespond()
BiDirectional.RespondReactor.OnRespond()
- Removed the
🚀Preview Release - v1.0.0-preview.13
Carbonate Preview Release Notes - v1.0.0-preview.13
Quick Reminder
As with all software, there is always a chance for issues and bugs, especially for preview releases, which is why your input is greatly appreciated. 🙏🏼
Breaking Changes 🧨
- #71 - Removed the following types from the library:
💡This was removed due to the types not being required anymore. Changes to the library have made these types not unnecessary.
IMessage
IResult
MessageFactory
ResultFactory
- #71 - Changed all of the return types for the following interfaces and classes to nullable.
PullReactable<TDataIn, TDataOut>
IPullable
RespondReactor
IPullable
PullReactable<TDataOut>
Other 🪧
(Includes anything that does not fit into the categories above)
🚀Preview Release - v1.0.0-preview.12
Carbonate Preview Release Notes - v1.0.0-preview.12
Quick Reminder
As with all software, there is always a chance for issues and bugs, especially for preview releases, which is why your input is greatly appreciated. 🙏🏼
⚠️ WARNING!!⚠️
This release contains MANY breaking changes and the list below is not exhaustive. The purpose of these changes was to enable better usability, flexibility, testability, and type safety.
Breaking Changes 🧨
- #59 - The following breaking changes were introduced:
💡This list is not exhaustive
- Created the following 6 namespaces for better organization and to help increase understanding of the data flow of the various classes and interfaces. The majority of the classes and interfaces in the library have been moved to these namespaces. Each class and interfaces was moved into the correct namespace that matches the direction that data may or may not flow.
Carbonate.Core.NonDirectional
Carbonate.Core.UniDirectional
Carbonate.Core.BiDirectional
Carbonate.NonDirectional
Carbonate.UniDirectional
Carbonate.BiDirectional
- Moved the majority of the interfaces and classes in the library to one of the new interfaces mentioned above.
- Added generic parameters to various interfaces and the associated class implementations.
- Created the following 6 namespaces for better organization and to help increase understanding of the data flow of the various classes and interfaces. The majority of the classes and interfaces in the library have been moved to these namespaces. Each class and interfaces was moved into the correct namespace that matches the direction that data may or may not flow.
🚀Preview Release - v1.0.0-preview.11
Carbonate Preview Release Notes - v1.0.0-preview.11
Quick Reminder
As with all software, there is always a chance for issues and bugs, especially for preview releases, which is why your input is greatly appreciated. 🙏🏼
Bug Fixes 🐛
- #55 - Fixed a bug where all subscriptions with any response ID were being invoked for pull reactables.
Other 🪧
(Includes anything that does not fit into the categories above)
- #55 - Added a small performance improvement to the
PullReactable.Pull()
methods.
🚀Preview Release - v1.0.0-preview.10
Carbonate Preview Release Notes - v1.0.0-preview.10
Quick Reminder
As with all software, there is always a chance for issues and bugs, especially for preview releases, which is why your input is greatly appreciated. 🙏🏼
New Features ✨
- #51 - Added the 2 interfaces below:
💡The classes
PushReactable
andPullReactable
now inherit these interfaces respectively which
give the ability to use the interface types instead of the class types and still get access to the push and pull methods. This also increases testability and mocking.IPushReactable
IPullReactable
🚀Preview Release - v1.0.0-preview.9
Carbonate Preview Release Notes - v1.0.0-preview.9
Quick Reminder
As with all software, there is always a chance for issues and bugs, especially for preview releases, which is why your input is greatly appreciated. 🙏🏼
New Features ✨
- #47 - Added the ability to Pull a message from a source. This is the opposite of the old functionality of doing Push. Think of this as requesting data from a source. The following new types have been added to the library to not only add this functionality but improve upon the original functionality.
IReceiver
IReceiveReactor
IResponder
IRespondReactor
IResult
IPullable
IPushable
PullReactable
PushReactable
ReactableBase
RespondReactor
ResultFactory
Breaking Changes 🧨
- #47 - Made various breaking changes throughout the library.
- Renamed the following
Reactor
class constructor parameters:- Renamed the parameter
onNext
toonReceive
. - Renamed the parameter
onNextMsg
toonReceiveMsg
. - Renamed the parameter
onCompleted
toonUnsubscribe
.
- Renamed the parameter
- Renamed the interface
IReactor.OnComplete()
method (now theIReceiveReactor
class), toOnUnsubscribe()
. - Renamed the class
Reactor.OnComplete()
method (now theReceiveReactor
class), toOnUnsubscribe()
. - Renamed the class
Reactor
toReceiveReactor
. - Renamed the class
IReactor
toIReceiveReactor
. - Added a class-level generic to the
IReactable
interface.💡This new generic is constrained to the interface
IReactor
. - Moved the following methods in the
IReactable
interface to the newIPushable
interface:Push()
PushData<T>()
PushMessage()
- Renamed the
IReactable.EventIds
property toSubscriptionIds
. - The interface
IReactor
methodsOnNext()
andOnComplete()
have been removed. - The interface
IReactable
- Renamed the
Reactable
class toPushReactable
. - Moved the following types to the namespace
Carbonate.Core
:IReactable
Reactable
💡Now named
PushReactable
IReactor
Reactor
💡Now named
ReceiveReactor
IMessage
- Renamed the following
Nuget/Library Updates 📦
- #47 - Updated, replaced, and removed various NuGet packages.
- Replaced the NuGet package NSubstitute with Moq version 4.18.4
💡Also updated all of the mocking code in the unit tests project to use Moq.
- Updated the NuGet package Microsoft.NET.Test.Sdk from version v17.3.2 to v17.4.1 for the integration tests project.
- Updated the NuGet package Microsoft.NET.Test.Sdk from version v17.4.0 to v17.4.1 for the unit tests project.
- Replaced the NuGet package NSubstitute with Moq version 4.18.4
Other 🪧
(Includes anything that does not fit into the categories above)
- #47 - Added a new word to the dictionary for JetBrains Rider users.