Skip to main content

image.png

PyPI - Version Coverage Status PyPI - Downloads Code style: black PyPI - Python Version PyPI - License

Quick Start

Install the app on GitHub and use todoon in your workflows!

Install TODO-Or-Not on GitHub

  - name: run-todoon
    uses: Start-Out/todo-or-not@v0.14.7           

Try it out locally! (see on PyPi)
Or, if you are using Arch Linux, there is an AUR Package maintained by @mward25.

pip install --upgrade todo-or-not
todoignore-util -pc .gitignore 
todoignore-util -ut .git
todoon

Overview

TODO or not to do, that is the question

TODO Or Not (todoon) is, in essence, a simple tool that checks your project for TODOs and FIXMEs and lets you know where they are.

You can also integrate this tool into your GitHub workflow via actions, and automate generating issues from the discovered TODOs and FIXMEs. These generated issues will include a link to the file in GitHub as well as the surrounding lines. Check out the wiki for more details on the GitHub Issues integration!

Example

Check out this example code and the issues that it yielded!

###########################
# Example usage of # todoon
###########################

def an_unfinished_function():
    # TODO Finish documenting todo-or-not
    print("Hello, I'm not quite done, there's more to do!")
    print("Look at all these things I have to do!")
    a = 1 + 1
    b = a * 2
    print("Okay I'm done!")


def a_broken_function():
    # This line might not show up in the generated issue because it's too far away
    #  from the line that triggered the issue.
    # The search for pertinent lines will stop when it hits a line break or the
    #  maximum number of lines, set by PERTINENT_LINE_LIMIT
    a = [
        1, 1, 2, 3
    ]
    b = sum(a)
    c = b * len(a)
    return c / 0  # FIXME I just don't know why this doesn't work!
    # Notice that this line will be collected

    # But this one won't, because there's some whitespace between it and the trigger!


def a_skipping_example():
    # Since the line below has `# todoon` in it, the checker will give it a pass even though it has the magic words!
    print("Sometimes you really have to write TODO or FIXME, like this!")  # todoon


def a_very_pretty_example():
    # TODO Titled Issue! | In this format, you can define a title and a body! Also labels like #example or #enhancement
    print("Check this out!")

Workflow Inputs

  • region [default: "en_us"] Give an ISO code for todoon to report in your language (limited language support, see the wiki)
  • issues [default: true] If true, will generate issues from TODO/FIXMEs found. Otherwise, TODO/FIXMEs will just be printed to workflow logs
  • max_issues [default: 10] Maximum number of issues todoon may generate, if any more are attempted then the run will fail
  • closed_issue_check [default: 0] todoon will fail if any more than the specified number of closed issues are found (set to -1 to allow any number of closed issues)
  • silent [default: true] If true, todoon will NOT exit nonzero if any TODO/FIXMEs are found (good for generating issues when expected)
  • verbosity [default: 2] 0. --very-quiet (none)
    1. --quiet (summary)
    2. (default)
    3. --verbose (all)
  • python_version [default: "3.11.7"] Version of Python to use (defaults to 3.11.7)
  • todoon_version [default: ""] Version of todoon to use ("" for the latest)

Contributing

Please target dev/contribute with your fork, and please use the appropriate PR template!

Help

See the wiki!

Fun Promo Video

https://github.com/Start-Out/todo-or-not/assets/10158233/d2c860f6-efd8-4ca4-b5d6-fcabe0bae6ce

Metadata

Release files for todo-or-not 0.14.11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for todo-or-not 0.14.11
File Size Uploaded
todo_or_not-0.14.11.tar.gz 34.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for todo-or-not 0.14.11
File Interpreter ABI Platform
todo_or_not-0.14.11-py3-none-any.whl Python 3 none any Details

Total release size: 69.5 kB

Release files / todo_or_not-0.14.11.tar.gz

Download URL todo_or_not-0.14.11.tar.gz
Size 34.1 kB
Tags Source
SHA-256 checksum
How to use checksums
f7d8d3e8fadf6a20f0faddc0819900a8a2e3057a3cb9bde91b29f47813214732
BLAKE2b-256 checksum
How to use checksums
3f422f77bb9ec1881195a654bbb39a2f64e1984cf9224f114b2c352175ea0c5c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / todo_or_not-0.14.11-py3-none-any.whl

Download URL todo_or_not-0.14.11-py3-none-any.whl
Size 35.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
492bc40d9cf4bda7440b5f2ab472248319bfb4038e5f130c59a26ff874cb7499
BLAKE2b-256 checksum
How to use checksums
1fce5e1dce220c2cfea1a46326e60a0fb57443f575c0503c9b88b17f72b3f929
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page