-
Notifications
You must be signed in to change notification settings - Fork 62
/
ChangeLog
299 lines (248 loc) · 10.8 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
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
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
Unreleased
* Tasklet: Support for lambda functions in Tasklets
* pack: bugfix when using local imports
* jug: better error detection for permission problems
Version 2.3.1 Sun 5 November 2023 by luispedro
* jug: update for Python 3.12
Version 2.3.0 Tue 25 June 2023 by luispedro
* jug shell: Add `get_filtered_tasks()`
* jug: Fix `jug --version` (which had been broken in the refactoring to
use subcommands)
* jug shell: Fix message in jug shell when there are no dependencies (it
would repeatedly print the message stating "this will only be run once")
* jug pack: Make it much faster to invalidate elements
* file_store: ensure that the temporary directory exists
* jug: Drops support for Python 3.4
Version 2.2.3 Tue 26 May 2023 by luispedro
* jug shell: Fix for newer versions of IPython
Version 2.2.2 Tue 19 Jul 2022 by luispedro
* Fix `jug cleanup` when packs are used (`jug pack`)
Version 2.2.1 Thu 19 May 2022 by luispedro
* Fix `jug cleanup` for redis backend
Version 2.2.0 Tue 3 May 2022 by luispedro
* Add `jug pack` subcommand
* Remove six dependency
* Make get_tasks() return a copy of the tasks
Version 2.1.1 Thu 18 Mar 2021 by luispedro
* Include requirements files in distribution
Version 2.1.0 Thu 18 Mar 2021 by luispedro
* Improvements to webstatus (by Robert Denham)
* Removed Python 2.7 support
* Fix output encoding for Python 3.8
* Fix bug mixing mapreduce() & status --cache
* Make block_access (used in mapreduce()) much faster (20x)
* Fix important redis bug
* More precise output in `cleanup` command
Version 2.0.2 Thu Jun 11 2020 by luispedro
* Fix jug argument parsing
Version 2.0.1 Thu Jun 11 2020 by luispedro
* Fix handling of `JUG_EXIT_IF_FILE_EXISTS` environmental variable
* Fix passing an argument to jug.main() function
* Extend `--pdb` to exceptions raised while importing the jugfile (issue
#79)
version 2.0.0 Fri Feb 21 2020 by luispedro
* jug.backend.base_store has 1 new method 'listlocks'
* jug.backend.base_lock has 2 new methods 'fail' and 'is_failed'
* Add 'jug execute --keep-failed' to preserve locks on failing tasks.
* Add 'jug cleanup --failed-only' to remove locks from failed tasks
* 'jug status' and 'jug graph' now display failed tasks
* Check environmental exit variables by default (suggested by Renato Alves, issue #66)
* Fix 'jug sleep-until' in the presence of barrier() (issue #71)
version 1.6.9 Tue Aug 6 2019 by luispedro
* Fix saving on newer version of numpy
version 1.6.8 Wed July 10 2019 by luispedro
* Add `cached_glob()` function
* Fix NoLoad (issue #73)
* Fix `jug shell`'s invalidate function with Tasklets (issue #77)
version 1.6.7 Fri Apr 13 2018 by luispedro
* Fix issue with deeply recursive dependency structures and barrier()
* Allow mapreduce.map() results to be used as dependencies
version 1.6.6 Sat Apr 7 by luispedro
* Fix bug in shell's invalidate() function
* Fix wrong dependency handling with mapreduce.map()
version 1.6.5 Mon Mar 12 by luispedro
* Add get_tasks() to 'jug shell' and document 'from jug.task import
alltasks' (patch by Renato Alves)
version 1.6.4 Wed Nov 1 by luispedro
* Fix exit_after_n_tasks. It would previously execute one task too many
version 1.6.3 Wed Nov 1 by luispedro
* Add citation request
version 1.6.2 Thu Oct 26 by luispedro
* Add return_value argument to jug_execute
* Add exit_env_vars
version 1.6.1 Thu Aug 29 by luispedro
* Fix bug with `invalidate()` in the shell
version 1.6.0 Thu Aug 24 by luispedro
* Add 'graph' subcommand - Generates a graph of tasks
* 'jug execute --keep-going' now ends with non-zero exit code in case of failures
* Fix bug with cleanup in dict_store not providing the number of removed records
* Add 'jug cleanup --keep-locks' to remove obsolete results without affecting locks
version 1.5.0 Sun Jul 16 2017 by luispedro
* Add 'demo' subcommand
* Add is_jug_running() function
* Fix bug in finding config files
* Improved --debug mode: check for unsupported recursive task creation
* Add invalidate() to shell environment
* Use ~/.config/jug/jugrc as configuration file
* Add experimental support for extensible commands, use
~/.config/jug/jug_user_commands.py
* jugrc: execute_wait_cycle_time_secs is now execute_wait_cycle_time
* Expose sync_move in jug.utils
version 1.4.0 Tue Jan 3 2017 by luispedro
* Fix bug with writing very large objects to disk
* Smarter handling of --aggressive-unload (do not unload what will be
immediately necessary)
* Work around corner case in `jug shell` command
* Add test-jug subcommand
* Add return_tuple decorator
version 1.3.0 Tue Nov 1 2016 by luispedro
* Update `shell` subcommand to IPython 5
* Use ~/.config/jugrc as configuration file
* Cleanup usage string
* Use `bottle` instead of `web.py` for webstatus subcommand
* Add `jug_execute` function
* Add timing functionality
version 1.2.2 Sat Jun 25 2016 by luispedro
* Fix bugs in shell subcommand and a few corner cases in encoding/decoding
results
version 1.2.1 Mon Feb 15 2016 by luispedro
* Changed execution loop to ensure that all tasks are checked (issue #33
on github)
* Fixed bug that made 'check' or 'sleep-until' slower than necessary
* Fixed jug on Windows (which does not support fsync on directories)
* Made Tasklets use slightly less memory
version 1.2 Wed Aug 19 2015 by luispedro
* Use HIGHEST_PROTOCOL when pickle()ing
* Add compress_numpy option to file_store
* Add register_hook_once function
* Optimize case when most (or all) tasks are already run
* Add --short option to 'jug status' and 'jug execute'
* Fix bug with dictionary order in kwargs (fix by Andreas Sorge)
* Fix ipython colors (fix by Andreas Sorge)
* Sort tasks in 'jug status'
version 1.1 Tue Mar 03 2015 by luispedro
* Python 3 compatibility fixes
* fsync(directory) in file backend
* Jug hooks (still mostly undocumented, but already enabling internal code
simplification)
version 1.0 Tue May 20 2014 by luispedro
* Renamed release candidate to final
version 1.0rc0 Mon Apr 21 2014 by luispedro
* Adapt status output to terminal width (by Alex Ford)
* Add a newline at the end of lockfiles for file backend
* Add --cache-file option to specify file for ``status --cache``
version 0.9.7 Tue Feb 18 2014 by luispedro
* Fix use of numpy subclasses
* Fix redis URL parsing
* Fix ``shell`` for newer versions of IPython
* Correctly fall back on non-sqlite ``status``
* Allow user to call set_jugdir() inside jugfile
version 0.9.6 Tue Aug 6 2013 by luispedro
* Faster decoding
* Add jug-execute script
* Add describe() function
* Add write_task_out() function
* Allow for set_jugdir() to be called inside jugfile
version 0.9.5 Mon May 27 2013 by luispedro
* Added debug mode
* Even better map.reduce.map using blocked access
* Python 3 support
* Make sqlite3 a soft dependency for ``status --cache``
* Load config when embedding ipython
* Documentation improvements
version 0.9.4 Mon Apr 15 2013 by luispedro
* Add CustomHash wrapper to set __jug_hash__
* Print traceback on import error
* Exit when no progress is made even with barrier
* Use Tasklets for better jug.mapreduce.map
* Use Ipython debugger if available (patch by Alex Ford)
* Faster --aggressive-unload
* Add currymap() function
version 0.9.3 Sun Dec 2 2012 by luispedro
* Fix parsing of ports on redis URL (patch by Alcides Viamontes)
* Make hashing robust to different orders when using randomized hashing
(patch by Alcides Viamontes)
* Allow regex in invalidate command (patch by Alcides Viamontes)
* Add --cache --clear suboption to status
* Allow builtin functions for tasks
* Fix status --cache (a general bug which seems to be triggered mainly by
bvalue() usage).
* Fix CompoundTask (broken by earlier __jug_hash__ hook introduction)
* Make Tasklets more flexible by allowing slicing with Tasks (previously,
slicing with tasks was **not** allowed)
version 0.9.2 Sun Nov 4 2012 by luispedro
* More flexible mapreduce()/map() functions
* Make TaskGenerator pickle()able and hash()able
* Add invalidate() method to Task
* Add --keep-going option to execute
* Better help messsage
version 0.9.1 Mon Jun 11 2012 by luispedro
* Add --locks-only option to cleanup subcommand
* Make cache file (for `status` subcommand) configurable
* Add `webstatus` subcommand
* Add bvalue() function
* Fix bug in `shell` subcommand (`value` was not in global namespace)
* Improve identity()
* Fix bug in using Tasklets and --aggressive-unload
* Fix bug with Tasklets and sleep-until/check
version 0.9 Mon Dec 5 2011 by luispedro
* In the presence of a barrier(), rerun the jugfile
* Add set_jugdir to public API
* Added CompoundTaskGenerator
* Support subclassing of Task
* Avoid creating directories in file backend unless it is necessary
* Add jug.mapreduce.reduce (which mimicks the builtin reduce)
version 0.8.1 Tue Jul 5 2011 by luispedro
* Fix redis backend for new version of client module
* Faster file store for large files
* Fix `invalidate` with Tasklets
* Install tests and have them be runnable
* Changed hash computation method. This has a special case on numpy arrays
(for speed) and is more extensible through a __jug_hash__ hook
* Fix bug with Tasklet dependencies not being properly taken into account
* Fix shell subcommand in newer versions of ipython
* Add __file__ attribute to fake jugmodule
version 0.8 Sun Mar 27 2011 by luispedro
* Tasklets
* Fix bug in sleep-until
* Fix bug in cleanup
* Fix bug in status with --cache options (was non functional)
* Fix bug in CompoundTask (you needed to run jug execute twice before)
version 0.7.4 Sun Jan 16 2011 by luispedro
* Fix case where ~/.jug/configrc does not exist
* Print host name to lock file on file_store
* Refactored implementation of options
* Fix unloading tasks that have not run
* Fix mapreduce for empty input
version 0.7.3 Tue Jan 4 2011 by luispedro
* Parse ~/.jug/configrc
* Fix bug with waiting times
* Special case saving of numpy arrays
* Add more expressive jugdir syntax
* Save dict_store backend to disk
version 0.7.2 Wed Nov 3 2010 by luispedro
* Add missing files to distribution
version 0.7.1 Mon Nov 2 2010 by luispedro
* sleep-until subcommand
* Fix for barrier() and mapreduce interaction
* Documentation improvement
version 0.7 by luispedro
* `barrier()`
* better ``shell`` command
* Rewrote method for loading jugfiles
* Tasks have original function accessible as `f`
version 0.6.1 Mon Sep 13 2010 by luispedro
* New check command
* load_all() inside shell
version 0.5.5-git Wed May 5 2010 by luispedro
* New cached status subcommand. Much faster.
version 0.5.3 Mon Apr 26 2010 by luispedro
* New backend compression methods
version 0.5.2 Tue Mar 30 2010 by luispedro
* New `shell` command
* Compression in redis backend
* Improvements in speed for 'invalidate' command
version 0.5 Sun Dec 13 2009 by luispedro
* redis backend
* dictionary dependencies
* changed command-line interface (jug command jugfile ...)