aymanizz / tsktsk

A task list aimed at helping prioritize and categorize your tasks.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

tsktsk

PyPI version Build Maintainability Discord

Tsktsk is a task list aimed at helping prioritize and categorize your tasks. It supports adding tasks in five different categories and prioritizing them based upon their estimated value provided and effort required. There are two options for storing your tasks. Tasks can be stored in a file or they can be stored as Github issues.

Installing

Installing tsktsk is best accomplished with pip.

$ pip install tsktsk

To install the latest development version, clone the repository and install with python setup.py install.

Initializing

To begin with a tsktsk repository must be initialized.

GitHub

Tsktsk can read tasks from a GitHub repository. It will fetch details of the repository and authentication from environment variables or from a local .env file.

For example our .env file may be:

TSKTSK_GITHUB_REPO=ianagbip1oti/tsktsk
TSKTSK_GITHUB_USERNAME=ianagbip1oti
TSKTSK_GITHUB_TOKEN= < insert token here >

The token used here is a personal access token from GitHub.

A GitHub repository may also be specified from the command line using the --github flag. Authentication details must still be configured via environment variables or a .env file.

$ tsktsk --github=ianagbip1oti/tsktsk list

File

Tasks can be stored locally in a file. We can initialize a task list in the current folder by using the init command.

$ tsktsk init
tsktsk initialized.

Using

After initializing we can now begin creating tasks.

$ tsktsk new My First Task
     1 πŸ“¦ NEW: My First Task

There are five categories that tasks can be create in:

  • new for πŸ“¦ NEW: add something new
  • imp for πŸ‘Œ IMPROVE: improve something existing
  • fix for πŸ› FIX: fix a bug
  • doc for πŸ“– DOC: improve documentation
  • tst for βœ… TST: changes related to testing

For example,

$ tsktsk fix My First Bug
     2 πŸ› FIX: My First Bug 

$ tsktsk doc Write README
     3 πŸ“– DOC: Write README 
    
$ tsktsk list
     1 πŸ“¦ NEW: My First Task
     2 πŸ› FIX: My First Bug
     3 πŸ“– DOC: Write README

With no other information tsktsk will order issues in the order they are created. But, this is rarely the most efficient order in which to complete tasks. Some tasks have more value than others, and some tasks will require more or less effort to complete.

We can set the value and effort required for a task when we create it.

$ tsktsk new --value=high My Valuable Task
     4 πŸ“¦ NEW: My Valuable Task                                   V⬆  

$ tsktsk fix --effort=low My Easy Bug
     5 πŸ› FIX: My Easy Bug                                           E⬇ 

$ tsktsk doc --effort=high Write User Guide
     6 πŸ“– DOC: Write User Guide                                      E⬆  
     
$ tsktsk list
     5 πŸ› FIX: My Easy Bug                                           E⬇
     4 πŸ“¦ NEW: My Valuable Task                                   V⬆  
     1 πŸ“¦ NEW: My First Task
     2 πŸ› FIX: My First Bug
     3 πŸ“– DOC: Write README
     6 πŸ“– DOC: Write User Guide                                      E⬆  

With more information tsktsk was able to suggest an order in which the tasks could be completed. Those tasks that are more valuable, or lower effort, give us a better return for our investment of effort, hence they are pushed to the top. Those tasks that are high effort, or lower value, will be pushed towards the bottom.

We can edit our previous tasks if we change our minds about how much value or effort a task is.

$ tsktsk edit 2 --value=high --effort=low
     2 πŸ› FIX: My First Bug                                       V⬆ E⬇ 

$ tsktsk list
     2 πŸ› FIX: My First Bug                                       V⬆ E⬇ 
     5 πŸ› FIX: My Easy Bug                                           E⬇
     4 πŸ“¦ NEW: My Valuable Task                                   V⬆  
     1 πŸ“¦ NEW: My First Task
     3 πŸ“– DOC: Write README
     6 πŸ“– DOC: Write User Guide                                      E⬆ 

Now that task 2 is high value and low effort, tsktsk has moved it to the top of the list.

Finally, after we've done our work, we can mark a task as done.

$ tsktsk done 2

$ tsktsk list
     2 πŸ› FIX: My First Bug                                       V⬆ E⬇ 
     5 πŸ› FIX: My Easy Bug                                           E⬇
     4 πŸ“¦ NEW: My Valuable Task                                   V⬆  
     1 πŸ“¦ NEW: My First Task
     3 πŸ“– DOC: Write README
     6 πŸ“– DOC: Write User Guide                                      E⬆ 

Examples

tsktsk itself uses tsktsk to track issues. After installing tsktsk and cloning the repository, you can run tsktsk --github=ianagbip1oti/tsktsk list to see the current task list for tsktsk development.

Contact

Reach out to the Discord Projects Hub on Discord and look for the tsktsk channel.

Contributing

View the current task list for tsktsk, choose one, and jump right in! (don't let that stop you from working on something not in that list if you think it needs doing)

  • Tox is used for running tests.
    • Run tox -e to run tests with your installed python version
    • Run tox -e fmt to format the code
  • Emoji Log is used for commit messages and pull requests

Thanks

Thanks to Ahmad Awais for Emoji-Log, which is from where we take the task categories and emojis.

Icons made by Freepik from www.flaticon.com

About

A task list aimed at helping prioritize and categorize your tasks.

License:MIT License


Languages

Language:Python 68.3%Language:Gherkin 31.7%