File: CHANGELOG

package info (click to toggle)
execnet 1.0.9-0.1
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd, wheezy
  • size: 768 kB
  • ctags: 699
  • sloc: python: 6,456; makefile: 89; sh: 1
file content (208 lines) | stat: -rw-r--r-- 7,309 bytes parent folder | download
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
201
202
203
204
205
206
207
208
1.0.9
--------------------------------

- add gw.reconfigure() to configure per gateway options.  Currently supported:
  py2str_as_py3str and py3str_as_py2str to configure string deserialization

- channel.makefile() objects now have a isatty() returning False

- group.allocate_id(spec) allows to early-determine an (automatic) id
  
- internal refactorings and cleanups (thanks Ronny Pfannschmidt):
  - refactor message types into received handler functions
  - refactor b(chr(opcode)) to bchr(opcode)
  - reorder Message ctor args, rename msgtype to msgcode
  - refactor gateway.send to take message's init args instead of a message
  - inline and remove Message.writeto/readfrom
  - refactor collection loading to avoid the indirection over tuple
  - remove the unused NamedThreadPool


1.0.8
--------------------------------

- new ``gateway.remote_exec(func, **kwargs)`` style fo executing
  a pure function with parameters.  The function on the remote
  side also needs to accept a ``channel`` which allows it to
  communicate back and forth.  Thanks to Ronny Pfannschmidt
  for implementing it with special kudos to Maciej Fijalkowski
  for writing a "pure-function" checker so that on Python2.6
  onwards non-pure functions will be rejected.

- enhance rsyncing to also sync permissions (stat().st_mode) 
  of directories and files. 
  (should also resolve http://bitbucket.org/hpk42/py-trunk/issue/68/)

- fix rsyncing of symlinks, thanks to Charles Solar 
  (should also resolve http://bitbucket.org/hpk42/py-trunk/issue/70/)

- update internal usage of apipkg to 1.0b6

- remote_exec(module) now makes sure that the linecache is updated
  before reading and sending the source.  thanks Ronny, Matt. 

- removed all trailing whitespace from source files

1.0.7
--------------------------------

- try to avoid a random KeyboardInterrupt Error when threads
  are ending. 

- extend xspec syntax to allow for one or multiple "env:NAME=value" 
  environment variable settings which will be set on the remote side. 
  (thanks Jakub Gustak)

1.0.6
--------------------------------

- fix jython/windows interactions 
- fix waitclose/callback-with-endmarker race condition
- fix race condition where multiple threads sending data over channels
  would crash the serializer and process 

1.0.5
--------------------------------

- more care during receiver-thread finalization during interp-shutdown,
  should get rid of annoying and meaningless exceptions
- fix glitch in ssh-fileserver example 
- experimentally add "setup.py test" support - will run py.test 

1.0.4
--------------------------------

- try to deal more cleanly with interpreter shutdown setting globals to
  None. this avoids (hopefully) some bogus tracebacks at process exit. 

1.0.3
--------------------------------

- refine termination some more: CTRL-C and gateway.exit will 
  now try harder to interrupt remote execution.  this 
  helps to avoid left-over ssh-processes.
- fix read-on-non-blocking-files issue probably related to jython only:  
  the low-level read on subprocess pipes may be non-blocking, returning 
  less bytes than requested - so we now loop.
- Windows/python2.4: fix bug that killing subprocesses would fail
- make RemoteError and TimeoutError available directly on execnet namespace

- fix some doc and test issues (thanks thm and ronny), add ssh_fileserver example
- update internal copy of apipkg
- always skip remote tests if no ssh specs given

1.0.2 
--------------------------------

- generalize channel-over-channel sending: you can now have channels 
  anywhere in a data structure (i.e. as an item of a container type).
  Add according examples.

- automatically close a channel when a remote callback raises 
  an exception, makes communication more robust because until 
  now failing callbacks rendered the receiverthread unuseable 
  leaving the remote side in-accessible.

- internally split socket gateways, speeds up popen-gateways
  by 10% (now at <50 milliseconds per-gateway on a 1.5 GHZ machine) 

- fix bug in channel.receive() that would wrongly raise a TimeoutError 
  after 1000 seconds (thanks Ronny Pfannschmidt) 

1.0.1
--------------------------------

- revamp and better structure documentation

- new method: gateway.hasreceiver() returns True 
  if the gateway is still receive-active. remote_status
  now only carries information about remote execution status.

- new: execnet.MultiChannel provides basic iteration/contain interface

- new: execnet.Group can be indexed by integer

- new: group.makegateway() uses group.default_spec if no spec is given
  and the execnet.default_group uses ``popen`` as a default spec. 

- have popen-gateways use imports instead of source-strings,
  also improves debugging/tracebacks, as a side effect
  popen-gateway startup can be substantially faster (>30%)

- refine internal gateway exit/termination procedure
  and introduce group.terminate(timeout) which will
  attempt to kill all subprocesses that did not terminate
  within time.

- EOFError on channel.receive/waitclose if the other
  side unexpectedly went away.  When a gateway exits 
  it now internally sends an explicit termination message
  instead of abruptly closing.  

- introduce a timeout parameter to channel.receive() 
  and default to periodically internally wake up
  to let KeyboardInterrupts pass through.

- EXECNET_DEBUG=2 will cause tracing to go to stderr,
  which with popen slave gateways will relay back 
  tracing to the instantiator process.
  

1.0.0
--------------------------------

* introduce execnet.Group for managing gateway creation 
  and termination.  Introduce execnet.default_group through which 
  all "global" calls are routed.  cleanup gateway termination.
  All Gateways get an id through which they can be 
  retrieved from a group object.

* deprecate execnet.XYZGateway in favour of direct makegateway() calls.

* refine socketserver-examples, experimentally introduce a
  way to indirectly setup a socket server ("installvia")
  through a gateway url.

* refine and automatically test documentation examples 

1.0.0b3
--------------------------------

* fix EXECNET_DEBUG to work with win32 
* add support for serializing longs, sets and frozensets  (thanks
  Benjamin Peterson) 
* introduce remote_status() method which on the low level gives
  information about the remote side of a gateway
* disallow explicit close in remote_exec situation
* perform some more detailed tracing with EXECNET_DEBUG

1.0.0b2
--------------------------------

* make internal protocols more robust against serialization failures

* fix a seralization bug with nested tuples containing empty tuples
  (thanks to ronny for discovering it)

* setting the environment variable EXECNET_DEBUG will generate per
  process trace-files for debugging

1.0.0b1
----------------------------

* added new examples for NumPy, Jython, IronPython
* improved documentation
* include apipkg.py for lazy-importing
* integrated new serializer code from Benjamin Peterson
* improved support for Jython-2.5.1

1.0.0alpha2 
----------------------------

* improve documentation, new website

* use sphinx for documentation, added boilerplate files and setup.py 

* fixes for standalone usage, adding boilerplate files

* imported py/execnet and made it work standalone