forked from ask/carrot
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathChangelog
More file actions
200 lines (133 loc) · 7.08 KB
/
Changelog
File metadata and controls
200 lines (133 loc) · 7.08 KB
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
================
Change history
================
0.4.5 [2008-06-15 01:58 P.M CET] askh@opera.com
------------------------------------------------------------------
**BACKWARD-INCOMPATIBLE CHANGES**
* the exchange is now also declared in the ``Publisher``. This means
the following attributes (if used) must be set on *both
the ``Publisher`` and the ``Consumer``:
``exchange_type``, ``durable`` and ``auto_delete``.
**IMPORTANT BUGS**
* No_ack was always set to ``True`` when using ``Consumer.iterconsume``.
0.4.4 [2008-06-15 01:58 P.M CET] askh@opera.com
------------------------------------------------------------------
* __init__.pyc was included in the distribution by error.
0.4.3 [2008-06-13 09:26 P.M CET] askh@opera.com
------------------------------------------------------------------
* Fix typo with long_description in ``setup.py``.
0.4.2 [2008-06-13 08:30 P.M CET] askh@opera.com
------------------------------------------------------------------
* Make sure README exists before reading it for ``long_description``.
Thanks to jcater.
* ``discard_all``: Use ``AMQP.queue_purge`` if ``filterfunc`` is not
specified
0.4.1 [2008-06-08 04:21 P.M CET] askh@opera.com
------------------------------------------------------------------
* Consumer/Publisher now correctly sets the encoder/decoder if they
have been overriden by setting the class attribute.
0.4.0 [2008-06-06 01:39 P.M CET] askh@opera.com
------------------------------------------------------------------
**IMPORTANT** Please don't use ``Consumer.wait`` in production. Use either
of ``Consumer.iterconsume`` or ``Consumer.iterqueue``.
**IMPORTANT** The ``ack`` argument to ``Consumer.process_next`` has been
removed, use the instance-wide ``auto_ack`` argument/attribute instead.
**IMPORTANT** ``Consumer.message_to_python`` has been removed, use
``message.decode()`` on the returned message object instead.
**IMPORTANT** Consumer/Publisher/Messaging now no longer takes a backend
instance, but a backend class, so the ``backend`` argument is renamed to
``backend_cls``.
*WARNING* ``Consumer.process_next`` has been deprecated in favor of
``Consumer.fetch(enable_callbacks=True)`` and emits a ``DeprecationWarning``
if used.
* ``Consumer.iterconsume``: New sane way to use basic_consume instead of ``Consumer.wait``:
(Consmer.wait now uses this behind the scenes, just wrapped around
a highly unsafe infinite loop.)
* Consumer: New options: ``auto_ack`` and ``no_ack``. Auto ack means the
consumer will automatically acknowledge new messages, and No-Ack
means it will disable acknowledgement on the server alltogether
(probably not what you want)
* ``Consumer.iterqueue``: Now supports infinite argument, which means the
iterator doesn't raise ``StopIteration`` if there's no messages,
but instead yields ``None`` (thus never ends)
* message argument to consumer callbacks is now a
``carrot.backends.pyamqplib.Message`` instance. See `[GH #4]`_.
Thanks gregoirecachet!
.. _`[GH #4]`: http://github.com/ask/carrot/issues/closed/#issue/4
* AMQPConnection, Consumer, Publisher and Messaging now supports
the with statement. They automatically close when the with-statement
block exists.
* Consumer tags are now automatically generated for each class instance,
so you should never get the "consumer tag already open" error anymore.
* Loads of new unit tests.
0.4.0-pre7 [2009-06-03 05:08 P.M CET] askh@opera.com
------------------------------------------------------------------
* Conform to pep8.py trying to raise our pypants score.
* Documentation cleanup (thanks Rune Halvorsen)
0.4.0-pre6 [2009-06-03 04:55 P.M CET] askh@opera.com
------------------------------------------------------------------
* exclusive implies auto_delete, not durable. Closes #2.
Thanks gregoirecachet
* Consumer tags are now automatically generated by the class module,
name and a UUID.
* New attribute ``Consumer.warn_if_exists:``
If True, emits a warning if the queue has already been declared.
If a queue already exists, and you try to redeclare the queue
with new settings, the new settings will be silently ignored,
so this can be useful if you've recently changed the
`routing_key` attribute or other settings.
0.4.0-pre3 [2009-05-29 02:27 P.M CET] askh@opera.com
------------------------------------------------------------------
* Publisher.send: Now supports message priorities (a number between ``0``
and ``9``)
* Publihser.send: Added ``routing_key`` keyword argument. Can override
the routing key for a single message.
* Publisher.send: Support for the ``immediate`` and ``mandatory`` flags.
0.4.0-pre2 [2009-05-29 02:27 P.M CET] askh@opera.com
------------------------------------------------------------------
* AMQPConnection: Added ``connect_timeout`` timeout option, which is
the timeout in seconds before we exhaust trying to establish a
connection to the AMQP server.
0.4.0-pre1 [2009-05-27 04:27 P.M CET] askh@opera.com
------------------------------------------------------------------
* This version introduces backends. The consumers and publishers
all have an associated backend. Currently there are two backends
available; ``pyamqlib`` and ``pyqueue``. The ``amqplib`` backend
is for production use, while the ``Queue`` backend is for use while
unit testing.
* Consumer/Publisher operations no longer re-establishes the connection
if the connection has been closed.
* ``Consumer.next`` has been deprecated for a while, and has now been
removed.
* Message objects now have a ``decode`` method, to deserialize the
message body.
* You can now use the Consumer class standalone, without subclassing,
by registering callbacks by using ``Consumer.register_callback``.
* Ability to filter messages in ``Consumer.discard_all``.
* carrot now includes a basic unit test suite, which hopefully will
be more complete in later releases.
* carrot now uses the Sphinx documentation system.
0.3.9 [2009-05-18 04:49 P.M CET] askh@opera.com
--------------------------------------------------------------
* Consumer.wait() now works properly again. Thanks Alexander Solovyov!
0.3.8 [2009-05-11 02:14 P.M CET] askh@opera.com
--------------------------------------------------------------
* Rearranged json module import order.
New order is cjson > simplejson > json > django.util.somplejson
* _Backwards incompatible change:
Have to instantiate AMQPConnection object before passing
it to consumers/publishers. e.g before when you did
>>> consumer = Consumer(connection=DjangoAMQPConnection)
you now have to do
>>> consumer = Consumer(connection=DjangoAMQPConnection())
or sometimes you might even want to share the same connection with
publisher/consumer.
0.2.1 [2009-03-24 05:48 P.M CET] askh@opera.com
--------------------------------------------------------------
* Fix typo "package" -> "packages" in setup.py
0.2.0 [2009-03-24 05:23 P.M ]` askh@opera.com
--------------------------------------------------------------
* hasty bugfix release, fixed syntax errors.
0.1.0 [2009-03-24 05:16 P.M ]` askh@opera.com
--------------------------------------------------------------
* Initial release