Package: yui
Yui - personal task managerGit based personal task manager.
100% command line.
(also, Japanese girl name)According to TDD as described in "Extreme Programming: Test Driven Development" by Kent Beck,
we need to start every day with blank sheet of paper, white down small tasks
and stroke out what is done. This is digital replacement for that paper sheets.InstallPip 3pip3 install yui4 dummiesyuiwithout arguments will display helpWorkflow:Add task to the heapyui create task name or short descriprionShow tasks in heapyui list heapPick the task to current day scheduleyui pick %taskId%Show tasks for current dayyui list curOpen task in text editoryui open %taskId%Task file is just md file with yaml headerAdjust status in headerWrite any notes belowSaveWhen you done working, or before next dayMove unfinished tasks back to heapyui reset allArchive tasks with statusdoneyui archive todayView archive for specific dateyui list 2023-01-11Run manual git command on task listyui git %git_command% %git_command_args%Adjust visible scope withyui scopeOptional configuration:.yui/config.yaml.yui/projects/%projectName%.yamlHow it worksThere is git repository behind the scenes. So you have history and you can sync tasks using any git server. History, branches, etc.Create/pick/reset/archive commands will invokegit add+git commitcommands automatically.Task data stored in plain text files.Format markdown(.md) with yaml header.You work with single task using plain text editor, like kateyui tool is used to organize and navigate .md filesThe methodStep 1: Write it down and forget.Once you spot new task or idea - you just add it to the heap, and continue with your current work. So you stay focused.yui createHeapis the most chaotic, unorganised, unsorted,backlogyou can imagine.
Do not waste your time on details, just stock pile it in the heap as is.Imagine that you are working with paper stickers and you have a big box of chaotic notes written on stickers - that's the heap.yui list heapWill show you tasks in the heap in form of tableid | context  | project    | name                                                                   | status
----|----------|------------|------------------------------------------------------------------------|-------
 7  | personal | yui        | show creation date column in task list                                 | new   
 15 | personal | yui        | sanitize slashes in task filename                                      | newFirst column istaskIdyou will need it to manipulate the taskStep 2: pick the task into daily planPick all tasks you are planning to work with today.yui pick %taskId%Will pick the taskyui list curWill display tasks for current day.If you made a mistake, you can return the task back to heapyui reset %taskId%Step 3: open the task in text editoryui open %taskId%Step 4: change status toworkAdjust yaml header, simple replacestatus: newwithstatus: work.You can use any custom statuses, but buildin -new,work,donewill be highlighted inyui listoutput.Step 5: Make notes while you are working on the taskAs for it's just .md file, you can make any notes behind yaml header.Note: you can work with as many tasks at once as you wantThat's just plain text files, after all.Step 6: change task status todoneIn yaml header, replacestatus: workwithstatus: done.Step 7: check your progressyui list curWill get more green lines while you complete the tasks.Step 8: Cleanup workspaceyui reset allWill return unfinished tasks back to the heapyui archive todayWill move onlydonetasks to archive folder with current day. You can also use "yesterday" or specify date as "YYYY-MM-DD", or anything else recognized by phpstrtotime()function.To view archived tasks use:yui list YYYY-MM-DDStep 9: apply gitAll git commands are mapped withyui git.Most used:
-yui git loghistory of changes in tasks
-yui git remote add origin %link%link your task list with remote repository
-yui git pushsave local changes to remote repository
-yui git pullload fresh changes from remote repositoryApllication working folderDefaut:Linux:~/.yuiWindows:c:\Users\%username%\AppData\Local\yuiCan be overwriten withYUI_HOMEenvironment variable, likeYUI_HOME=mypath yui list heapconfig.yamlLocation: %application-working-folder%/config.yamlExample:---# % will be replaced with filename# Examples:#   To run gui editor: nohup kate % > /dev/null 2>&1 &#   To run in terminal: mcedit %# You can use nano, vi, mcedit etc# If not specified, tsk will try EDITOR environment variable and then mcedit, nano, vim, vi, ee in that ordereditor:nohup kate % > /dev/null 2>&1 &---Project configurationLocation: %application-working-folder%/projects/%projectName%.yamlExample file:projects/myProject.yaml:---# this will make YUI_PROJECT=myProject yui create test# work the same way as YUI_PROJECT=myProject YUI_CONTEXT=myContext yui create testdefaultContext:myContext---View archivesyui list_archivesWill display list of existing archives, from application working folderTo view tasks in single archive useyui list %archiveName%Advanced optionsYou can pick range of items like sopick 141,142,143..154