This is the repository for building rust-minidump minidump-stackwalk for Socorro.
make build
builds the Docker container for buildingmake shell
gets you into a shell in the Docker containerbin/build_stackwalker.sh
builds stackwalker and puts a release inreleases/
bin/build_stackwalker.sh
builds stackwalker and puts a release inreleases/
Once you've built stackwalker, you can use it. It'll be in
build/bin/minidump-stackwalk
.
If you have crashstats-tools
installed and a CRASHSTATS_API_TOKEN
, then you can test your stackwalk binary
with bin/run_mdsw.sh CRASHID
.
Submit bugs for the socorro-stackwalker build and test scripts in bugzilla.
Submit bugs for the stackwalker in rust-minidump repo.
All changes must be approved by a code owner.
Patches are manually verified and tested. At some point, we will change this.
This requires a CRASHSTATS_API_TOKEN
with the "View Raw Dumps" and "View Personal Identifiable
Information" permissions.
Create a Python virtual environment and install the requirements from
requirements-dev.txt
.
To regression test changes:
-
Build the stackwalker with the main branch.
-
Build a file consisting of crash ids from Crash Stats:
$ supersearch --crash_report_keys=upload_file_minidump --num=20 > crashids.txt
-
Run regression tests on it:
$ ./bin/generate_regression_data.py crashids.txt
This takes 30-40 minutes to run.
-
Make the changes to the stackwalker you're making.
-
Run regression tests on it again. Again, it takes 30-40 minutes to run.
-
Compare timings and sizes.
$ ./bin/regression_stats.py regr/<FIRSTDIR> regr/<SECONDDIR>
-
Tag main tip:
$ git tag -s vYYYYMMDD.N
For example:
$ git tag -s v20220803.0
In tag comment include link to rust-minidump sha or tag.
For example:
v20220830.0 This is the initial packaging for rust-minidump for Socorro. It's f9933c36 which corresponds with the v0.14.0 release. https://github.com/rust-minidump/rust-minidump/releases/tag/0.14.0
-
Build release:
$ make clean $ make build $ make shell (in container)$ ./bin/build_stackwalker.sh
The .tar.gz file is now in
releases/
directory. -
Push tag to github:
$ git push --tags REMOTE main
-
Make a release on github and upload the release .tar.gz file.