forked from twisted/ampoule
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS.txt
167 lines (134 loc) · 6 KB
/
NEWS.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
Ampoule 19.12.0 (2019-12-21)
============================
- Replace all uses of twisted.python.log with twisted.logger.
- Don't return an already-dead worker to the ready pool.
Ampoule 19.6.0 (2019-06-18)
===========================
- Fix a process leak when a process exits non-zero on recycling.
Ampoule 0.3.1 (2017-12-10)
==========================
- Restored to original name after maintenance handover.
- Updated home page to new source code location.
- Minor python 2 compatibility issue in the tests (introduced in 0.3.0) fixed.
Ampoul3 0.3.0 (2017-12-10)
==========================
Changes
-------
- Python 3 support.
- Pyflakes fixes.
- No more trailing whitespace :).
- Migrated to Git.
- (Hopefully temporary) package name change while I wait for Valentino to
give me access to PyPI...
Ampoule 0.2.0 (2010-02-02)
==========================
Changes
--------
- Fixed bug #317287: Twisted was required by setup.py due to import
of application code to get the version number. The setup.py now
tries to do the same thing but if it fails it uses a separate
hardcoded version.
- Fixed bug #317077: Ampoule didn't work on windows xp due to childFD
customization, now on windows ampoule uses the standard 0,1,2 fds.
- Added pyOpenSSL as an explicit dependency since Twisted doesn't
require it but AMP does.
- Greatly simplify setup.py and support plain distutils too.
- Bootstrap code now supports context managers
- Support for execution deadline on child calls
- Parametrize the timeout signal to send to the child
- Pass arguments directly from the ProcessPool object for the child
process creation.
Ampoule 0.1 (2008-11-15)
==========================
Changes
--------
- Fixed bug #276841: Add timeout for subprocess calls.
The ProcessPool constructor now supports an additional timeout
argument that specifies a pool level timeout, in seconds, before
which every call ever made should return. Alternatively there is
also a per-call mechanism. Currently this second per-call system
is not available when using the remote pool service, so be sure
to set the timeout command line parameter at an high enough level
to satisfy all the possible commands. If a command doesn't require
an answer the timeout doesn't apply, of course.
The error returned when a call is timedout is 'error.ProcessTerminated'.
On *nix systems the process is terminated with signal 9, on windows
ampoule uses SIGTERM and returns error code 255.
Ampoule 0.0.5 (2008-11-12)
==========================
Changes
--------
- Fixed bug #259264, this fix introduces a number of changes in the
architecture of the project:
1. Removed childReactor argument form the process pool and added
a starter argument.
2. Introduced the concept of a starter object whose role is to
start subprocesses with given parameters. This makes it easier
to specify particular parameters (eg. new env variables) to the
child processes without needing to override many methods in the
pool using closures.
3. main.py is completely changed and now provides the ProcessStarter
object which is a default implementation of IStarter.
4. IStarter interface currently documents only 2 methods:
startAMPProcess
startPythonProcess
in the future it's possible that we will add an additional:
startProcess
that starts whichever process we want without requiring python,
also this might end up with the separation of ProcessPool in at
least 2 logical levels: the ProcessPool and a dispatcher that
talks with the children, in this way it would be possible to
create custom ProcessPools without changing much code or requiring
any special requirement on the children.
- Introduced a callRemote method on the ProcessPool that is basically
the same as doWork. Introduced for symmetry between all the RPC libraries
in Twisted.
- reactor short name and ampoule child class are now passed as the 2
last arguments rather than the first 2. So if you have written any
custom bootstrap code be sure to change sys.argv[1] and sys.argv[2]
into sys.argv[-2] and sys.argv[-1] respectively.
Ampoule 0.0.4 (2008-11-03)
==========================
Changes
--------
- Ampoule parent process and child processes now talk using FDs 3 (in)
and 4 (out) in order to avoid problems with libraries that mistakenly
send error lines to stdout (yes, I'm looking at you gtk+)
Ampoule 0.0.3 (2008-10-01)
==========================
Features
--------
- Added a Twisted Matrix plugin to run a process pool service that
can be used over the network using an AMP client.
- Added ability to change the reactor used to run the children
Changes
-------
- If you wrote your own bootstrap code for the pool you should change
the way it works because now it takes 2 arguments, sys.argv[1] is
the reactor short name while sys.argv[2] is still the AMPChild path.
If you don't use startAMPProcess you probably have nothing to worry
about.
Fixes
-----
- Now the process pool doesn't raise an error when you use a command
that doesn't require an answer.
Ampoule 0.0.2 (2008-09-26)
==========================
Features
--------
- Support process recycling after predefined number of calls.
Changes
-------
- ProcessPool argument max_idle is now maxIdle to comply with Twisted
style guidelines.
- ProcessPool.startAWorker is now a synchronous call
- removed ampoule.runner module because it was essentially useless,
if you want to change subprocess startup behavior pass it as an
argument by overriding the processFactory with a closure like this:
from ampoule.main import startAMPProcess
from ampoule.pool import ProcessPool
pp = ProcessPool()
def myProcessFactory(*args, **kwargs):
kwargs['bootstrap'] = myBootstrapCode
return startAMPProcess(*args, **kwargs)
pp.processFactory = staticmethod(myProcessFactory)