-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove the dependency on Zenhub #41
Comments
This is essential to fully expose the DAG publically and remove one of ECC's information asymmetries. |
I'm keen on satisfying this ticket (as far as the title) and I want to hash out the implementation more. I propose the following variation to @daira's proposal above:
FormatThe format is a relation header followed by a bulleted md list of ticket references. This format is chosen for two reasons:
Relations headers must be an md bolded relation name with a colon on a line by itself, for example The relation Each list item line must be Markup and Rendering ExamplesNote: the ticket references chosen are just for illustration and have no relation to this ticket.
-would render as: Blocked-By:
Blocks: Outstanding IssuesLocating metadata in Ticket DescriptionWill this always work well? Can all developers edit the Description to modify links? Over-determined FormatIs allowing both IMO, it may be worth only supporting the |
I started hunting for pre-existing tools to do this. After all, isaacs/github#210 (comment) was filed in 2014. Here's a quick summary after 10m of poking around: First, all of the tools I found are only about tracking the dependencies and modifying close/acceptance criteria to require blockers are closed first. None of them generate the nice DAG visualizations of this repo. Given that, here's a quick evaluation of those tools:
IMO, it's worth considering using the syntax of Actions marketplace:
I guess it does not / cannot block issues from being closed if blockers remain open, which is awkward. |
Seems you accidentally pinged me from that quote, but I'm glad you did!
I don't commit very often, but that's mostly because I think it has reached a "good enough" point where it works without issue on all my repos, and I usually just commit to follow up on complaints or suggestions.
Sure, if you want the regex, here it is: const regex = /blocked by:? ([#\d, ]+)/ig; // this is in JS
As far as I know, there is no way for a bot to prevent an issue from being closed. Also, even though there is a relatively new "wontfix" close reason, many people still use the standard close to represent wontfix/no response/can't reproduce/already fixed/etc, so blocking issues from closing isn't as important as blocking a PR from being merged when it depends on some other code or features being merged first. Let me know if you have any questions, and feel free to take some code from my repo if that helps. |
Proposal: allow dependencies to be expressed in the initial comment of a ticket, using the following syntax (case-insensitive).
Note that unlike Zenhub, this doesn't prevent creating cycles in the graph. What I suggest is to render a general directed graph rather than a DAG, but colour the arrows that are part of a cycle in red. This makes it clear that cycles are an error and makes them easy to spot in order to fix them manually.
To detect cycles in a directed graph, use any linear-time algorithm for finding strongly connected components, e.g. Tarjan's algorithm, Kosaraju's algorithm, or the Path-based strong components algorithm.
The text was updated successfully, but these errors were encountered: