Skip to content
Paul Ruane edited this page Dec 7, 2016 · 59 revisions

In Progress

This is the task that I am currently working on.

  • Issue #100: Merging tag=value pairs

High

This is the stuff I hope to work on next.

  • Windows support
    • Evaluate Dokan for Windows support
    • Ensure 'repair' file move detection works (as it uses / for root)
  • Split out API so TMSU can be embedded in other programs
    • I'm thinking, now, that the 'storage' layer is already an API. Perhaps it would be better renamed and marketed as such.
    • Reposition database layer
    • Move core and CLI into separate sub-projects
  • Facility for converting tags to values
    • e.g. '2015' to 'year=2015'
    • perhaps via 'rename' subcommand
  • Fingerprints of directories
    • repair is not repairing directories
  • Testing
    • Improve unit-test coverage, especially on 'files' subcommand
    • Add benchmarks
  • Case insensitive tag matching
  • Issue #23: 'files' is slow

Medium

These tasks I hope to work on soon.

  • Option on 'files' to show tags for files that match query
  • Issue #20: Repairing a moved file should merge tags
    • is this really a good idea? A repaired moved file requires an untagged file which, by definition, has no tags
  • Issue #19: wildcards when matching tags, e.g. tmsu files she* would show files matching 'sheep', 'sherbet' and 'shenanigans'
    • would have to avoid shell globing
  • Use Markdown instead of homegrown markup
  • Sort values (maybe tags too) numerically where values contain numbers
  • Issue #5: meta-tags (make the values the tags)
  • Issue #22: ability to tag objects within files
    • tmsu tag /some/path#bob hat sunglasses
  • Go Lint
    • On GitHub
  • Code generation
  • Subcommand aliases and unambiguous shortening
  • Option on 'tags -a' for listing tags that have values
    • should it do this by default?
  • Consider switching from Hanwen to bazil.org
  • Replace tag implication functionality with tag relationships
    • Implication: A ⇒ B (A => B)
    • Equilavence: A ⇔ B (A <=> B)
    • Exclusion: A ⇒ ¬B (A </> B)
  • Improve Zsh query completion
    • Suggestion for tags and operators should be contextual
  • Add recursive option to 'tags' subcommand
  • Basic auto-tags - provide information already store as auto-tags:
    • File size auto:size
    • File/dir auto:type
    • Modificaiton date auto:mod-date
  • Man page generation
    • Sub-command description and options

Low

These tasks I hope to do one day but are not currently a priority.

  • Filesystem watcher
  • Support for whitespace in tag names/values
    • Investigate supporting spaces in tag values (issue #37)
    • Handle apostrophes in queries, i.e. quoted strings
    • Issue #69: Add comma as tag delimiter in --tags form of subcommands
  • Expanded auto-tags phase 2
    • MIME type
    • Image dimensions
    • video length
    • EXIF information
  • Additional VFS operations
    • Tagging file in VFS should add tags to existing entry rather than create new one
    • Copying symbolic link from one tag directory to another should add that tag
  • Way to pull tags to parent directory up or push them down to child files
  • Storage level operations should ensure database consistency. E.g. deleting a tag should result in corresponding taggings being deleted
Clone this wiki locally