TODO (ideas) :
**************

That file shares several ideas I've had for the project. Feel free to contribute !

Global :
- Unit testing !
- Provide ready-to-use docker nodes ?
- FS analysis tool to help optimize fpart/fpsync options ?

Fpart:
- Enable hooks in non-live mode (would help automating GH discussion #55) ?
- chdir(2) to initial working directory before forking hooks ?
- Implement pre-run hooks ? (is that useful ?)
- Implement option -zzzz to list directories only (0-sized) ?
- -E should probably not imply -z (as empty dirs are part of parent dirs' file lists)
- To minimize memory footprint in non-live mode, add a 'checkpoint' capability
  to sort and flush partitions when a memory / file entry count limit is reached
- Add an option to specify that a directory matching a path or a pattern should
  not be split but treated as a file entry
- Add constraints, e.g. : force hardlinks to belong to the same partition
- Improve sort by using, e.g. : http://en.wikipedia.org/wiki/External_sorting
- Rework error code (errx(3), perror(3), ...)
- Rework verbose and debug messages
- Split fpart_hook() in two parts : fpart_hook_init_env() + forking code
- Use queue(3) ?

Fpsync:
- Add an option to specify run ID name and set default run ID scheme to YYYYDDMM-HHMMSS
- Modify 'fpsync -l' output to display run status (with erroneous jobs detailed)
- Ability to replay one or more jobs within a specific run
  (see: https://sourceforge.net/p/fpart/discussion/general/thread/5d001d74b6/)
- Document job prepare/listing/resume/replay
- Show if dirsonly/aggressive mode is enabled in status
- When waiting for sync jobs to complete, regularly show status
  (as a progress bar ?)
- Provide per-job pre- and post-xfer rc scripts
  (useful to perform tasks such as computing an
  additional src/ or dst/ prefix - to be added too)
- Enable fpart's option -n for prepare mode only ?
- Add "debug" pseudo-tool ?
- Homogenize variable names ('_', MAJ, min)
- Improve portability (egrep vs grep, ...)
- Colorized / Improved output / Progressbar
- Check if src_dir/ is the same on all workers (using a stat fingerprint)
  and use the same method for dst_dir/ (stop using a witness file)
- Add options to limit total bandwidth / per-syncer load

Autotools:
- Use config.h (for program version, data types, header inclusion,
  build options info [...])
- Add -Wall to CFLAGS when possible (gcc, clang)

Documentation:
- Better document fpart's option '-s' behaviour in live mode (see GH issue #36)
