Changelogs » Dob

PyUp Safety actively tracks 263,016 Python packages for vulnerabilities and notifies you when to upgrade.



  - Bugfix: Windows: ``dob demo`` broken.
  - Bugfix: Windows: Run ``notepad.exe`` if ``EDITOR`` not set.
  - Normally if ``EDITOR`` is not set, the system's ``sensible-editor``
  command will run Nano or Vi, neither of which is available on Windows.
  Consequently, on Windows, when ``EDITOR`` is not set, dob displays a
  warning, awaits acknowledgment, and then runs the Carousel again.
  - Bugfix: Windows: Temporary file path broken because colon.
  - Bugfix: Windows: dob shows backup file symlink error.


  - Bugfix: Windows support, aka upgrade to sqlalchemy 1.3.
  - Bugfix: Ensure warnings not cleared before awaiting acknowledgment.
  - Bugfix: Config settings path shows incorrectly when displaying errors.


  - Bugfix: ``dob edit`` fails when no config, rather than printing message.
  - Also affects other commands that require the config.
  - E.g., this happens if the user has not called ``dob init``.
  In other words, this affects new users.
  - Bugfix: ``dob edit`` does nothing after ``dob init`` on empty database.
  - User should not be forced to dob-add a Fact before running the
  interactive Carousel. Instead, we can start with a basic gap Fact.
  - Bugfix: Config created by ``dob init`` crashes subsequent dob commands.
  - The internal log level values were being writ to the config file,
  rather than the friendly level names.
  - Bugfix: Config file errors crash dob.
  - But rather than just catch one error, print it, and exit,
  collect all errors, print them all, and then just keep chugging,
  choosing to use default values rather then exiting.
  - User will have option to bail before running Carousel, which now
  requires the user's acknowledgement of the errors.
  - Bugfix: ``dob edit`` shows most recently edited Fact.
  - It should show the most recent Fact. So sort by start.
  - Bugfix: Print error rather than crash on ``$EDITOR`` fail.
  - Use case: User sets their ``EDITOR`` environment variable to
  a bad path, or adds arguments (which is not supported -- but
  one could use an intermediate shell script wrapper to add args).
  - Bugfix: Post-processors not called after dob-add.
  - Use case: On Carousel save, the export-commit plugin post processor
  is triggered. The same should happen after editing/adding Facts through
  the ``dob add`` family of commands, e.g., ``dob from xx to xx: A test!``
  - Bugfix: Part-specific styles not appearing until after focus.
  - Use case: Run ``dob edit`` and note the start and end time widget
  styles. Now shift focus to one of the widgets, and then away.
  - Depending on how the style is configured, the look of the widget
  after shifting focus away from it does not look like how it
  originally looked.
  - Regression: Cannot enter colon (for clock time) in time widgets.
  - Solution: Only enable colon commands when content has focus.
  - Feature: Set app background color via ``label = <>`` in styles.conf.
  - PTK already assigns 'class:label' to every widget. This updates the
  style-clobbering calls to maintain the label. Thus, user could add,
  say, ``label = 'bg:00AA66'`` to their ``styles.conf``, to give the
  app a uniform background color.
  - Improve: Require confirmation after printing errors on Carousel startup.
  - Instead of pausing after printing error messages, require user to
  confirm. Otherwise, user may not have time to read the errors. Also,
  after quitting Carousel, errors are still off-screen (up-screen).
  - Improve: Make easier to base styles off 'night' and 'light' base styles.
  - Rather than assign the base color to all classes, which makes it
  difficult to override them in styles.conf (because user is then
  forced to override the highest-order class for every widget),
  leave all the class styles empty except for the lowest ordered
  class, which is common to all widgets, class:label.
  - Improve: Use no precision in 'Gap Fact of' text until duration > 60 seconds.
  - Otherwise the footer status message updates too frequently,
  is too distracting.
  - Improve: Warn when syntax errors found in style config.


  - Feature: New ``dob config edit`` command, to get straight to the point.
  - Feature: New ``dob styles`` commands.
  - | ``dob styles --help``
  | ``dob styles create``
  | ``dob styles conf``
  | ``dob styles edit``
  | ``dob styles list``
  | ``dob styles show``
  - Feature: New ``dob rules`` commands.
  - | ``dob rules --help``
  | ``dob rules create``
  | ``dob rules conf``
  | ``dob rules edit``
  | ``dob rules list``
  | ``dob rules show``
  - Feature: New ``dob ignore`` commands.
  - | ``dob ignore --help``
  | ``dob ignore create``
  | ``dob ignore edit``
  | ``dob ignore list``
  | ``dob ignore show``
  - UX: Prefer config-show over config-dump.
  - Docs: Add section on config file populate command.
  - Improve: Ensure plugins loaded on config-create, too.
  - Bugfix: Import ``FactsDiff`` display broken.
  - Bugfix: 'value-tags' class missing from hash-and-label tag parts' styles.
  - Feature: New ``dob styles`` commands.
  - Feature: New ``dob rules`` commands.
  - Feature: New ``dob ignore`` commands.
  - Feature: Make tags_tuples parts styleable (for ``git edit``).
  - Feature: Make factoid parts styleable (for ``git show``).
  - Tweak: Update 'night' style settings.
  - Enhance: Apply 'value-tags' class to tags diff parts.
  - API: Rename functions; move functions between libraries.
  - API: Update renamed config setting: ``stylit_fpath`` → ``rules_fpath``.
  - Improve: Option to exclude section column from config table.
  - Improve: Do not assume ASCII table width.
  - UX: Change difficult to read 'red' warning text to 'yellow'.
  (Though really should be made configurable. Yellow works
  better on a dark background.)
  - Harden: Prevent stylize from failing on user input.
  - API: Rename to avoid confusion/match other usage: ``stylit`` → ``rules``.
  - Library: Refactor, Relocate, and DRY work.
  - API: De-scope function for broader usage.
  - API: Rename function: oid_colorize → oid_stylize.


  - Docs: Document the interactive editor.
  - Improve: Remove requirement that custom paste config be numbered sequentially.


  - Feature: Let user define custom key bindings for pasting arbitrary factoids.
  - I.e., user can map their own keys to setting Fact metadata,
  including the act\gory, tags, and the description.
  - Usage: Add 2 settings to your user config for each custom mapping.
  - One setting specifies the Factoid to parse,
  and the other is the key binding to use.
  - Nest them under a new ``[custom-paste]`` section. Use the prefixes,
  ``factoid_`` and ``mapping_``, and start numbering from ``1``.
  - For instance, within ``~/.cache/dob/dob.conf``, here are
  some custom mappings::
  Paste actgory and 2 tags:
  factoid_1 = "TeaPersonal: biscuit zinger"
  mapping_1 = f4
  Paste actgory, 1 tag, and a description (if not already set):
  factoid_2 = "TicketsProject: num-1234: Working on baloney."
  mapping_2 = f5
  Paste a few tags (the : is required):
  factoid_3 = ": tag-1 tag-2"
  mapping_3 = f6
  Paste a mere description:
  factoid_4 = "this is not a tag"
  mapping_4 = f7
  Then, just press ``F4``, or ``F5``, etc., to apply to the current Fact.
  The user can choose whatever keybindings they want, and whatever metadata.
  Note that there's an arbitrary limit of 28 such custom paste commands.
  - See also ``dob add --help`` for a description of the Factoid format.
  Or just follow the formats in the example above.
  - Feature: New command "shortcuts" (multiple command wrappers).
  - One command to copy the current Fact meta and paste to the final Fact.
  - Currently mapped to ``Ctrl-e``.
  - One command to copy the current Fact meta, stop the final Fact,
  and paste to the new active Fact.
  - Currently mapped to ``V``.
  - One command to stop the final Fact, switch to the new active Fact,
  and prompt for the act\gory.
  - Currently mapped to ``o``.
  - Bugfix: Entering date prefix but calling [count]-modified command crashes.
  - Bugfix: Applying meaningless delta-time still marks Fact dirty nonetheless.
  - E.g., if Fact is 30 minutes wide, and you ``+30<TAB>`` to set end to
  30 minutes past start, Fact Diff would show no change, but on quit,
  dob would ask you to save.
  - Bugfix: Rift jumpers change to first/final real Fact, not gap Fact.
  - UX: Swap ``G``/``gg`` and ``f``/``F`` command mappings.
  - Improve?: Update active gap Fact status on the tick.
  - Updates X.XX in the text, "Gap Fact of X.XX mins. [edit to add]."
  - Except change the precision to one, e.g., X.X mins, so it updates
  less frequently. Otherwise, if hundredths place showing, the status
  message and the Fact Diff end time (which shows <now>) update at
  slightly different rates, but similar enough that it looks weird.


  - Bugfix: Crash handling clock time parse error.
  - Usually specifying clock time is okay, e.g., '100' is interpreted
  as 1:00a. But the hour and minute components were not being
  bounds-checked, i.e., 0..59. So, e.g., trying to decode '090'
  would crash (rather than be reported as not-a-date).
  - Bugfix: Editor command handlers using stale "now".
  - So, e.g., if you started dob at 5p, and now it's 6p, and the current
  Fact is active (no end time), pressing 'J' to jump back a day would
  find Fact from yesterday at 5p, not 6p. (I'm sure there were more
  important use cases where this was more harmful, but this is the
  most obvious one to highlight.)
  - Bugfix: Relative edit time feature broken/shadowed by delta-time bindings.
  - E.g., trying to type a relative time, say '+60', in the edit time widget
  was been intercepted by the newish delta-time feature. Consequently, the
  delta-time feature is now disabled when editing the start or end time.
  - Bugfix: Commando save (``:w``) hides status message ('Saved {} Facts').
  - Feature: Jump to date (using ``G`` or ``gg`` command modifier prefix).
  - E.g., ``20200410G`` will jump to first Fact on 2020-04-10.
  - User can specify (via config) allowable punctuation.
  - E.g., in addition to ``20200101G`` to jump to New Year's day, user
  can instead type ``2020-01-01G``, or ``2020/01/01G``, etc., depending
  on what ``date_separators`` are specified in the config.
  - More examples: ``100G`` jumps to Fact at 1:00 AM today.
  Or type ``2020/01/01 1400G`` or more simply ``2020010114G``
  to jump to 2p on New Year's day, 2020.
  - Feature: Wire backspace to command modifier, commando, and time-delta modes.
  - Pressing backspace will (naturally) remove the last character typed
  from the command modifier/commando/time-delta being built, or it'll
  cancel the operation if nothing is left to remove.
  - Feature: Add true first/final Fact jump commands.
  - Because ``G`` and ``gg`` stop on FactsManager group boundaries
  (these are the contiguous Fact "windows" the editor uses to
  store Facts in memory (which allows editing multiple Facts
  between database writes), and are used during the import process,
  which is really where stopping on group boundaries makes the most
  sense. In other words, we should probably make these commands the
  new ``G``/``gg``, and move the old commands to other key mappings.
  But I'm not ready to make that... leap).
  - The new commands are wired to ``f`` (final) and ``F`` (first) Fact jump.
  - Improve: Show command modifier or delta-time in status as user types.
  - Might as well, because we already display the commando as it's built.
  And it provides context to the user, which could be a teachable moment,
  if the user is learning by mashing (keys).
  - Improve: Support allow-gap toggling.
  - Now that the command modifier or time-delta is shown as a status
  message, it'll be obvious to the user if allow-gap is on or off.
  So pressing ``!!`` will first enable allow-gap, then disable it,
  rather than canceling the operation.
  - Improve: Let user allow-gap (e.g., ``!``) before time-delta (``-``/``+``).
  - E.g., in addition to ``+10!<ENTER>``, ``!+10<ENTER>`` also now works.
  - Improve: Wire Ctrl-C to clear or cancel command modifier/commando/delta-time.
  - Improve: Allow Tab, in addition to Enter, to finish delta-time command.
  - Because Tab is the left hand's Enter.
  - Improve: Make easy to set end to "now" on active Fact (e.g., via ``[`` or ``]``).
  - For active Fact, rather than the 1-minute decrement (``[``) and increment
  (``]``) operators using (now - 60 seconds) or (now + 60 seconds), just use
  now. (So if user wants to really remove 1 minute from now they can just
  press the key twice, e.g., ``[[``, or use a count modifier, e.g., ``1[``.)
  - Improve: Linger to show 'Saved' message on save-and-exit commando (``:wq``).
  - Improve: Pass carousel-active indicator to post processors.
  - So that plugins may behave differently when triggered by a save when dob
  is also quitting, versus a save from the interactive editor.
  - This is mostly useful so that a plugin does not errantly output any
  text to the display, which would mess up the editor interface.
  - Improve: Add "from" to Jump Fact time reference status message, for context.


  - Improve: Alias command ``env`` to ``environs``.
  - E.g., ``dob env``.
  - Feature: Make all key bindings user configurable. [dob-viewer]
  - Run ``dob config dump editor-keys`` to see all the mappings.
  - User can specify zero, one, or multiple keys for each action.
  - Improve: Remove 'escape'-only binding to avoid exit on unmapped Ctrl-keys. [dob-viewer]
  - Bugfix: Catch Ctrl-C on dirty-quit confirmation, to avoid unseemly stack trace.
  - Bugfix: Ctrl-W not saving on exit. [dob-viewer]
  - Improve: Remove the Ctrl-W save-and-exit key binding. [dob-viewer]
  - Convention is that Ctrl-W is "close", but what would that be in dob?
  - The command remains but the binding was removed. The user can assign
  a key binding in their config if they want to enable this command.
  - Feature: Vim-like command mode (lite). [dob-viewer]
  - Just the three commands, ``:w``, ``:q``, and ``:wq``.
  - Because dob uses EDITOR, if Vim is user's editor, user could
  run ``:wq`` twice in a row to save their Fact description, leave
  the Vim editor, and then save and quit dob.
  - Feature: Add modifier key (defaults to ``!``) to allow interval gap. [dob-viewer]
  - E.g., consider the  command ``-1h``, which sets start 1 hour before end.
  If it makes the current Fact's time shorter, then it stretches the
  previous Fact's end time, as well.
  - To not touch the neighbor Fact but to leave a gap instead,
  press the modifier key after entering the number, e.g., ``-1!h``.
  - User can change the modifier key via the ``editor-keys.allow_time_gap``
  config setting.
  - Feature: Add time command modifier (``!``) to allow interval gap. [dob-viewer]
  - E.g., consider the  command ``-1h``, which sets start 1 hour before end.
  If it makes the current Fact's time shorter, then it stretches the
  previous Fact's end time, as well.
  - To not touch the neighbor Fact but to leave a gap instead,
  press the modifier key after entering the number, e.g., ``-1!h``.
  - Feature: Convenient 1- and 5-minute single-key time nudging commands. [dob-viewer]
  - E.g., ``[`` and ``]`` to decrement or increment end by 1 min., or
  add shift press for 5 mins., i.e., ``{`` and ``}``.
  - Likewise, use ``,`` and ``.`` to nudge start time
  backwards or forwards by 1 minute, respectively;
  and use ``<`` and ``>`` for five minutes instead.
  - All four keys are user-customizable, of course!
  - Bugfix: Ensure Facts marked dirty after time nudging. [dob-viewer]
  - Or user is not asked to save on exit after nudging time.
  - Bugfix: Long press time nudge is not increasing deltas over time. [dob-viewer]
  - E.g., if user holds Ctrl-left down, it starts adjusting the time by
  one minute for each press generated, but it was not increasing to
  five minutes per press, etc., the longer the user kept the key pressed.
  - Improve: Ensure neighbor Fact time width not squashed to 0. [dob-viewer]
  - Bugfix: Cannot jump to first/final fact if current Fact within jump delta. [dob-viewer]
  - E.g., Consider user is on current Fact, 2020-04-12 12:00 to 13:00, and
  the final Fact is from 2020-04-12 15:00 to 16:00. Pressing ``K`` does not
  jump to the final Fact, because it was less than 1 day ahead of current.
  - Improve: On jump day from active Fact, use now as reference time. [dob-viewer]
  - This feels more natural, rather than jumping from the start of the
  active Fact, and prevents jumping back more than a day.
  - Feature: Add Vim-like [count] prefix to Jump and Nudge commands. [dob-viewer]
  - E.g., user has been able to press ``j`` to go to the previous Fact.
  Now they can press ``5j`` to go back 5 Facts.
  - Likewise for jumping by day, e.g., ``2.5K`` will jump forward 2.5 days.
  - Same for time nudging, ``Ctrl-left`` has been used for decrementing the
  end time by 1 minute. Now user can specify exact amount, e.g., to
  decrease the end time by 4.2 minutes, the user can type ``4.2<Ctrl-left>``.
  - User can type ``!`` before or after digits to signal that a time nudge
  command should leave a gap rather than stretching a neighbor's time,
  e.g., ``!1<Ctrl-right>`` and ``1!<Ctrl-right>`` are equivalent.
  - To give user better visibility into what's happening, the jump commands
  now print a status message indicating how many days or number of Facts
  were jumped. When jumping by day, the time reference used is also shown,
  which is helpful if there's a long Fact or Gap, so the user does not get
  confused when their jump does not appear to do anything (i.e., when
  time reference changes but locates the same Fact that was showing).
  - Bugfix: Prompt crashes if user presses Ctrl-D on empty text. [dob-prompt]
  - Bugfix: Prompt not positioned correctly after Escape keypress. [dob-prompt]
  - Enhance: Reset chosen completer on Ctrl-C (e.g., like pressing ``F2``). [dob-prompt]
  - API: Pass Click content to post_processor handler. [dob-bright]


  - Bugfix: ``config dump -T texttable`` broken.
  - Improve: Make ``texttable`` use full terminal width.
  - Improve: Use ``texttable`` as ``config dump`` table default (better wrapping).
  - Improve: Ensure plugins loaded for ``config`` commands.
  - Enhance: Reload config after plugins loaded, to load plugin config.
  - Bugfix: ``dob config get`` with 2 or more parts stacktraces on unknown setting.
  - Enhance: Let user clear end time of final Fact. [dob-viewer]
  - Bugfix: Set end time before start, and dob crashes after alert. [dob-viewer]
  - Improve: Use fact_min_delta as min. width on neighbor time adjust. [dob-viewer]
  - Improve: Allow config to be reloaded, to support plugin config. [dob-bright]
  - Bugfix: Interactive editor ``gg`` (jump to first Fact) fails. [nark]
  - Bugfix: Allow Unicode characters in config values. [dob-bright]


  - Deps: Update versions to profit from library bug fixes.
  - Docs: Update contributing getting-started, and more.
  - Enhance: Pause briefly on plugin import error so user sees message.
  - Enhance: Pass path to plugins on eval, so they can load local assets.


  - Bugfix: Incorrect version information emitted.


  - Bugfix: Downstream fix repairs demo command (which was breaking
  because spaces in tags were not being converted properly to magic
  class names, causing PTK to explode, and then dob to ask something
  strange about okay-to-save).
  - Improve: Simplify version report for non-devs.
  - Docs: Runtime help fixes.
  - DX: Fix Travis-CI not-POSIX issue.


  - Split prompt and carousel/editor interfaces to separate projects,
  |dob-prompt|_ and |dob-viewer|_, respectively; and a shared
  project, |dob-bright|_.
  - This not only helps keep most of the Click CLI code separate from
  the PPT interface code, but it removes all of the recent front end
  work from the original |hamster-cli|_ codebase.
  - This comes at the expense of making developer onboarding a little
  more of a chore, because there are that many more repositories to
  clone. So perhaps now is a good time to plug a multiple-repository
  manager -- check out |ohmyrepos|_ to help you monitor all the
  projects that make up dob.


  - Add Natural language support, e.g., ``dob from 10 min ago to now ...``.
  - NOTE: For the new commands, the start and optional end times are now
  specified at the beginning of a new fact command, rather than after the
  fact (like in legacy ``hamster``).
  - New database migration commands, e.g., ``migrate up``.
  - Legacy DB support (i.e., upgrade script).
  - Bulk ``import``, with conflict resolution, and ``export``.
  - Interactive prompting! Powerful, wonderful UI to specify
  activitycategory, and tags. With sorting and filtering.
  Just ``--ask``.
  - Usage-aware ``TAB``-complete suggestions (e.g., most used
  tags, tags used recently, and more).
  - New ``usage`` commands to show activity and tag usage counts,
  and cumulative durations.
  - Easy, fast Fact ``edit``-ing.
  - Refactor code, mostly breaking big files and long functions.
  - Seriously lacking test coverage. =( But it's summertime now
  and I want to go run around outside. -lb
  - Enhanced ``edit`` command.
  View the :doc:`hamster-cli History <history-hamster-cli>` (pre-fork, pre-|dob|_).


  - Hamster Renascence: Total Metempsychosis.
  - New ``dob edit`` command, a colorful, interactive, terminal-based editor,
  i.e., Carousel Fact editor (though not *quite* a carousel, it doesn't wrap
  from beginning back to end, more of a conveyor belt, but that doesn't have
  quite the same image as a photo slideshow carousel).
  - Sped up load time for quicker factoid entering profiling
  (but who cares now that ``dob edit`` ).
  - Learn dob quickly with the new ``dob demo`` feature.
  - Modernized packaging infrastructure. Moved metadata to ``setup.cfg`` and
  dumped ``bumpversion`` for git-tags-aware ``setuptools_scm`` versioning.
  - Setup HotOffThe Hamster CI accounts on Codecov, Travis CI, and ReadTheDocs.
  - Attached Code of Conduct to Developer Contract.