GothenburgBitFactory / bugwarrior

Pull github, bitbucket, and trac issues into taskwarrior
http://pypi.python.org/pypi/bugwarrior
GNU General Public License v3.0
732 stars 209 forks source link

[Q] Is it possible to set dependency on other tasks ? #972

Open wolass opened 1 year ago

wolass commented 1 year ago

This is not an issue - just a question:

Is it possible to make an issue on GH that will be imported into taskwarrior as a task which depends on other another task? that functionality is important while setting the taks priority.

I haven't found anything about this in the documentation. But whenever I am starting a new repo (that is equl to a data science project in my pipeline) I would like to make a script which sets up a list of issues that need to be done with a new projject. And the tasks have specific orders. So I would like to start with one task and downgrade the others that can't be done when the initial task is not ready. I mean I can not prepare the final report when the initial data is not analyzed, and I cant perform the analysis when the data is ont cleaned.

Is there a way to address that?

I mean I can make a script that puts these tasks directly into the taskwarrior with dependencies. But they will not be available on the gitub repo, hindering collaboration with my partner.

As I understand, is is not possible (on purpose) to add issues into gh from within taskwarrior.

Therefore I would like to make gh issues and import them using bugwarrior with dependencies.

And of course I would like to avoid dubling the tasks generation (into gh and taskwarrior).

ryneeverett commented 1 year ago

The underlying issue is that github does not have native issue dependencies/blockers support. This isn't just a problem for bugwarrior, it's also a problem for all github users.

My understanding is that people generally work around this limitation with a combination of labels and bots which might read comments or interpret manually assigned labels to keep the labels in sync between issues with a dependency relation. I'll admit that I'm not very familiar with these tools or the state of the art at the moment.

Bugwarrior can import labels as tags (github.import_labels_as_tags = True), so if you were using github labels to indicate blocked/blocker status you could weight these tags appropriately to prioritize your tasks. That's probably the best solution available without additional development at the moment.

A more advanced solution would use the same logic as the bots do (analyzing a combination of labels and comments) to create true taskwarrior dependencies. If this was sufficiently standardized we could add it as an optional feature of the github service and do it during synchronization, but otherwise it might make more sense for this to be a third party script that runs after a bugwarrior pull.

My own observation is that Github seems increasingly dedicated to supporting the features demanded by the largest repositories, and this is one of them. I wouldn't be surprised if this lands as a native feature in the next couple years which would make for a straightforward implementation in bugwarrior.