-
Notifications
You must be signed in to change notification settings - Fork 0
/
ROADMAP
142 lines (130 loc) · 7.02 KB
/
ROADMAP
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
v0.8.0
#2: Review all the help messages, for example the header of a single 'help'
command should be different from the header of a 'help menu' command.
Also centralize the messages which at the moment are coded directly in
typein.cmenu: libraries should raise exceptions, or at least have
configurable messages, not hardcode them
Document the filters syntax in the 'help' message of the commands that
support it
Document the 'transfer' command options
When using 'transfer --view-only' document that Popen takes care of
escaping characters
v0.9.0
#10: Paginate the change preview lists in the interface; allow setting the
limit of changes per page
#12: Preview rsync command: Display a dynamic "processing..." message in a
separate thread, using \r to refresh the line
#17: Add a transfer mode that writes a file object and feeds it to the
transfer command's --*-from options with stdinput; of course this
requires that stdinput is not used for some other reason (see also #18)
#18: Pass the original sys.stdin, if present, to the transfer command (see also
#17)
#23: *-from transfer commands: warn if the file already exists
#24: Disable the transfer modes that use --exclude or --include options when
the number of paths to be filtered is greater than a certain number
#28: Implement more shared command-line options
--verbose could decide whether the non itemized-change lines should be
printed when parsing the preview command results
#29: There may be some more rsync options that can be specified multiple
times, but for the moment syncere accepts them only once; test what
happens if they're specified multiple times and properly modify
cliargs.py as needed
#37: Implement experimental options
#48: Move most shared options to transfer-only
#43: The values entered for configuration options, such as
'config>preview-info-flags', should be validated
#44: Allow displaying the output of the preview command with the --list-only
option (and mention this in the --help message, because --list-only is in
the unsupported group)
Tests:
#1: Test that the various application stages are reached
Store more attributes and test them against expected values
#7: Test transfers with all the transfer modes and other options
Test setting configuration options and aliases
#9: Check that all the raised exceptions and sys.exit calls are tested
#16: Test the pending change filters
#45: The TestRsyncOptions test could be skipped, since it doesn't depend on the
development of syncere
#49: Test with pexpect
v1.0.0
#6: Allow comments in script files
Disallow commands and aliases from starting with '#'
Also add an 'echo' command?
#8: Allow wildcards when filtering the pending changes by itemized change or
permissions
Allow choosing ranges when filtering the pending changes by size or
timestamp
Remember to raise _ChangeFilter.BadFilter when needed
#40: Improve error messages, show more information to ease troubleshooting
In InvalidRuleError also show the line number in the ruleset file
Also check the sys.exit calls, and print a Usage line in case of bad
command-line options (this should be solved in forwarg actually)
#41: Use a proper logging system (both on stdout and file)
Maybe share the --log-file option with rsync and append to the same file
See also #46 and #47
#38: The commands with dashed options, e.g. 'transfer' and the filters, should
have those options tab-completed like the other commands with "plain"
flags (solve in typein.cmeu?)
#39: Command flags should support initial-substring-match-only like with menu
entries, e.g. 'p q' should be enough to mean 'preview quit' (should be
solved in typein.cmenu)
Maybe 'preview quit' should better be 'preview --quit' for consistency
with 'transfer --quit'
#42: Test if the %B argument of --out-format shows ACLs like ls -l
#50: If UnrecognizedItemizedChangeError is raised, a message should be printed
to suggest reporting a bug
Docs:
# Implement a man(1) page (also a separate (5) page for ruleset syntax?)
Note that syncere(1) is referred from the --help message
Move most info from the --help message, keeping only very brief reminders
there
http://pandoc.org/
https://github.com/rtomayko/ronn
https://github.com/sunaku/md2man
# Suggest that it's possible to transfer the new data into an empty folder,
and then process it separately (--compare-dest argument)
Create a small utility that shows a diff for the files?
# Suggest that it's possible to bypass the interface if there are no
undecided pending changes left after applying the rules (i.e.
sync without confirmation) by simply adding the 'transfer' command to
the --command options
# Mention syncere in http://superuser.com/questions/282942/make-rsync-wait-for-a-confirmation-before-actually-changing-files
v1.1.0
#3: Optionally re-execute the 'preview' command automatically after executing
the transfer command
#22: Print the rsync preview process' output in real time, but watch out for
the deadlock problems!!!
https://docs.python.org/3.5/library/subprocess.html
Is rsync's --outbuf option helpful?
#27: Properly reflect rsync's ambivalent meaning of the -h option, and update
--help's message to mention that it's supported
#30: Add more filters to the commands that act on a selection of changes, e.g.
only show included, excluded or undecided changes
Other possible filters: show only the root items; show only the children
of a directory; show only the descendants of a directory
Maybe a directory tree should be created during the
initial parse of the --itemize-changes output
It would be nice to also recognize ranges that end with '-', e.g. "3-"
could mean "select from 3 to the end"
#31: When applying an interactive action on a directory, it should be possible
to apply the change recursively to its descendants
See also the related TODO comments in interface.py
#33: Allow opening and editing the pending changes in an external text
editor (chosen with the $EDITOR environment variable)
#36: Is the --fuzzy option useful in the preview command? Would it slow the
command down for no advatage? If so, offer an option to use it only in
the transfer command
#61: Ability to choose the synchronization direction per file if only one
source is given (akin to Unison)
#46: Can --log-file-format accept an empty string as a value? forwarg
wouldn't support that for the moment
#47: Allow removing the --log-file option in the preview rsync command
See also #41
#63: See if the --timeout and --contimeout options can be enabled also for the
preview command
#64: Allow editing the rsync commands interactively, but note that they must be
always validated
The preset pending-change rules should be re-executed after a refresh;
maybe the whole configuration script should be reloaded?
See also #34
#100: Internationalization: allow localizing all the messages