imag/doc/src/09000-todos.md

4.5 KiB

Todo

This section contains long-term todos. Some kind of roadmap, of one wants to put it that way.

Modules

Modules imag should offer which are not yet started or in progress, including a short note what each module should do.

First the modules which have been implemented in some way (not necessarily perfect or feature-complete):

  • imag-bookmark - A bookmark manager for web browsing.
  • imag-diary - A diary, or multiple.
  • imag-counter - Counting things.
  • imag-link - Linking imag entries to eachother
  • imag-notes - Note taking
  • imag-ref - Refering to files outside the imag store.
  • imag-tag - Tagging imag entries
  • imag-view - Viewing imag entries

Now the modules that are not yet started:

  • imag-bibliography - For handling bibliographic references when writing scientific papers. Like Citavi, for example.
  • imag-borrow - If you lend something to someone.
  • imag-calendar - Calendar tooling based on icalendar files. No sync functionality.
  • imag-category - For categorizing imag entries. Categories must exist before an entry can have a category.
  • imag-contact - Contact tooling based on vcard files. No sync functionality.
  • imag-cuecards - Cuecards for learning things, for example vocabulary.
  • imag-filter - command to read the store from stdin, filter out entries based on a predicate specified via the CLI and write the store back to stdout.
  • imag-git - wrapper to call git commands on the imag store no matter whether the current working directory is the store or not
  • imag-gps - Adding GPS coordinates to entries
  • imag-habit - Tracking ones habits (create habits and make sure you do what you've planned)
  • imag-image - Image referencing, categorizing, etc.
  • imag-item - Creating entries for Items in the store
  • imag-ledger - Ledger functionality like beancountcand others
  • imag-list - Managing lists
  • imag-mail - Mail handling tool, a CLI-mutt like tool.
  • imag-movie - Movie database handling, categorization and such things
  • imag-music - Music database handling, categorization and such things. Possibly a scrobble server.
  • imag-news - A RSS Reader
  • imag-project - A project planner, integrated with imag-timetrack and imag-todo
  • imag-rate - Attaching a rating to an entry
  • imag-read - Command to load the store and pipe it to stdout (usefull for piping/ chaining commands)
  • imag-receipt - Creating, categorizing, managing receipts
  • imag-shoppinglists - Managing shopping lists
  • imag-store - Low Level CLI Store interface
  • imag-summary - Meta-command to call a set of imag commands (configurable which) and displaying their outputs
  • imag-timetrack - Tracking time like with timewarrior
  • imag-todo - Tracking tasks like with taskwarrior
  • imag-url - Extracting URLs from enties, saving URLs to the imag store
  • imag-weather - Weather tooling for getting forecast and recording a history of weather
  • imag-weight - Weight tracker
  • imag-wiki - A wiki for personal use
  • imag-workout - Tools for tracking workouts. One sub-module will be step-counter tracking
  • imag-write - Command to read the store from stdin and write it to the filesystem store (usefull for piping/chaining commands)

Libraries

  • Ensure all libraries are implemented as extension traits rather than wrapping store types
  • Rewrite logger to allow config/env-var based module white/blacklisting and writing log to file
  • Rewrite libimagerror to be based on chain-error crate. This basically removes our error infrastructure, though existing traits and convenience functionality should be kept (for example the MapErrInto or the IntoError traits), as much as possible). If the switch to chain-error would require too much code to be rewritten, reconsider.

User Interface

  • Ensure store ids are always passed as positional arguments

Project structure and development

  • Move away from github
    • Have own issue tracking (possibly git-dit)

    • Find a solution to having no travis-ci via github anymore

    • Setup a viewer for the mailinglist archive

  • Add maintainer scripts to repository
    • To check patches for Signed-off-by lines
      • To automatically craft a reply to a contributor about a missing signed-off-by line
      • To automatically craft a reply to a contributor about a patchset that cannot be applied
    • To check pull requests for GPG signatures
    • To apply a patchset in a new branch