-
Notifications
You must be signed in to change notification settings - Fork 1
/
CHANGELOG
119 lines (94 loc) · 3.48 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
TODO 1.2.0
Policies declaration via app config (https://www.rabbitmq.com/parameters.html)
Run separate service/consumer as worker
Add ABC and typevars to prevent circular import hell
Refactor Processor:
- use Annotated type for injections
- extract arguments from json body using path
- make it possible to use different encoders/decoders
- partial update based on returning type path
Separate config parser layer and schema layer (kinda DTO for aio-pika or other lower layer)
MORE TESTS
Replace setup.py with pyproject.toml
Make it possible to run separate consumers or services using cmd
\ like`mela run service_name consumer_name`
API for extensions
(Discussible) Rewrite it to `aiormq`
Ability to autogenerate publishers for consumers and services
Solve typing issues
CI/CD: add type and lint check into pipe
Make it possible to configure app not only from Yaml file
Make it possible to configure app from Yaml file with custom path
Benchmarks
Write quickstart
1.1.0
Readme update. Version bumps. Some examples update. Imported IncomingMessage and Message
into Mela, to encapsulate dependencies.
1.1.0a7
Hotfix for ChannelInvalidStateError in publishers
1.1.0a6
Fix message acknowledgement in RPC client
1.1.0a5
Fix `prefetch_count` passing up to consumers
1.1.0a4
Fix missing requirement
1.1.0a3
Fix missing component type in dependency resolver
v 1.1.0a2
Add missing requirement, anyio
Fix bug with subclasses injection in static params
Fix bug in RPC client implementation
v 1.1.0a1
Pydantic based app settings
Inject arguments to endpoints based on type annotations (FastAPI-like)
Inject logger or other components
v 1.0.11
Make it possible to just register endpoints, without running loop (method `Mela.setup()`)
v 1.0.10
Implemented headers for RPC clients. Check it here: `examples/rpc/client.py`
v 1.0.9
Fixed issue #6:
It seems that unhandled exceptions which cause the app to quit automatically nack incoming messages
without requeueing them, leading to data loss. This is true of exceptions thrown within both mela
code (e.g. json deserialisation exceptions) as well as within application code. Confirmed in 1.0.5 and 1.0.7
Some logging improvements
Fixed the bug with duplicated anonymous queues for one RPC client.
Added dead letter exchange example and fixed dead letter exchange default routing key to empty string
Added an option to directly configure requeue strategy on broken messages for consumers
v 1.0.8
RPC services and clients.
Removed non-direct publishing.
v 1.0.7
Added simple exception handling.
v 1.0.4
Added an option to use async generators as service processors
Added support of different exchange types
v 1.0.3
Implemented dynamic routing key and other message params
Added example of splitter service
Project was renamed into `Mela`
First release on GitHub and PyPI
v 1.0.2
Bumped version of aio-pika from 6.7.1 up to 6.8.0
Replaced PyYAML with envyaml
v 1.0.1
Added an ability to cancel message consuming.
v 1.0.0
First async release
v 0.1.8
Added optional timeout parameter to Mela.run()
v 0.1.7
Added possibility to realize `splitter` pattern (https://www.enterpriseintegrationpatterns.com/patterns/messaging/Sequencer.html)
See `example_splitter.py` for more details
v 0.1.6a0
Changed connection processing
v 0.1.5
Fixed spamming connections bug
v 0.1.4
Draining events forever
v 0.1.3
Added possibility to reject message in service decorator.
v 0.1.2
Changed execution method according to Kombu documentation about multiple consumers
Added GitLab CI integration.
Added changelog