
Show HN: Toodles – Project management directly from the TODO's in your code - aviaviavi
https://github.com/aviaviavi/toodles
======
newhouseb
We used something like this on the teams I lead at Dropbox to (what I felt)
was great effect. We had a script that would regularly run and sync with
Phabricator, our bug tracking tool of choice.

One thing that we did differently, however, was to "assign" TODOs based on
project or team rather than individual people. This way we could triage issues
more flexibly to people according to their workloads and also build in more
immunity to organizational change (when I was around we still had TODOs for
the founders -- ten years in!).

~~~
ryandrake
> One thing that we did differently, however, was to "assign" TODOs based on
> project or team rather than individual people.

If this works for your team, that’s awesome, but beware, I think you’d need a
very disciplined team with good communication for this to work. I’ve found on
some teams, if a task is not assigned to a _single_ individual, nobody feels
“on the hook” to do it. Things assigned to a group can tend to pile up un-
looked-at, because everyone thinks someone else will take care of them. You
can fix this by having some kind of rotating duty, where people pick up
ownership of issues on some schedule but if you’re going that far might as
well just assign directly from the start.

~~~
tijs
* differentiate between backlog and ready for development: (bi)weekly triage * bugs first, then code reviews, then features * order features by priority; PM? Triage as well? * work ready for development list top to bottom

Looks like the tags and keyvals could cover some of that. Maybe a bit hard to
express priority (or change it).

Would be neat if changes in the dashboard would update the todos in your code
(bit scary though)

~~~
aviaviavi
Priority does get encapsulated via the special p=INT key val.

Also the edits you make in the UI actually are applied to the code! :D

My work flow is running a toodles server in a copy of our repo they we reserve
for toodles, and commit the changes after planning meetings or similar.

------
tln
Looks interesting! I'm looking forward to trying it.

The annotation syntax looks powerful but do people really edit thier code to
adjust priorities and assignees?

On a related note, I review `TODO` in PRs and consider whether to allow them
in the codebase; and `DEBUG` to indicate code that shouldn't even be checked
in. Does anyone else have a codetag for this? DEBUG doesn't seem to be a well-
known codetag, and I'd prefer to use something other people use.

~~~
aviaviavi
> Does anyone else have a codetag for this? DEBUG doesn't seem to be a well-
> known codetag, and I'd prefer to use something other people use.

My team now uses `TODO(#pr)`. The #pr tag meaning it should be taken care of
in this pull request, but I don't think that's common. Though maybe if toodles
gets some use it will become more common :)

~~~
0xffff2
Do you open PR's before you start writing code? How do you know what number to
fill in?

~~~
aviaviavi
Ah sorry that was a little confusing. "#" signifies a tag / label in toodles,
so #pr means adding the literal "pr" tag to the todo. So we're not adding a PR
number.

------
rekwah
If you happen to use Probot, there's a plugin that supports automatic issue
creation.

* [https://probot.github.io/](https://probot.github.io/)

* [https://github.com/JasonEtco/todo](https://github.com/JasonEtco/todo)

------
LeonB
This is great. Aaaaand here’s a Microsoft patent covering it:
[http://patft.uspto.gov/netacgi/nph-
Parser?patentnumber=6,748...](http://patft.uspto.gov/netacgi/nph-
Parser?patentnumber=6,748,582)

~~~
mgalgs
Wow... Out of curiosity, how did you find this?

~~~
LeonB
Someone left it as a comment on my blog 10 years ago when I talk about Todo
driven programming. I remembered this happening.

------
vim-guru
I made the very same thing years ago. I remember ending up removing the web-
interface and use the CLI and vim-wrapper instead. I still think the syntax of
the comments etc was pretty good
[http://hkjels.github.io/ntask/](http://hkjels.github.io/ntask/)

------
ckluis
It would be handy if github, gitlab, vs baked this kind of solution directly
into their tooling to help expose todos in open source software

~~~
aviaviavi
Oh that's a cool idea - Maybe there's an opportunity extend this into a
github/gitlab/etc plugin. I'll look into that!

~~~
ckluis
Actually, if you did that you could create your own "open source todos" site
that had links to todos in source code for popular projects

------
mockingbirdy
Neat! We use a TODO.md, but this solution can keep track of the exact
position. Looks very useful.

If there's a way that the developers can run it without installing the Haskell
suite (maybe binary releases for Windows, Linux, macOS), we will try it.

Does it ignore paths like node_modules/ and others or support command line
arguments for that?

~~~
aviaviavi
> If there's a way that the developers can run it without installing the
> Haskell suite (maybe binary releases for Windows, Linux, macOS), we will try
> it.

Great, I was waiting for someone to ask for a binary distribution before
actually going ahead and setting it up. I'll go ahead and do that then.

> Does it ignore paths like node_modules/ and others or support command line
> arguments for that?

Yes, you set a list of regexes per project for toodles to ignore.

~~~
tln
Yes, I'm halfway through installing on my Mac, it'd be much easier to use a
docker container or pre-built binary :)

I created an issue suggesting a docker container, hope that's not annoying!

PS in case it helps others: for macOS10.12 + brew, I had to add:

    
    
        extra-deps: 
        - MissingH-1.4.0.1
    

to `~/.stack/global-project/stack.yaml`

~~~
aviaviavi
Just curious, which stack resolver are you using?

~~~
tln
Whatever `brew install stack` installed...

    
    
       $ stack --version
       Version 1.7.1 x86_64
       ...lots more output, skipped...
    

That's all I know :)

------
TomK32
just like `rake notes` in my rails apps which also lists FIXME and OPTIMIZE.

[https://edgeguides.rubyonrails.org/command_line.html#rails-n...](https://edgeguides.rubyonrails.org/command_line.html#rails-
notes)

------
pokstad
Very cool. Go already has the notion of custom notations in comments for
handling todos and bugs. I wrote about it here:
[http://pokstad.com/2018/07/26/gonotes.html](http://pokstad.com/2018/07/26/gonotes.html)

------
exabrial
Maven has a similar plugin: [https://www.mojohaus.org/taglist-maven-
plugin/](https://www.mojohaus.org/taglist-maven-plugin/)

Example: [https://maven.apache.org/plugins/maven-project-info-
reports-...](https://maven.apache.org/plugins/maven-project-info-reports-
plugin/taglist.html)

------
pvinis
This looks pretty cool, I'll try it.

If you use Xcode, this link has a pretty nice script you can add as a Build
Phase, and it generates warnings out or TODOs.

[https://crunchybagel.com/xcode-todo-warnings-
swift](https://crunchybagel.com/xcode-todo-warnings-swift)

------
faizshah
There's a pretty nice implementation of this sort of idea in atom (I only
played with it tho): [https://imdone.io/](https://imdone.io/)

------
amelius
Off topic, I'm looking for a solution to embed SVG diagrams directly in my
code as comments, with the ability to edit them as in inkscape.

~~~
alanbernstein
This sounds ambitious, but I imagine emacs can do it. Is that a feasible
approach for you?

------
messe
Neat idea! I might throw something like this together for myself in awk for
command line use.

~~~
aviaviavi
Just an fyi, toodles has a CLI command if you pass the `no_server` flag, might
save you some coding.

------
hkai
TODO FIXME write an insightful comment here

