toodles: Manage the TODO entries in your code

[ library, mit, program, project-management ] [ Propose Tags ]

Toodles scrapes your entire repository for TODO entries and organizes them so you can manage your project directly from the code. View, filter, sort, and edit your TODO's with an easy to use web application. When you make changes via toodles, the edits will be applied directly the TODO entries in your code. When you're done, commit and push your changes to share them with your team!


[Skip to Readme]
Versions [faq] 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.1.0.4, 0.1.0.5, 0.1.0.6, 0.1.0.7, 0.1.0.8, 0.1.0.9, 0.1.0.10, 0.1.0.11, 0.1.0.12, 0.1.0.13, 0.1.0.14, 0.1.0.15, 0.1.0.16, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.1.0, 1.1.1
Dependencies aeson (==1.3.1.1), base (>=4.4.0 && <5), base64-bytestring (==1.0.0.1), blaze-html (==0.9.1.1), bytestring (>=0.10.8.2 && <0.11), cmdargs (==0.10.20), directory (==1.3.1.5), extra (==1.6.13), megaparsec (==6.5.0), MissingH (>=1.4.0.1 && <1.5), process (>=1.6.3.0 && <1.7), regex-posix (==0.95.2), RSA (>=2.3.0 && <2.4), servant (==0.14.1), servant-blaze (==0.8), servant-server (==0.14.1), strict (==0.3.2), text (==1.2.3.1), time (>=1.8.0.2 && <1.9), wai (==3.2.1.2), warp (==3.2.25), yaml (==0.8.32) [details]
License MIT
Copyright 2018 Avi Press
Author Avi Press
Maintainer mail@avi.press
Category Project Management
Home page https://github.com/aviaviavi/toodles#readme
Bug tracker https://github.com/aviaviavi/toodles/issues
Source repo head: git clone https://github.com/aviaviavi/toodles
Uploaded by aviaviavi at Tue Feb 19 17:30:42 UTC 2019
Distributions NixOS:1.1.1
Executables toodles
Downloads 1826 total (331 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs not available [build log]
All reported builds failed as of 2019-02-19 [all 3 reports]

Modules

  • Config
  • License
  • Parse
  • Server
  • ToodlesApi
  • Types

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for toodles-1.1.1

[back to package description]

Toodles

Build Status Hackage Gitter chat

Toodles scrapes your entire repository for TODO entries and organizes them so you can manage your project directly from the code. View, filter, sort, and edit your TODO's with an easy to use web application. When you make changes via toodles, the edits will be applied directly the TODO entries in your code. When you're done, commit and push your changes to share them with your team!

Toodles Screenshot

TODO details

Specify details about your TODO's so that you can filter and sort them with ease! Specify details within parenthesis and separate with the | delimeter.

# TODO(assignee|p=1|keys=vals|#tags)

Priority

The key p=<integer> will be interpreted as a priority number

KeyVals

Use arbitrary key value pairs <key>=<value>|<key2>=<value2>|... and design any organization scheme you wish! A good use for this is to enter dates of deadlines for TODO's that you can sort on in Toodles

Tags

A detail starting with #, eg #bug|#techdebt|#database|... will be interpreted as a tag, which can be used to label and group your TODO's.

Assign

Assign your TODO's to someone. Any plain word that will be interpreted as an assignee.

# TODO(bob) - something we need to do later

Per Project Configuration

You can configure toodles by putting a .toodles.yaml file in the root of your project. See this repo's .toodles.yaml for the full configuration spec.

Currently via config you can:

  • Set files to ignore via a list of regular expressions
  • Specify your own flags to scan for other than the built-ins (TODO, FIXME, XXX)

Ignoring Files

Ignore as many files as you can! Large autogenerated files will slow Toodles down quite a bit. Check the output of the server to see any files/folders that may be causing slowness for your repo and add them to the ignore section your .toodles.yaml If the performance of Toodles is not good enough for your use case, please open an issue.

Scanned Languages

These languages will be scanned for any TODO's:

  • C/C++
  • C#
  • CSS/SASS
  • Elixir
  • Erlang
  • Go
  • Haskell
  • HTML
  • Java
  • Javascript
  • Kotlin
  • Lua
  • Objective-C
  • PHP
  • Plaintext files (*.txt)
  • Protobuf
  • Python
  • React Javascript (JSX)
  • Ruby
  • Rust
  • Scala
  • Shell / Bash
  • Swift
  • Typescript
  • Vue (scripts only)
  • Yaml

Submit a PR if you'd like a language to be added. There will eventually be support for this to be user configurable

Running with Docker

You can run a pre-built toodles for your current directory via docker:

# execute toodles for the directory you are currently in:
$ docker run -it -v $(pwd):/repo -p 9001:9001 aviaviavi/toodles

Just mount your project into the container's /repo and direct a port of your choice to the container's 9001.

For convenience this repository also provides a Dockerfile to automatically build toodles.

# to build container run:
$ cd /path/to/toodles/repo
$ docker build -t toodles .
# afterwards you can run the following command to execute toodles for the
# directory you are currently in:
$ docker run -it -v $(pwd):/repo -p 9001:9001 toodles

Installing manually

The best way to install manually is with stack. Just a stack install --resolver=lts-12.14 toodles and you're done! Alternatively, with GHC 8.4.3 you can use cabal.

You'll also need to PyCrypto. If you have pip, you can run:

$ pip install pycrypto

If you've closed the toodles repo directly, you can also run

$ cd path/to/toodles
$ pip install -r requirements.txt

Running

Invoking toodles with no arguments will treat the current directory as the project root and will start a server on port 9001. You can set these with the -d and -p flags, respectively.

# $ toodles -d <root directory of your project> -p <port to run server>
# for more info run:
# $ toodles --help
$ toodles -d /path/to/your/project -p 9001
# or simply
$ toodles

Contributing

Contributions in any form are welcome! A few bits of info:

  • Don't be shy, ask questions! Contributing to Toodles should be welcoming for people at any level of programming familiarity. Whether it's a new feature, bug fix, or docs, any contribution is very appreciated.
  • Open an issue or jump into the chat room on gitter
  • Before you start coding, please comment or mark a particular issue as "in progress", or even open your pull request as a work in progress (WIP). This is to help avoid having multiple people work on the same thing.
  • If github issues don't cut it, feel free to reach out on gitter or twitter @avi_press