Skip to content
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

bisect bot #8

Open
timotheecour opened this issue Apr 16, 2020 · 5 comments
Open

bisect bot #8

timotheecour opened this issue Apr 16, 2020 · 5 comments
Labels
help wanted Extra attention is needed

Comments

@timotheecour
Copy link
Collaborator

timotheecour commented Apr 16, 2020

slightly off topic (so feel free to close) but since you have this repo that helps with tooling around issues, just wanted to suggest an idea I've been having (timotheecour/Nim#98 (comment)):

the goal is to automate bisection in github issues to:

  • find whether an issue is a regression or an always existing bug
  • find which commit/PR introduced the regression
  • further reduce

this would work using the following ingredients:

  • github issue trigger that would run a dedicated CI pipeline (see https://help.github.com/en/actions/reference/events-that-trigger-workflows#issue-comment-event-issue_comment)
  • the pipeline would search for a specific section in issue (mentioned in issue template), or simply parsing existing issue template
  • the pipeline would run git bisect to find the 1st commit introducing the bug (if any)
  • the git bisect output would be automatically inserted as metadata on issue (there are API's for that)
  • the author who sent out offending commit gets notified automatically

knowing which commit introduced an issue makes life a bit easier.

This could be usable as a cmdline/library (without github integration) as well as a CI pipeline.
That kind of tool exists in some software companies and is quite useful.

note

draft below

In my ideal world this would work:

  • user submits a bug, following (possibly revised) issue template; a good bug will be minimized, include all relevant context (via your tool, but IMO we can improve it a bit to reduce friction, eg using single cmd, we can discuss this separately)
  • nim-bisectbot (bisect bot #8) takes over in the background:
  • it gets notified via github API
  • parses issue content to extract info it needs (example code)
  • verifies validity of the bug otherwise it notifies bug author
  • runs git bisect to find 1st offending commit
  • notifies author of offending commit
  • finds which OS the bug appears on (amongst all CI machines), to check if it's machine specific
  • reduces the bug as much as possible, using nim-dustmite (see [TODO] nim-dustmite source code minimization tool for automated bug reduction nim-lang/Nim#8276; it works amazingly well in D, I've saved a ton of time in the past thanks to D's dustmite)
@juancarlospaco
Copy link
Owner

I have the same idea for few months now.

@timotheecour timotheecour changed the title automated bisection for github issues bisect bot Apr 16, 2020
@timotheecour
Copy link
Collaborator Author

timotheecour commented Apr 17, 2020

@juancarlospaco btw are you on Nim's gitter ? couldn't find your login name (also tried to contact your via email..)

@juancarlospaco
Copy link
Owner

Nope.

@juancarlospaco
Copy link
Owner

@timotheecour
Copy link
Collaborator Author

see nim-lang/Nim#18119

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants