Releases: minos-framework/minos-python
Releases · minos-framework/minos-python
v0.6.0
Changelog
minos-microservice-aggregate
- Replace
dependency-injector
's injection classes by the ones provided by theminos.common.injections
module. - Be compatible with latest
minos.common.Config
API.
minos-microservice-common
- Add
Config
with support for config versioning. - Add
ConfigV1
as the class that supports the V1 config file. - Add
ConfigV2
as the class that supports the V1 config file. - Deprecate
MinosConfig
in favor ofConfig
. - Add
get_internal_modules
function. - Add
Injectable
decorator to provide a way to set a class as injectable. - Add
InjectableMixin
class that provides the necessary methods to be injectable. - Add
Inject
decorator to provide a way to inject variables on functions based on types. - Add
LockPool
base class as the base class for lock pools. - Add
Object
base class with the purpose to avoid issues related with multi-inheritance and mixins. - Add
Port
base class as the base class for ports. - Add
CircuitBreakerMixin
class to provide circuit breaker functionalities. - Add
SetupMixin
class as a replacement of theMinosSetup
class.
minos-microservice-cqrs
- Replace
dependency-injector
's injection classes by the ones provided by theminos.common.injections
module. - Be compatible with latest
minos.common.Config
API.
minos-microservice-networks
- Add
BrokerPort
class and deprecateBrokerHandlerService
. - Add
BrokerPublisherBuilder
to ease the building ofBrokerPublisher
instances. - Add
FilteredBrokerSubscriber
implemented as a Chain-of-Responsibility Design Pattern to be able to filterBrokerMessage
instances during subscription. - Add
BrokerSubscriberValidator
andBrokerSubscriberDuplicateValidator
base classes and theInMemoryBrokerSubscriberDuplicateValidator
andPostgreSqlBrokerSubscriberDuplicateValidator
implementations. - Rename
EnrouteAnalyzer
asEnrouteCollector
. - Rename
EnrouteBuilder
asEnrouteFactory
. - Add
HttpEnrouteDecorator
. - Remove
KongDiscoveryClient
class (there are plans to re-include it as an external plugin in the future). - Add
HttpConnector
as the base class that connects to thehttp
server. - Add
HttpAdapter
as the class that coordinatesHttpRouter
instances. - Add
HttpPort
class and deprecateRestService
. - Add
HttpRequest
,HttpResponse
andHttpResponseException
as request/response wrappers of thehttp
server. - Add
Router
,HttpRouter
,RestHttpRouter
,BrokerRouter
andPeriodicRouter
as the classes that route requests to the corresponding services' handling functions - Add
PeriodicPort
class and deprecatePeriodicTaskSchedulerService
. - Add
CronTab
class to support"@reboot"
pattern. - Add
OpenAPIService
andAsynAPIService
classes as the services that provideopenapi
andasynciapi
specifications of the microservice. - Add
SystemService
as the service that implements System Health checker. - Replace
dependency-injector
's injection classes by the ones provided by theminos.common.injections
module. - Be compatible with latest
minos.common.Config
API.
minos-microservice-saga
- Replace
dependency-injector
's injection classes by the ones provided by theminos.common.injections
module. - Be compatible with latest
minos.common.Config
API.
minos-broker-kafka
- Add
KafkaCircuitBreakerMixin
to integrateminos.common.CircuitBreakerMixin
into theKafkaBrokerPublisher
andKafkaBrokerSubscriber
classes to be tolerant to connection failures tokafka
. - Add
KafkaBrokerPublisherBuilder
andKafkaBrokerBuilderMixin
classes to ease the building process.
minos-broker-rabbitmq
- Add
RabbitMQBrokerPublisher
as the implementation of therabbitmq
publisher. - Add
RabbitMQBrokerSubscriber
as the implementation of therabbitmq
subscriber. - Add
RabbitMQBrokerPublisherBuilder
,RabbitMQBrokerSubscriberBuilder
andRabbitMQBrokerBuilderMixin
classes to ease the building process.
minos-discovery-minos
- Integrate
minos.common.CircuitBreakerMixin
into theMinosDiscoveryClient
to be tolerant to connection failures tominos-discovery
.
minos-http-aiohttp
- Add
AioHttpConnector
as the implementation of theaiohttp
server. - Add
AioHttpRequest
,AioHttpResponse
andAioHttpResponseException
classes as the request/response wrappers foraiohttp
.
minos-router-graphql
- Add
GraphQLSchemaBuilder
to build thegraphql
's schema. - Add
GraphQlHandler
class to handlegraphql
requests. - Add
GraphQlHttpRouter
class to routehttp
request tographql
. - Add
GraphQlEnroute
,GraphQlEnrouteDecorator
,GraphQlCommandEnrouteDecorator
andGraphQlQueryEnrouteDecorator
decorators.
Update Guide
From 0.5.x
- Add
@Injectable
decorator to classes that injections:
from minos.common import Injectable
@Injectable("THE_INJECTION_NAME")
class MyInjectableClass:
...
- Add
minos-http-aiohttp
package:
poetry add minos-http-aiohttp@^0.6
- Add
HttpConnector
instance toservice.injections
section ofconfig.yml
file:
...
service:
injections:
http_connector: minos.plugins.aiohttp.AioHttpConnector
...
...
...
- Add
routers
section toconfig.yml
file:
...
routers:
- minos.networks.BrokerRouter
- minos.networks.PeriodicRouter
- minos.networks.RestHttpRouter
...
- Update
minos.common.Config
usages according to the new provided API:- Most common issues come from calls like
config.query_repository._asdict()
, that must be transformed toconfig.get_database_by_name("query")
- Most common issues come from calls like
v0.5.4
Changelog
minos-microservice-aggregate
- Fix bug related with
Ref.resolve
. - Add
RefResolver.build_topic_name
static method. - Remove
SnapshotService.__get_one__
method. - Minor changes.
v0.5.3
Changelog
minos-microservice-aggregate
- Add
RefException
to be raised when some reference cannot be resolved. - Improve attribute and item accessors of
Ref
,Event
andFieldDiffContainer
- Deprecate
Event.get_one
in favor ofEvent.get_field
. - Deprecate
Event.get_all
in favor ofEvent.get_fields
.
minos-microservice-common
- Big performance improvement related with a caching layer over type hint comparisons at
TypeHintComparator
. - Improve attribute and item accessors of
Model
. - Fix bug related with casting from
dict
toModel
instances on field setters.
minos-microservice-cqrs
- Update the
resolve_references: bool
default value toFalse
defined atPreEventHandler.handle
. - Improve error messages of
PreEventHandler
.
minos-microservice-networks
- Improve error messages of
BrokerDispatcher
,RestHandler
andPeriodicTask
.
minos-microservice-saga
- Improve attribute and item accessors of
SagaContext
.
v0.5.2
Changelog
minos-microservice-aggregate
- Add
Condition.LIKE
operator to be used with thefind
method fromSnapshotRepository
. - Add
get_all
method toRootEntity
andSnapshotRepository
to get all the stored instance on the repository. - Rename
SnapshotService
command topics to avoid collisions with application-level topics. - Rename
TransactionService
command topics to avoid collisions with application-level topics. - Minor changes.
minos-microservice-common
- Add
query_repository
section toMinosConfig
. - Minor changes.
minos-microservice-networks
- Fix bug related with enroute decorator collisions in which the
MinosRedefinedEnrouteDecoratorException
was not raised. - Minor changes.
minos-microservice-saga
- Add compatibility to
minos-microservice-aggregate~=0.5.2
. - Minor changes.
v0.5.1
Changelog
minos-microservice-aggregate
- Fix bug related with dependency specification.
minos-microservice-cqrs
- Fix bug related with dependency specification.
minos-microservice-networks
- Fix bug related with dependency specification.
minos-microservice-saga
- Fix bug related with dependency specification.
minos-broker-kafka
- Fix bug related with dependency specification.
minos-discovery-minos
- Fix bug related with dependency specification.
v0.5.0
Changelog
minos-microservice-aggregate
- Rename
Aggregate
asRootEntity
. - Rename
AggregateRef
asExternalEntity
. - Rename
ModelRef
asRef
. - Rename
AggregateDiff
asEvent
. - Create the
Aggregate
base class, with the purpose to move the business logic from theminos.cqrs.CommandService
to this brand-new class. - Refactor internal module hierarchy.
- Minor changes.
minos-microservice-common
- Minor changes.
minos-microservice-cqrs
- Minor changes.
minos-microservice-networks
- Extract
kafka
related code to theminos-broker-kafka
plugin. - Extract
minos-discovery
related code to theminos-discovery-minos
plugin. - Minor changes.
minos-microservice-saga
- Minor changes.
minos-broker-kafka
- Migrate
PostgreSqlQueuedKafkaBrokerPublisher
fromminos-microservice-networks
. - Migrate
InMemoryQueuedKafkaBrokerPublisher
fromminos-microservice-networks
. - Migrate
KafkaBrokerPublisher
fromminos-microservice-networks
. - Migrate
KafkaBrokerSubscriber
fromminos-microservice-networks
. - Migrate
KafkaBrokerSubscriberBuilder
fromminos-microservice-networks
. - Migrate
PostgreSqlQueuedKafkaBrokerSubscriberBuilder
fromminos-microservice-networks
. - Migrate
InMemoryQueuedKafkaBrokerSubscriberBuilder
fromminos-microservice-networks
. - Minor changes.
minos-discovery-minos
- Migrate
MinosDiscoveryClient
fromminos-microservice-networks
. - Minor changes.
v0.4.1
Changelog
minos-microservice-aggregate
- Update
README.md
.
minos-microservice-common
- Update
README.md
.
minos-microservice-cqrs
- Update
README.md
.
minos-microservice-networks
- Update
README.md
.
minos-microservice-saga
- Update
README.md
.
v0.4.0
Changelog
minos-microservice-aggregate
- Be compatible with
minos-microservice-common~=0.4.0
. - Be compatible with
minos-microservice-networks~=0.4.0
.
minos-microservice-common
- Add waiting time before destroying the
minos.common.MinosPool
acquired instances.
minos-microservice-cqrs
- Be compatible with
minos-microservice-common~=0.4.0
. - Be compatible with
minos-microservice-aggregate~=0.4.0
. - Be compatible with
minos-microservice-networks~=0.4.0
.
minos-microservice-networks
- Add
BrokerDispatcher
to break the direct relationship betweenBrokerHandler
andBrokerPublisher
. - Add
content_type
argument toRestResponse
's constructor to be able to retrieve the result in a format other thanjson
. - Add versioning to
BrokerMessage
and implement theBrokerMessageV1
andBrokerMessageV1Payload
to be able to work with different microservice versions in the future. - Refactor
BrokerPublisher.send
method to follow the(message: BrokerMessage) -> None
prototype instead of a big list of arguments referred to the messages attributes. - Refactor
brokers.publishers
module.- Add
BrokerPublisher
base class with asend(message: BrokerMessage) -> Awaitable[None]
method. - Add
BrokerPublisherQueue
base class with anenqueue(message: BrokerMessage) -> Awaitable[None]
and adequeue() -> Awaitable[BrokerMessage]
methods. - Add
KafkaBrokerPublisher
as thekafka
's implementation of the publisher. - Add
PostgreSqlBrokerPublisherQueue
as thepostgres
implementation of the publisher's message queue.
- Add
- Refactor
brokers.handlers
.- Add
BrokerSubscriber
base class with areceive() -> Awaitable[BrokerMessage]
method. - Add
BrokerSubscriberQueue
base class with anenqueue(message: BrokerMessage) -> Awaitable[None]
and adequeue() -> Awaitable[BrokerMessage]
methods. - Add
KafkaBrokerSubscriber
as thekafka
's implementation of the subscriber. - Add
PostgreSqlBrokerSubscriberQueue
as thepostgres
implementation of the subscriber's message queue.
- Add
- Refactor
DynamicBroker
andDynamicBrokerPool
asBrokerClient
andBrokerClientPool
. The newBrokerClient
has asend(message: BrokerMessage) -> Awaitable[None]
method for sending messages and areceive() -> Awaitable[BrokerMessage]
to receive them. - Implement a builder pattern on
BrokerPublisher
- Be compatible with
minos-microservice-common~=0.4.0
.
minos-microservice-saga
- Be compatible with
minos-microservice-common~=0.4.0
. - Be compatible with
minos-microservice-aggregate~=0.4.0
. - Be compatible with
minos-microservice-networks~=0.4.0
.