forked from foundit/Piped
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGES.txt
195 lines (144 loc) · 8.21 KB
/
CHANGES.txt
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
================================ Next release ================================
Features:
- ZooKeeper: A ZooKeeper-contrib is now available, for interacting
with ZooKeeper ensembles. In addition to a ZooKeeper-client
provider, a few processors were added as well.
- AMQP: Support for providing AMQP-connections, consuming messages
and processing them in pipelines, as well as a simple helper
for creating and providing AMQP-based RPC-clients.
- Built-in and contrib providers now use "processor: ..." instead
of "pipeline: ...", and are able to depend on arbitrary dependencies.
The dependencies are invoked with the baton as the first and
only argument.
This makes it easier for one provider to call a function on another
provider.
- Different twisted reactors can now be selected by using the
"-r/--reactor" arguments to the "piped" script. See "--help-reactors"
for a description of the available reactors.
- The web-provider now supports "listen" as a an optional parameter
instead of "port". The new "listen" parameter is a "strport", which
enables listening to single interface / configuring SSL sites etc.
For more information about strports, see
http://twistedmatrix.com/documents/current/api/twisted.application.strports.html
- It is now possible to check whether a "piped.dependencies.DependencyMap" contains
a dependency (which may or may not currently be available) by using the "in"
operator.
- "piped.event.Event.wait_until_fired()" now takes an optional "timeout" argument.
If the event has not fired before the timeout is reached, a
"piped.exceptions.TimeoutError" is raised. The default timeout of ``None`` means
no timeout.
- "InstanceDependency", "ResourceDependency" and "DependencyMap" in
"piped.dependencies" now has support for a timeout keyword argument to
".wait_for_resource()". If the resource is not available before the timeout
is reached, a "piped.exceptions.TimeoutError" is raised.
- encode-json now passes the `indent`-option to `json.dumps`.
- Configuration includes now support including files at a sub-path in the
current configuration. See the configuration documentation for more details.
New processors:
- get-zookeeper-children: Get a list of children for a ZooKeeper node.
- get-zookeeper-data: Get the data of a ZooKeeper node.
- zookeeper-node-exists: Check whether a given ZooKeeper node exists.
- set-zookeeper-data: Set the contents of a ZooKeeper node.
- create-zookeeper-node: Create a ZooKeeper node.
- web-client-get-page: Getting a web page.
Internal changes:
- piped.processing now uses stores the processor name under the
'__processor__' key instead of 'processor', enabling processors to
take 'processor' as a keyword argument.
- piped and contrib plugins no longer use namespace packages, but uses the
same scheme as twisted for loading external plugins. This means that
plugins (both processors and providers) are automatically found if they
are available in a module or package under the folder "piped/plugins"
anywhere on sys.path.
- DummyRequest moved back from web_provider to test_web_provider as it uses
code from the twisted test suite, which shouldn't be used in production.
Backward-incompatible changes:
- The syntax for creating processors in the YAML configuration has changed.
Using "processor: processor_name" is no longer supported. Use
- processor_name
OR
- processor_name:
foo: bar
OR
- __processor__: processor_name
foo: bar
instead.
- The processors proxy-forward and chain-web-requests were removed because
they used code from the twisted test suite, which shouldn't be used in
production. They might come back at a later time, but no time-frame can
be given at this moment.
- "piped.dependencies.DependencyMap.__in__" has been removed. Use
".is_available" instead.
- trap-failure now sets the Failure-object instead of just the exception-type.
Bug fixes:
- #21: When tracing, if a processor asynchronously raised an exception,
the trace token could be lost, causing the trace to be incomplete.
- #18: Twisted 11.1 changed some default behaviour, causing debug-mode
and tracing to break.
- #12: pip may now be used to install/uninstall both piped and contrib
packages.
- #19: DummyRequest are now only used in the tests, in order to avoid using
code from the twisted test suite in production.
- dict_set_path did not deal with dict-lookups causing AttributeErrors.
========================== Release 0.2.0 2011-10-17 ==========================
Features:
- Tracing: Processing in pipelines can now be traced. See the tracing
tutorial.
- web_provider: The web resources now support an additional setting in
the routing configuration: "no_resource_pipeline", which acts like
catch-all pipelines that is used to render requests for potentially
nested child resources that does not have any resource (and would
otherwise have resulted in a 404).
- Support for acting like a Proxy. (see the proxy-forward processor).
- Added a new YAML constructor: !path, which is used to refer to input
that should be retrieved from the specified path inside the baton.
It is intended to be used by processors to avoid having to have two
separate keywords for input that either come from the configuration
or from the current baton.
See processors.base.Processor.get_input(...).
- YAML-configurations can now be executed by piped like scripts using
the shebang: #!/usr/bin/env piped -ns
- chained_consumers and chained_error_consumers may now occur at any
level of nesting within the pipeline configuration. Previously,
chained_error_consumers were limited to the root level.
- Made the ordering of consumers vs chained_consumers explicit:
chained_consumers now always take precedence over consumers. See
the pipelines topic page for more details.
Bug fixes:
- Allow loops in the processor graphs to include the source processors.
- fixed a bug that resulted in processors not having
instance_depends_on/instance_provides.
- web_provider: Fixed a bug that caused the automatic closing of http
requests to stop working if a sink in the pipeline returned the
request.
Changed processors:
- decode-json: Added support for decoding from file-like objects.
- for-each: Now iterates over values when processing a dictionary, returning
a new dictionary with the original keys mapping to their respective processed
values.
- run-pipeline: Can now get the name of the pipeline to invoke from the
baton.
New processors:
- call-dependency: Calls a method on a dependency.
- chain-web-requests: Chains two web requests together. See proxy-forward.
- extract-web-request-arguments: Extract query string arguments from a
twisted.web.server.Request-like object.
- log: Logs a message with the configured log-level.
- prefix-string: Prefixes the string at *input_path* with the
*prefix*.
- proxy-forward: Forwards requests to another server.
- trap-failure: Traps failures of the specified types.
Internal changes:
- The dependencies of an object can now be retrieved from the
DependencyManager.
- util.BatonJSONEncoder can be used to encode virtually any object
to JSON by falling back to using the result of repr(obj) if it
cannot otherwise be encoded.
- __getitem__ has been added to evaluators and processor graphs allowing
direct access to their processors.
- ConcatenatedFile is no longer a subclass of StaticFile, but rather a
twisted.web.resource.Resource subclass.
- DummyRequest moved from test_web_provider to web_provider, as it might
prove useful outside of the test suite
========================== Release 0.1.0 2011-06-14 ==========================
This was the first official release.