The Pomodoro Technique using TaskWarrior and TimeWarrior
Project description
Pomodorowarrior
A command line tool that integrates with Taskwarrior and Timewarrior to implement the Pomodoro Technique.
Command Line Interface
Pomodorowarrior uses a command with subcommands interface, similar to Taskwarrior itself. commands can be broken up into 3 different pomodoro phases.
Planning
# Plan a new pomodoro
pomw plan TASK_ID [-d DATE] [-q QUANTITY]
Recording
# Mark a pomodoro as completed
pomw complete TASK_ID [-e END_TIME]`
# Mark an internal or external interruption
pomw interrupt TASK_ID {internal|external}
# Void a pomodoro
pomw void TASK_ID
# Add non pomodoro time
pomw nonpom TASK_ID [-q QUANTITY] [-d DURATION] [-s START_TIME] [-e END_TIME]
Reporting
# Print the To Do Today sheet
pomw tdt
Special notation for quantities
To reduce the number of subcommands needed by the CLI (unplan or delete commands for example), I implemented a special notation for the QUANTITIES arguments
+X => Current value = Current value + X
-X => Current value = Current value - X
X => Current value = X
For example if you look at the following series of commands:
pomw plan 2 -q 1
# Planned pomodoros for task 2 is 1
pomw plan 2 -q +1
# Planned pomodoros for task 2 is 2
pomw plan 2 -q 1
# Planned pomodoros for task 2 is 1
pomw plan 2 -q -1
# Planned pomodoros for task 2 is 0
Configuration
The configuration file should be located at $HOME/.config/pomw/pomwrc
This example shows the supported configuration values
[pomodoro]
# Pomodoro length in minutes
length = 30
[timew]
# Should pomw sync values to Time Warrior
sync = False
Taskwarrior and Timewarrior integration
Pomodorowarrior never mark tasks as completed in Taskwarrior, it only adds Pomodoros to a task. Every time a Pomodoro gets marked as completed, the time is logged in Timewarrior.
Development
Build System
Starting with 0.0.3 we replace setuptools with poetry.
Poetry is PEP 518 compliant, and uses pyproject.toml for configuration. In my opinion it provides for a simpler development experience.
Poetry recommends that you install it isolated from the rest of your system. This can be done by running the install script:
curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python
Release
The script ./release.py have been developed to automate cutting releases. It requires git-extras to be installed on your system.
If you want to manually create a release, you have to follow these rules:
- Only release from
master - Update
pomw/__version__.pywith the new version number - Update
pyproject.tomlwith the new version number - Update
Changelogwith the commits since the previous release
Upload a release to PYPI
Once a tag is created, and pushed to Gitlab, the release is automatically uploaded to PYPI by the Gitlab CI publish stage.
TODO
- Implement more reports
- Tracking pomodoros using the interactive user interface
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pomw-0.0.9.tar.gz.
File metadata
- Download URL: pomw-0.0.9.tar.gz
- Upload date:
- Size: 23.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/0.12.11 CPython/3.7.2 Linux/4.14.48-coreos-r2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
84ca2def3794c1196596468689f67e81a9125bf766ba227c6a2083a9e9c6d4d2
|
|
| MD5 |
c708f9e9f0eb121a373520effcdb7669
|
|
| BLAKE2b-256 |
e3fe743cc4a76f41bcd66335fcaaa3d17afb73c9d06676a86c599629720cdf97
|
File details
Details for the file pomw-0.0.9-py3-none-any.whl.
File metadata
- Download URL: pomw-0.0.9-py3-none-any.whl
- Upload date:
- Size: 75.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/0.12.11 CPython/3.7.2 Linux/4.14.48-coreos-r2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
38f2473d83dca655eee59713d6b73443884d7f4d0b794317b2980d62e20ee366
|
|
| MD5 |
57d4a52b66098472edc6f5088c8c9fda
|
|
| BLAKE2b-256 |
551edaf5272d5ae4843cbf0252959a654dc83571ae87a0daa879b8dcacb07629
|