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.injectionsmodule. - Be compatible with latest
minos.common.ConfigAPI.
minos-microservice-common
- Add
Configwith support for config versioning. - Add
ConfigV1as the class that supports the V1 config file. - Add
ConfigV2as the class that supports the V1 config file. - Deprecate
MinosConfigin favor ofConfig. - Add
get_internal_modulesfunction. - Add
Injectabledecorator to provide a way to set a class as injectable. - Add
InjectableMixinclass that provides the necessary methods to be injectable. - Add
Injectdecorator to provide a way to inject variables on functions based on types. - Add
LockPoolbase class as the base class for lock pools. - Add
Objectbase class with the purpose to avoid issues related with multi-inheritance and mixins. - Add
Portbase class as the base class for ports. - Add
CircuitBreakerMixinclass to provide circuit breaker functionalities. - Add
SetupMixinclass as a replacement of theMinosSetupclass.
minos-microservice-cqrs
- Replace
dependency-injector's injection classes by the ones provided by theminos.common.injectionsmodule. - Be compatible with latest
minos.common.ConfigAPI.
minos-microservice-networks
- Add
BrokerPortclass and deprecateBrokerHandlerService. - Add
BrokerPublisherBuilderto ease the building ofBrokerPublisherinstances. - Add
FilteredBrokerSubscriberimplemented as a Chain-of-Responsibility Design Pattern to be able to filterBrokerMessageinstances during subscription. - Add
BrokerSubscriberValidatorandBrokerSubscriberDuplicateValidatorbase classes and theInMemoryBrokerSubscriberDuplicateValidatorandPostgreSqlBrokerSubscriberDuplicateValidatorimplementations. - Rename
EnrouteAnalyzerasEnrouteCollector. - Rename
EnrouteBuilderasEnrouteFactory. - Add
HttpEnrouteDecorator. - Remove
KongDiscoveryClientclass (there are plans to re-include it as an external plugin in the future). - Add
HttpConnectoras the base class that connects to thehttpserver. - Add
HttpAdapteras the class that coordinatesHttpRouterinstances. - Add
HttpPortclass and deprecateRestService. - Add
HttpRequest,HttpResponseandHttpResponseExceptionas request/response wrappers of thehttpserver. - Add
Router,HttpRouter,RestHttpRouter,BrokerRouterandPeriodicRouteras the classes that route requests to the corresponding services' handling functions - Add
PeriodicPortclass and deprecatePeriodicTaskSchedulerService. - Add
CronTabclass to support"@reboot"pattern. - Add
OpenAPIServiceandAsynAPIServiceclasses as the services that provideopenapiandasynciapispecifications of the microservice. - Add
SystemServiceas the service that implements System Health checker. - Replace
dependency-injector's injection classes by the ones provided by theminos.common.injectionsmodule. - Be compatible with latest
minos.common.ConfigAPI.
minos-microservice-saga
- Replace
dependency-injector's injection classes by the ones provided by theminos.common.injectionsmodule. - Be compatible with latest
minos.common.ConfigAPI.
minos-broker-kafka
- Add
KafkaCircuitBreakerMixinto integrateminos.common.CircuitBreakerMixininto theKafkaBrokerPublisherandKafkaBrokerSubscriberclasses to be tolerant to connection failures tokafka. - Add
KafkaBrokerPublisherBuilderandKafkaBrokerBuilderMixinclasses to ease the building process.
minos-broker-rabbitmq
- Add
RabbitMQBrokerPublisheras the implementation of therabbitmqpublisher. - Add
RabbitMQBrokerSubscriberas the implementation of therabbitmqsubscriber. - Add
RabbitMQBrokerPublisherBuilder,RabbitMQBrokerSubscriberBuilderandRabbitMQBrokerBuilderMixinclasses to ease the building process.
minos-discovery-minos
- Integrate
minos.common.CircuitBreakerMixininto theMinosDiscoveryClientto be tolerant to connection failures tominos-discovery.
minos-http-aiohttp
- Add
AioHttpConnectoras the implementation of theaiohttpserver. - Add
AioHttpRequest,AioHttpResponseandAioHttpResponseExceptionclasses as the request/response wrappers foraiohttp.
minos-router-graphql
- Add
GraphQLSchemaBuilderto build thegraphql's schema. - Add
GraphQlHandlerclass to handlegraphqlrequests. - Add
GraphQlHttpRouterclass to routehttprequest tographql. - Add
GraphQlEnroute,GraphQlEnrouteDecorator,GraphQlCommandEnrouteDecoratorandGraphQlQueryEnrouteDecoratordecorators.
Update Guide
From 0.5.x
- Add
@Injectabledecorator to classes that injections:
from minos.common import Injectable
@Injectable("THE_INJECTION_NAME")
class MyInjectableClass:
...- Add
minos-http-aiohttppackage:
poetry add minos-http-aiohttp@^0.6- Add
HttpConnectorinstance toservice.injectionssection ofconfig.ymlfile:
...
service:
injections:
http_connector: minos.plugins.aiohttp.AioHttpConnector
...
...
...- Add
routerssection toconfig.ymlfile:
...
routers:
- minos.networks.BrokerRouter
- minos.networks.PeriodicRouter
- minos.networks.RestHttpRouter
...- Update
minos.common.Configusages 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_namestatic method. - Remove
SnapshotService.__get_one__method. - Minor changes.
v0.5.3
Changelog
minos-microservice-aggregate
- Add
RefExceptionto be raised when some reference cannot be resolved. - Improve attribute and item accessors of
Ref,EventandFieldDiffContainer - Deprecate
Event.get_onein favor ofEvent.get_field. - Deprecate
Event.get_allin 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
dicttoModelinstances on field setters.
minos-microservice-cqrs
- Update the
resolve_references: booldefault value toFalsedefined atPreEventHandler.handle. - Improve error messages of
PreEventHandler.
minos-microservice-networks
- Improve error messages of
BrokerDispatcher,RestHandlerandPeriodicTask.
minos-microservice-saga
- Improve attribute and item accessors of
SagaContext.
v0.5.2
Changelog
minos-microservice-aggregate
- Add
Condition.LIKEoperator to be used with thefindmethod fromSnapshotRepository. - Add
get_allmethod toRootEntityandSnapshotRepositoryto get all the stored instance on the repository. - Rename
SnapshotServicecommand topics to avoid collisions with application-level topics. - Rename
TransactionServicecommand topics to avoid collisions with application-level topics. - Minor changes.
minos-microservice-common
- Add
query_repositorysection toMinosConfig. - Minor changes.
minos-microservice-networks
- Fix bug related with enroute decorator collisions in which the
MinosRedefinedEnrouteDecoratorExceptionwas 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
AggregateasRootEntity. - Rename
AggregateRefasExternalEntity. - Rename
ModelRefasRef. - Rename
AggregateDiffasEvent. - Create the
Aggregatebase class, with the purpose to move the business logic from theminos.cqrs.CommandServiceto this brand-new class. - Refactor internal module hierarchy.
- Minor changes.
minos-microservice-common
- Minor changes.
minos-microservice-cqrs
- Minor changes.
minos-microservice-networks
- Extract
kafkarelated code to theminos-broker-kafkaplugin. - Extract
minos-discoveryrelated code to theminos-discovery-minosplugin. - Minor changes.
minos-microservice-saga
- Minor changes.
minos-broker-kafka
- Migrate
PostgreSqlQueuedKafkaBrokerPublisherfromminos-microservice-networks. - Migrate
InMemoryQueuedKafkaBrokerPublisherfromminos-microservice-networks. - Migrate
KafkaBrokerPublisherfromminos-microservice-networks. - Migrate
KafkaBrokerSubscriberfromminos-microservice-networks. - Migrate
KafkaBrokerSubscriberBuilderfromminos-microservice-networks. - Migrate
PostgreSqlQueuedKafkaBrokerSubscriberBuilderfromminos-microservice-networks. - Migrate
InMemoryQueuedKafkaBrokerSubscriberBuilderfromminos-microservice-networks. - Minor changes.
minos-discovery-minos
- Migrate
MinosDiscoveryClientfromminos-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.MinosPoolacquired 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
BrokerDispatcherto break the direct relationship betweenBrokerHandlerandBrokerPublisher. - Add
content_typeargument toRestResponse's constructor to be able to retrieve the result in a format other thanjson. - Add versioning to
BrokerMessageand implement theBrokerMessageV1andBrokerMessageV1Payloadto be able to work with different microservice versions in the future. - Refactor
BrokerPublisher.sendmethod to follow the(message: BrokerMessage) -> Noneprototype instead of a big list of arguments referred to the messages attributes. - Refactor
brokers.publishersmodule.- Add
BrokerPublisherbase class with asend(message: BrokerMessage) -> Awaitable[None]method. - Add
BrokerPublisherQueuebase class with anenqueue(message: BrokerMessage) -> Awaitable[None]and adequeue() -> Awaitable[BrokerMessage]methods. - Add
KafkaBrokerPublisheras thekafka's implementation of the publisher. - Add
PostgreSqlBrokerPublisherQueueas thepostgresimplementation of the publisher's message queue.
- Add
- Refactor
brokers.handlers.- Add
BrokerSubscriberbase class with areceive() -> Awaitable[BrokerMessage]method. - Add
BrokerSubscriberQueuebase class with anenqueue(message: BrokerMessage) -> Awaitable[None]and adequeue() -> Awaitable[BrokerMessage]methods. - Add
KafkaBrokerSubscriberas thekafka's implementation of the subscriber. - Add
PostgreSqlBrokerSubscriberQueueas thepostgresimplementation of the subscriber's message queue.
- Add
- Refactor
DynamicBrokerandDynamicBrokerPoolasBrokerClientandBrokerClientPool. The newBrokerClienthas 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.