All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.16.0 - 2024-10-05
- [BC] Use
enginekit/message.Type
,Kind
andName
throughout, replacing the deprecated and now removedmessage
package.
- [BC] Removed the deprecated
message
package.
0.15.1 - 2024-10-05
- The
message
package within this module is now deprecated and will be removed in a future release.
0.15.0 - 2024-10-03
- Added
message.Kind
enumeration to represent the different kinds of message, that isCommand
,Event
, andTimeout
. This is a replacement for themessage.Role
enumeration, which was removed in this release.Kind
andRole
have the same enumeration values, but whereas a message's "role" was a function of how it was used within a specific application, its "kind" is inherit to the message type itself. - Added
message.SwitchKind()
andMapKind()
to perform exhaustive switches and maps on aKind
. - Added
message.Switch()
,Map()
andTryMap()
to perform exchaustive switches on the kind of adogma.Message
.
- [BC] Removed
message.Role
. - [BC] Removed
message.NameRoles
andTypeRoles
. - [BC] Removed
message.NameSet
andTypeSet
, usemessage.Set
instead. - [BC] Removed
message.NameCollection
,NameSet
,TypeCollection
andTypeSet
, and their associated set functions, usemessage.Set
instead.
- [BC] Renamed
message.NameFromType()
toNameFromStaticType()
. - [BC] Changed
EntityMessage[Names|Types]
to use a new genericEntityMessages[K]
type. - [BC] Changed the
api
package to implement theconfiggrpc
APIs defined indogmatiq/enginekit
, instead of the (deprecated)interopspec/configspec
APIs.
0.14.0 - 2024-09-27
- Bumped minimum Go version to 1.23.
- [BC] Removed deprecated
fixtures
package.
0.13.8 - 2024-08-23
- Fixed bug that caused
message.Type.String()
to remove periods after package names when rendering the type of a pointer message.
0.13.7 - 2024-08-23
- Added
message.NameFor()
.
- Shorten generic message type names when the type parameter is in the same package as the generic type.
- Deprecated the
fixtures
sub-package. This package will be removed in a future release.
0.13.6 - 2024-08-17
- Bump Dogma to v0.14.0.
0.13.5 - 2024-08-16
- Added
static.PackagesLoadMode
as a convenience for using Go's built-inpackages.Load()
with a mode suitable for static analysis. - Added
static.FromDir()
as a convenience for analyzing packages recursively from a directory.
- Handle alias types under Go v1.23 (or when using
GODEBUG=gotypealias=1
), which previously caused a panic.
0.13.4 - 2024-08-16
- Added
message.TypeFor()
.
- Bumped minimum Go version to 1.22.
- Use
dogma.Command
,Event
andTimeout
interfaces instead ofdogma.Message
where appropriate.
0.13.3 - 2024-08-15
- Added
ToProto()
andFromProto()
to convert application configurations to and from their protocol buffers representations.
0.13.2 - 2024-08-12
- Fixed panicking in static analysis functionality.
0.13.1 - 2024-07-16
- Added support for
Disable()
method indogmatiq/dogma
v0.13.1.
- Fixed incorrect panic value when calling
ProjectionConfigurer.DeliveryPolicy()
with anil
policy.
0.13.0 - 2024-03-26
- [BC] Updated to Dogma v0.13.0
0.12.2 - 2024-01-19
- Ensure static analysis correctly identifies handlers with non-pointer receivers when registered via a pointer.
- Ensure static analysis ignores routes that are not actually passed to a
configurer via the
Routes()
.
0.12.1 - 2023-05-04
- Modify
static
package to analyze the latest changes introduced by Dogma v0.12.0.
0.12.0 - 2023-04-09
This release updates the configkit
implementation to adhere to Dogma v0.12.0
interfaces. It does not yet include support for static analysis of the new
Routes()
API.
- Added
RichProjection.DeliveryPolicy()
- [BC] Application and handler identity keys must be RFC 4122 UUIDs
0.11.1 - 2021-09-17
- Add
static
package, which produces application configurations using static analysis
0.11.0 - 2021-02-24
- [BC] Updated to Dogma v0.11.0
0.10.0 - 2021-01-20
- Add
api.NewServer()
- Add
api.Server
- [BC] The
api
package now implements theconfigspec
fromdogmatiq/interopspec
- [BC]
api.Client
is now a struct, not an interface
- [BC] Remove
api.Client.ListApplicationIdentities()
- [BC] Remove
api.RegisterServer()
- [BC] Remove the
api/discovery
package, usedogmatiq/discoverkit
instead - [BC] Remove the
api/fixtures
package
0.9.1 - 2020-11-20
- Add
ValidateIdentityName()
andValidateIdentityKey()
0.9.0 - 2020-11-06
- [BC] Updated to Dogma v0.9.0
0.8.0 - 2020-11-03
- [BC] Updated to Dogma v0.8.0
0.7.4 - 2020-11-01
- Add
visualization/dot
package (migrated fromdogmatiq/graphkit
)
0.7.3 - 2020-04-30
- Add
HandlerSet.MessageNames()
- Add
RichHandlerSet.MessageTypes()
0.7.2 - 2020-03-25
- Add
Len()
toNameCollection
andTypeCollection
interfaces
0.7.1 - 2020-03-16
- Add
message.IsEqualSetN()
andIsEqualSetT()
0.7.0 - 2020-03-15
- Add
discovery.Connector.IsFatal
- Add
discovery.Inspector.IsFatal
- Add
NameRoles.RangeByRole()
andFilterByRole()
- Add
TypeRoles.RangeByRole()
andFilterByRole()
- [BC] Remove
discovery.Connector.Logger
- [BC] Remove
discovery.Inspector.Logger
0.6.0 - 2020-03-14
- [BC] Change
discovery.Inspector.Ignore()
to accept a*discovery.Application
0.5.0 - 2020-03-14
- Add
MessageEntityNames.Foreign()
- Add
MessageEntityTypes.Foreign()
- [BC] Remove
ForeignMessageNames()
andForeignMessageTypes()
0.4.2 - 2020-03-13
- Add
static.Discoverer
for "discovering" static lists of targets
0.4.1 - 2020-03-10
- Add
message.TypeFromReflect()
0.4.0 - 2020-03-09
- Add
discovery.TargetExecutor
andClientExecutor
- Add
discovery.Connector.Ignore
- Add
discovery.ApplicationObserver
,ApplicationObserverSet
andApplicationExecutor
- Add
discovery.Inspector
- [BC] Change the internal gRPC API namespace from
dogma.configkit.v1
todogma.config.v1
- [BC] Change
api.Client
to an interface - [BC]
discovery.Connector
no longer implementsTargetObserver
, instead use aTargetExecutor
to callConnector.Run()
0.3.1 - 2020-03-08
- Add the
api
package, a gRPC API for communicating APP configurations over the network
0.3.0 - 2020-01-29
- [BC] Rename
message.NameCollection.Each()
toRange()
for consistency with the Go standard library - [BC] Rename
message.TypeCollection.Each()
toRange()
for consistency with the Go standard library
- Add
HandlerSet.RangeAggregates()
,RangeProcesses()
,RangeIntegrations()
andRangeProjections()
- Add
HandlerSet.Aggregates()
,Processes()
,Integrations()
andProjections()
- Add
RichHandlerSet.Aggregates()
,Processes()
,Integrations()
andProjections()
- Add
RichHandlerSet.RangeAggregates()
,RangeProcesses()
,RangeIntegrations()
andRangeProjections()
0.2.2 - 2020-01-29
- Add
message.IsIntersectingN()
,IsSubsetN()
,IntersectionN()
,UnionN()
andDiffN()
- Add
message.IsIntersectingT()
,IsSubsetT()
,IntersectionT()
,UnionT()
andDiffT()
0.2.1 - 2020-01-16
NameOf()
andTypeOf()
now produce a more meaningful panic message when passed anil
message
0.2.0 - 2019-12-16
- [BC] Remove
Application.ForeignMessageNames()
- [BC] Remove
RichApplication.ForeignMessageTypes()
- [BC] Remove
Errorf
andPanicf()
- [BC] Remove
Roles
field fromEntityMessageNames
andEntityMessageTypes
- Add
ForeignMessageNames()
andForeignMessageTypes()
- Add
IsApplicationEqual()
andIsHandlerEqual()
- Add
ToString()
- Add
IsEqual()
method toHandlerSet
andRichHandlerSet
- Add
Identity.[Un]MarshalText()
and[Un]MarshalBinary()
- Add
IsEqual()
method toNameRoles
,NameSet
,TypeRoles
andTypeSet
- Add
IsEqual()
,All()
andRoleOf()
methods toEntityMessageNames
andEntityMessageTypes
- Add
HandlerSet.AcceptVisitor()
andRichHandlerSet.AcceptRichVisitor()
0.1.0 - 2019-12-02
- Initial release