-
Notifications
You must be signed in to change notification settings - Fork 1
/
roadmap.txt
509 lines (392 loc) · 21.6 KB
/
roadmap.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
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
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
v 0.3.3 (2016_02_05) : added the PKGBUILD file, improved code readibilty
o Merge pull request #57 from ytterbium/PKGBUILD
Created a PKGBUILD to easily build package and install kital in ArchLinux based distribution.
o Merge branch 'ytterbium-stringsize'
changed the big numbers in size_as_str in 10-power floats
o removed all initial underscore from fonctions' arguments.
(based on a suggestion from ytterbium)
o removed removed all \ useless characters at the end of the strings.
(based a suggestion from ytterbium (issue #58))
o in pylintrc, max-locals=17 and max-args=8
o various improvements in the code's documentation.
o 6 tests, pylint=10.0 for the four Python scripts
o version packaged and sent to Pypi (https://pypi.python.org/pypi/Katal)
v 0.3.2 (2016_01_25) : added the --verbosity argument, removed the --mute argument.
o added the --verbosity argument, removed the --mute argument
o katal.py : removed from the messages the hideous 'WARNING' word
o katal.py::fill_select__checks() : improved message
o 6 tests, pylint=10.0 for the four Python scripts
o version packaged and sent to Pypi (https://pypi.python.org/pypi/Katal)
v 0.3.1 (2016_01_25) : better messages
o katal.py::show_infos_about_source_path()+fill_select() : added a protection
against the FileNotFound exception (e.g. in case of broken links)
o in show_infos_about_source_path() and in fill_select(),
added a warning message if a file can't be read.
o all warnings are now printed in cyan
o improved various messages
o updated the documentation in katal.ini
o updated the documentation (README.md)
o 6 tests, pylint=10.0 for the four Python scripts
o version packaged and sent to Pypi (https://pypi.python.org/pypi/Katal)
v 0.3 (2016_01_20) : mode defined in the configuration file
o removed the --mode option : the mode is now defined in the configuration file
o modified show_infos_about_target_path() so that this function (in mode=nocopy)
doesn't display a "target name" column.
o 'PARAMETERS' > 'CFG_PARAMETERS'
o removed from CST__LINUXCONSOLECOLORS some unused colors
o added the where_is_configfile() to shrink main_warmup()
o fixed action__select() : in 'nocopy' mode, some operations are useless
o fixed read_parameters_from_cfgfile() : If the mode is set to 'nocopy',
parser["target"]["name of the target files"] is set to "%i" .
o added create_faked_target__nocopy.h + faked/katal.ini.nocopy
o improved various messages
o updated the documentation in katal.ini and in chart.txt
o 6 tests, pylint=10.0 for the four Python scripts
o version packaged and sent to Pypi (https://pypi.python.org/pypi/Katal)
o updated pylintrc : max-branches=14 (formerly =18)
v 0.2.9 (2016_01_19) : colored console output
o added colors to console messages for the Linux console :
o added the CST__PLATFORM constant
o added the CST__LINUXCONSOLECOLORS constant
o added an argument to msg() function, '_consolecolor'
o the welcome message in now displayed in white
o the message displayed if enough diskspace is available is now displayed in white
o error messages are now displayed in red
o show_infos_about_source_path() : improved the way extensions are displayed.
Before this commit, the sort was case sensitive (.JPG, .abc, .jpg, .kl, ...).
After this commit the sort is case insensitive (.abc, .jpg, .JPG, .kl, ...)
o in show_infos_about_source_path(), added a counter helping the user no to think
that the script has freezed.
o fixed argparse epilog in read_command_line_arguments()
o improved various messages
o 6 tests, pylint=10.0 for the four Python scripts
o version packaged and sent to Pypi (https://pypi.python.org/pypi/Katal)
v 0.2.8 (2016_01_19) : --mode=[copy|move|mirror]
o --mode=[copy|move|mirror] replaces from now --mirroronly and --move
o added fill_readme.py and README.md.template : both are used to
automatically fill the README.md file from the informations stored
in katal.py (namely, the __***__ strings) .
o added CST__ prefix at the beginning of global constants
o added documentation about global type(s)/constants/variables;
o added 4 sections at the beginning of the script : project's settings,
global variables, global constants, global types
o modified argparse's epilog in read_command_line_arguments()
o 6 tests, pylint=10.0 for the four Python scripts
o version packaged and sent to Pypi (https://pypi.python.org/pypi/Katal)
v 0.2.7 (2016_01_17) : fixed a critical bug
o modified main() so that this function doesn't have any argument,
allowing the setup.py to define a valid entry-point in the
program. Added a warning in main() so that this error does not
occur anymore.
o 6 tests, pylint=10.0 for the three Python scripts
o version packaged and sent to Pypi (https://pypi.python.org/pypi/Katal)
v 0.2.6 (2016_01_17) : reduced the number of global constants
o removed FULLNAME_DATABASE, TARGET_PATH,SOURCE_PATH, SOURCENAME_MAXLENGTH,
TAGSSTR_MAXLENGTH, HASHID_MAXLENGTH and TARGETNAME_MAXLENGTH constants.
o fixed tests/tests.py + tests/cfgfile5.ini ("c.5" -> "^c.5$")
o the value of DTIME_FORMAT_LENGTH is now automatically computed .
o improved the documentation in README.md and chart.txt
o improved messages in various functions
o updated pylintrc (max-locals=16)
o 6 tests, pylint=10.0 for the three Python scripts
o version packaged and sent to Pypi (https://pypi.python.org/pypi/Katal)
v 0.2.5 (2016_01_16) : --downloaddefaultcfg=[home|local]
o '-ddcfg' > '-dlcfg'
o --downloaddefaultcfg takes now a parameter : 'local' or 'home';
with 'home', the downloaded file is moved in the user's home directory.
o improved read_parameters_from_cfgfile : test the existence of some values in the cfg file
o (defaukt)katal.ini : fixed logfile's maximal size to 100 Mo
o added the chart.txt file
o welcome() : command line arguments are now displayed
o improved the documentation in README.md
o updated pylintrc (max-branches=18)
o 6 tests, pylint=10.0 for the three Python scripts
o version packaged and sent to Pypi (https://pypi.python.org/pypi/Katal)
v 0.2.4 (2016_01_15) : --mirroronly, logfiles are now sliced if too large
o new option : -si/--sourceinfos
o fixed the way log files are backuped when too large :
added a constant in the configuration files : [log file]maximal size
log files are now opened with the "a" mode by the logfile_opening() function
o added the LOGFILE_SIZE constant
o added the LOGFILE_DTIMEFORMATSTR constant, used by the backup_logfile() function
o added a function by refactoring the code : backup_logfile()
o refactoring the code : added function get_logfile_fullname()
o fixed create_faked_target.sh and took in account the --configfile option
o in main_warmup(), 'path' > 'cfg_path'
o in logfile_opening(), 'fullname' > 'logfile_fullname'
o improved the documentation in README.md
o improved messages in various functions
o updated pylintrc (max-branches=17)
o 6 tests, pylint=10.0 for the three Python scripts
o version packaged and sent to Pypi (https://pypi.python.org/pypi/Katal)
v 0.2.3 (2015_12_13) : --whatabout, cfg file in user directory,
--sourceinfos, 'iname'
o the config file is now searched in the Katal's user path
(i.e., on Linux systems, /home/user/.katal/katal.ini) and then in the current
directory.
o 'ci_name' > 'iname' in config files
o new option : --whatabout
o new option : -si/--sourceinfos
o new function : action__whatabout()
o new function : create_empty_db()
o new function : possible_paths_to_cfg()
o -ddcfg/--downloaddefaultcfg can now be called directly from the command line
o fixed several bugs linked to ARGS.downloaddefaultcfg
o improved create_faked_target.sh : added a --whatabout test
o renamed the function 'test_is_ntfs_prefix_mandatory()' > 'is_ntfs_prefix_mandatory()'
o improved messages in several functions
o improved the documentation in README.md
o updated pylintrc (max-branches=16)
o 6 tests, pylint=10.0 for the three Python scripts
o version packaged and sent to Pypi (https://pypi.python.org/pypi/Katal)
v 0.2.2 (2015_12_07) : improved documentation and messages
o improved message in main_warmup()
If the options -ddcfg/--downloaddefaultcfg are used, don't display
the advice to use them.
o improved message in action__downloadefaultcfg()
o improved the documentation in README.md
o updated pylintrc, along with pylint 1.5.0 modifications
o pylinted and fixed setup.py
o 6 tests, pylint=10.0 for the three Python scripts
o version packaged and sent to Pypi (https://pypi.python.org/pypi/Katal)
v 0.2.1 (2015_11_08)
o added option --usentfsprefix
A special prefix is required by the NTFS for long filenames. The --usentfsprefix
argument allow/disallow to use such a prefix.
o improved warning messages in show_infos_about_source_path() and in
show_infos_about_target_path().
o improved the documentation in README.md
o 6 tests, pylint=10.0 for the three Python scripts
o version packaged and sent to Pypi (https://pypi.python.org/pypi/Katal)
v.0.2.0 (2015_11_04)
o fixed an important bug : hashfile64() can't compute the hash with
the filename, the size or the date !
o improved the messages in fill_select()
o 6 tests, pylint=10.0 for the three Python scripts
o version packaged and sent to Pypi (https://pypi.python.org/pypi/Katal)
v.0.1.9 (2015_11_04)
o fixed an important bug : filenames whose length is greater than 260
characters are correctly taken in account.
o improved the documentation
o 6 tests, pylint=10.0 for the three Python scripts
o version packaged and sent to Pypi (https://pypi.python.org/pypi/Katal)
v.0.1.8 (2015_11_01)
o added the possibility to create tags automatically during a --select/--add .
o 6 tests, pylint=10.0 for the three Python scripts
o version packaged and sent to Pypi (https://pypi.python.org/pypi/Katal)
v.0.1.7 (2015_11_01)
o added --copyto parameter
o filled the faked/src directory
o updated create_faked_target.sh in order to test the --copyto parameter
o 6 tests, pylint=10.0 for the three Python scripts
o version packaged and sent to Pypi (https://pypi.python.org/pypi/Katal)
v.0.1.6 (2015_11_01)
o improved the string returned by size_as_str() : no more 'Go' (>'GB'), ...
o removed the _import_msg argument from msg()
o removed the 'verbosity' keyword from the cfg files and from the script
o improved a message in fill_select()
o 6 tests, pylint=10.0 for the three Python scripts
o version packaged and sent to Pypi (https://pypi.python.org/pypi/Katal)
v.0.1.5 (2015_10_30)
o fixed a bug in create_target_name() : the order of the if's mattered.
o set __statuspypi__ to 'Development Status :: 5 - Production/Stable'
o functions are now all described in README.md, in alphabetical order
o improved messages and documentation
o 6 tests, pylint=10.0
o version packaged and sent to Pypi (https://pypi.python.org/pypi/Katal)
v.0.1.4 (2015_10_30)
o ancient keywords like SOURCENAME_WITHOUT_EXTENSION have been renamed :
HASHID -> %%h
SOURCENAME_WITHOUT_EXTENSION -> %%f
SOURCENAME_WITHOUT_EXTENSION2 -> %%ff
SOURCE_PATH -> %%p
SOURCE_PATH2 -> %%pp
SOURCE_EXTENSION -> %%e
SOURCE_EXTENSION2 -> %%ee
SIZE -> %%s
DATE2 -> %%dd
DATABASE_INDEX -> %%i
INTTIMESTAMP -> %%t
HEXTIMESTAMP -> %%ht
o in filter, 'size' may have a suffix like 'kB', 'MB', ..., 'KiB', 'MiB' .
o added 'ci_name' to filters (=case insensitive regex)
o in configuration file, 'sieve' is now called 'filter'
o new option : --reset (delete database and target files, not the configuration file)
o new option : --strictcmp option (bit to bit comparision if two hashes are identical)
o new option : --move (move the files if --select or --add instead of copy them)
o new option : --findtag
o added a pylintrc file
o fixed main_warmup() : sys.exit(-1) is raised if no configuration file
o removed the --hashid option
o added constant PARTIALHASHID_BYTESNBR = 1000000
o 'ProjectError' > 'KatalError'
o added the thefilehastobeadded__db() function
o added 'partialhashid' and 'size' to the database
o hashfile64() now accepts a _stop_after argument, allowing to read only
the _stop_after first bytes of the file
o the function hashfile64() uses from now the file content, its name,
its size and its timestamp
o improved messages and documentation
o 6 tests, pylint=10.0
o version packaged and sent to Pypi (https://pypi.python.org/pypi/Katal)
v.0.1.3 (2015_10_25)
o remove HEXDATE from the target file's formats.
o remove the --quiet option
o rename option : -c > -cfg
o after --add or --select the informations about the target path are displayed,
not about the source directory.
o fixed a critical bug in action__target_kill()
o improved various messages
o improved the documentation
o 7 tests, pylint=10.0
o version packaged and sent to Pypi (https://pypi.python.org/pypi/Katal)
v.0.1.2 (2015_10_23)
o added the --rebase option : copy a target directory into a new one and change
the filenames.
o added two filename's formats : INTTIMESTAMP and HEXTIMESTAMP
o fixed action__add()
action__add() modifies the timestamp of the files in the target path so that
this timestamp is equal to the original file.
o replace fromtimestamp() by utcfromtimestamp()
o improved normpath() : special strings like ".." are now developped.
o improved remove_illegal_characters() : added the ("-", " ") characters to the list
of the forbidden characters.
o modified create_target_name()
create_target_name() takes from now another parameter, the _parameter one,
allowing to choose which config file is choosed when calling the function.
o added the SQL__CREATE_DB constant
o added main_actions_tags() function to relief main_actions().
o improved messages in action__rebase__write() : added the number of the current
file to be copied.
o fixed the message displayed in action__rebase__write()
o 7 tests, pylint=10.0
o version packaged and sent to Pypi (https://pypi.python.org/pypi/Katal)
v.0.1.1 (2015_10_21)
o fixed create_target_name() : added HEXDATE as a name format
o added 2 checks at the end of fill_select()
The function fill_select__checks() checks that :
(1) future filename's can't be in conflict with another file in SELECT
(2) future filename's can't be in conflict with another file already
stored in the target path
o fixed a bug in action__cleandbrm()
o fixed main_warmup() : show informations if the -ti/--targetinfos paramater is given
o fixed show_infos_about_source_path() : no returned value
o added the call to actions__infos() if the --infos option is used
o added normpath() function, used every time a os.path.* function is called
o 7 tests, pylint=10.0
o version packaged and sent to Pypi (https://pypi.python.org/pypi/Katal)
v.0.1.0 (2015_10_14)
o added the --targetpath option
o added the -n/--new option
o the configuration file, the trash/log/tasks subsubdirectories are now stored
inside a "katal system" subdirectory inside the target directory.
o check_before_commit_a_new_version.sh > check_and_commit_a_new_version.sh
the script has 2 new steps : 'pylint tests/tests.py' and 'git commit -a'.
o added a global constant, DATABASE_FULLNAME
o added a new global constant, DEFAULTCFGFILE_URL
o removed the parameters_infos() function
o added a new function, create_subdirs_in_target_path(), to relieve main_warmup()
o the function action__downloadefaultcfg() now returns a (bool)success
o the function action__downloadefaultcfg() now takes an argument, newname.
o fixed the tests script (targetpath is defined outside the test class/methods)
o the documentation, the error messages and katal.ini have been improved
o 7 tests, pylint=10.0
o version packaged and sent to Pypi (https://pypi.python.org/pypi/Katal)
v.0.0.9 (2015_10_12)
o --off option : don't write anything into the target directory or into
the database.
o added some files required by Pypi : setup.py, README.rst, setup.cfg and
the katal/ subdirectory
o added a function for the main entry point : main()
o the documentation, the error messages and katal.ini have been improved
o added the script check_before_commit_a_new_version.sh
o 7 tests, pylint=10.0
o first version to be packaged and send to Pypi (https://pypi.python.org/pypi/Katal)
v.0.0.8 (2015_10_04)
o --rmnotags option : added the action__rmnotags() function
o deleted files are moved to a trash subdirectory, inside the target
directory. (see issue #13)
o in modified action__target_kill() : return an error code if there's no database.
o fixed an important bug in modify_the_tag_of_some_files() :
the files are now correctly choosed along with the --to argument's content
o modified logfile__opening(): rename old log files so that they can be
easily deleted (issue #15)
o added a new column in the database : 'sourcedate'
o in logfile_opening() : if the opening mode is "append", save the last
log file with a different name to prevent its overwriting.
o added global constant TAG_SEPARATOR
o database 'name' and 'hashid' are unique from now;
o the documentation and the error messages have been improved
o 7 tests, pylint=10.0
v.0.0.7 (2015_09_28)
o --cleandbrm option : Remove from the database the missing files in
the target path; added the action__cleandbrm() function (issue #1)
o modified msg() function : new parameter "_important_msg"
If _important_msg is False, the message will be printed only if
LOG_VERBOSITY is set to "high" .
o fixed a minor bug in fill_select() : number_of_discarded_files is
now correctly computed
o improved code readibility by using sqlite3.Row as a row factory.
o fixed show_infos_about_target_path()::draw_table() : characters like "║"
are forbidden (problem with the cp1252
o modified msg() : messages are written to the console first
o (issue #4) fill_select() adds a percentage of the work done based on
the informations gathered by the --infos options.
o modified show_infos_about_source_path() : added the number of the
extensions found in the source directory (issue #2).
o modified show_infos_about_source_path() : extensions are now sorted by name
o the documentation and the error messages have been improved
o 7 tests, pylint=10.0
v.0.0.6 (2015_09_23)
o added a new sieve (by date)
o added option -ddcfg / --downloaddefaultcfg
o added --rmtags option
o added --addtag option
o the --to option takes from now wildcards name, not a regex anymore
o (database) 'tag' > 'strtag'; --settag > --setstrtag
o improved security : eval() function is now used in the secured way
o welcome_* functions now use the TIMESTAMP_BEGIN global variable
o various parts of the documentation and error messages have been improved
o 7 tests, pylint=10.0
v.0.0.5 (2015_09_17) :
o added --targetkill/-tk option and the action__targetkill() function
o improved show_infos_about_target_path() : each column has its own separator,
the table is computed by the function : no more magic numbers
o added -ti, --targetinfos option (--targetinfos/-ti uses --quiet mode)
o added --settag, --to options
o fixed get_disk_free_space() for Windows systems
o added short options for some options : -c, -s, -ti, -m, -q
o 'shortened_str' > 'shortstr'
o added a 'tag' field in the database
v.0.0.4 (2015_09_16) :
o Tests class (four tests ok)
o added eval formula in config file; added function eval_sieve_for_a_file()
o fixed a typo in size_as_str() : the '0 byte' case
o fixed a bug in hashfile64() : the hasher is now created every time
the function is called
o modified the SIEVES format for "size"
o moved the declaration of global variables at the beginning of the file
o added a block : if __name__ == '__main__', allowing to call the script
from another script.
o modified the database data types : hashid=varchar(44); primary key on hashid
o improved the way the program catches the exceptions
o improved action__infos() display : for each extension the size in bytes is
displayed
o updated .gitignore
o "VERBOSITY" > "LOG_VERBOSITY"; TARGETFILENAME_* > TARGETNAME_*
o added FREESPACE_MARGIN constant
o renamed some functions (get_* > read_*)
v.0.0.3 (2015_09_14) :
o --quiet and --mute options
o --hashid option (and show_hashid_of_a_file() function)
o fixed the error in the shebang line
o rewrote remove_illegal_character()
o improved action__select() : no useless messages are displayed with the
--add option
v.0.0.2 (2015_09_14) :
o added SELECTELEMENT type
o the call to sys.exit(0) is now at the very end of the file
o no tests, pylint=10.0, some todos remain.
no tests, pylint=10.0, some todos remain.
v.0.0.1 (2015_09_13) : first try, no tests, pylint=10.0, some todos
remain.