naggie / dstask

Git powered terminal-based todo/note manager -- markdown note page per task. Single binary!
https://calbryant.uk/blog/dstask-a-taskwarrior-alternative/
MIT License
805 stars 47 forks source link

"dstask in the wider ecosystem": integrations with github, email, todoist/phone apps, etc? #77

Closed Dieterbe closed 3 years ago

Dieterbe commented 4 years ago

Hello! I've been on the hunt for a good task manager. taskwarrior came close, but I want yaml tasks and git sync to be central to the solution, not an afterthought, and I am pretty good at Go but terrible at C++, so dstask is looking quite attractive.

One central theme I struggle with when it comes to task management, is different tools and contexts.

For example:

Finally, I work from home as a business owner. I don't have clear cut "office hours" vs "personal hours". I think mixing personal and professional tasks is worthwhile (I can pick the right task based on mood, energy level, practical things going on, availability of other people, etc), as long as i make sure that the time spent on each category is balanced and I track time spent properly. From that perspective, this blogpost about taskwarrior made a lot of sense to me. In particular:

So anyway, specifically then, I wonder how dstask can be implemented "at the heart of a wider context"

In particular: 1) could we pull in certain tasks from Github and mix them with other tasks? Perhaps the summary could follow a convention like

summary: GH/<org>/<repo>/number <title from GH issue here>

For proper syncing, I think a given GH repo, org and issue number should deterministically lead to a task UUID. Perhaps we could just hash it to a UUID but technically i don't think that's a valid UUIDv4 (which should be randomly generated) but i doubt it matters. Syncing the other way (from dstask to GH) would be nice, but for now this could be manual / a unidirectional sync from GH to dstask 2) as far as todoist, i have no strong feelings about it. any app on an android phone that lets me view and manage tasks that would sync bidirectionally with git/dstask would do the job. While I have little android app development, I'm not afraid to roll up my sleeves here. At least I know todoist has a bunch of golang libraries/tools, so perhaps I might pursue building a sync tool unless someone has a better idea? 3) email.. aka the last frontier. I already explained my vision, and i wonder if it resonates with others. But I personally don't have the ambition yet to go solve that (it doesn't help when you have multiple accounts, some imap, some gmail). Mostly curious for other ideas/input here.

If you made it this far, thanks for reading :)

dontlaugh commented 4 years ago

My story is a lot like yours. I was very excited and intrigued by taskwarrior. I spent quite a bit of time on it. But at the end of the day, dstask was a simpler solution that gave me reliable sync with much less ops effort. Git is a great solution for a personal task manager.

I spent years as a paying customer of Remember the Milk. But the lack of a solid, supported command line tool became a dealbreaker. I also found their API difficult to use. (I still believe that their Android and desktop apps are quite good)

Here is why taskwarrior is brilliant (to me):

  1. it is absolutely usable standalone, with almost no setup. This is an admirable design principle.
  2. via a fairly simple "query language", taskwarrior acts as an interface to a task database. It has some fancy built in graphs, but really the core is taking input, manipulating some files on disk, and rendering output.

I would advocate keeping #81 out of core, but designing an architecture that supports plugins that have that functionality. To me, this relates to the concept of hooks, perhaps "pre-sync" hooks or "additional sync" hooks, as well as the eventual need for a config file format.

To me, the core architecture is: query language, on disk format, output

We would do well to proceed carefully, because if we do, we can have an ecosystem as powerful as taskwarrior's.


I also think #12 should be considered regarding architectural questions, because I suspect that it will be most elegantly solved by introducing some kind of append-only transaction log directory, or some other metadata that we check in and share among machines. Solving for recurring tasks is an interesting problem that will benefit from careful design, imo

Dieterbe commented 4 years ago

We would do well to proceed carefully, because if we do, we can have an ecosystem as powerful as taskwarrior's.

agreed. Although that ecosystem looks a bit like a mess. I do think we can make this project more attractive by including some optional features out of the box (for syncing etc).

Seems like there's plenty of related topics to hash out. Perhaps time to organize a group call and hash out some things, and see if we're aligned on vision etc? @naggie

dontlaugh commented 4 years ago

I took the liberty of starting a channel in the gophers slack and adding you. I'm often online, so I can respond there.

I'll be moving over the next few weeks, so my availability will be sporadic, but I'm happy to chat.

https://gophers.slack.com channel is #dstask

Dieterbe commented 3 years ago

well, there isn't anything left to discuss here. We now have github import (#81), a mobile/web app coming possibly, and a productive meeting (#90) that led to me to believe we agree on general philosophy at least for now :)