Five years ago, I gave a lightning talk at Gophercon 2015 where I presented a
tool that I had just released. I was quite proud of myself, as I had worked hard
on it and felt it was a great value proposition. The tool looked at the touched
packages between the local tree and upstream, e.g. origin/master
, calculate
all the affected packages by the local changes, including transitive
dependencies and would only run the affected tests, in parallel! It made running
tests on large projects much more pleasant. This was a time when go test
didn’t even try to build packages without test, that go test
execution was
still serial and no caching was done.
This tool was a total failure from a popularity perspective, but at the end of my lightning talk I took the occasion to talk about side projects I had started, one which was really just a quick hack, panicparse.
For this one, I felt the value proposition was hard to explain, so I decided to make an animated GIF. I think it’s the best marketing I ever done (which says much about my marketing skills):
This tool became quite popular, and it still being used a lot 5 years later, the repo is cloned over a thousand time per day.
Over time, I improved it a bit, converted the initial adhoc parsing into a
formal state machine, but I made little externally visible improvements. I had a
fair number of ideas, but one that kept bugging me was to replace the dreaded
/debug/pprof/goroutine?debug=2
from package
net/http/pprof with the bucketing
algorithm I had created for panicparse. The current state of the world these
days gave me inspiration to take a stab at doing it.
Today, I’m glad to announce the new package github.com/maruel/panicparse/stack/webstack added in panicparse v1.4.0. It enables taking a snapshot of your service while running and presents a useful webpage with links to both the documentation and the source code when possible. Leveraging my incredible animated GIFs skills, I decided to create a brand new animated GIF to present its power:
Please try it out, if you like it please star the GitHub project, and please file suggestions as issues on github.com/maruel/panicparse.
Enjoy!