Replace symbolicator-cli with a profiler-edit node tool#5965
Merged
mstange merged 1 commit intofirefox-devtools:mainfrom Apr 24, 2026
Merged
Replace symbolicator-cli with a profiler-edit node tool#5965mstange merged 1 commit intofirefox-devtools:mainfrom
mstange merged 1 commit intofirefox-devtools:mainfrom
Conversation
4f6398f to
8132e6c
Compare
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #5965 +/- ##
==========================================
+ Coverage 85.32% 85.33% +0.01%
==========================================
Files 323 323
Lines 32169 32214 +45
Branches 8849 8871 +22
==========================================
+ Hits 27448 27490 +42
- Misses 4290 4293 +3
Partials 431 431 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Contributor
|
What a branch name 😃 |
fatadel
approved these changes
Apr 24, 2026
Contributor
fatadel
left a comment
There was a problem hiding this comment.
Thanks for the PR! I've added some minor comments but LGTM overall 👍🏻
Also, additional integration tests could improve the test coverage. Namely, the two new capabilities are not exercised end-to-end:
- Gzip output: no test writes to out.json.gz. A quick integration test that outputs .gz, reads the bytes, checks the gzip magic (or round-trips through decompress) and compares to the uncompressed snapshot would be valuable.
- URL / HASH loading: only the argv parsing is tested; the actual fetch paths are not. A window.fetchMock test paralleling the existing symbolication test would close that gap cheaply.
3ff7557 to
2092294
Compare
Before:
```
node dist/symbolicator-cli.js \
--input samply-profile.json \
--output profile-symbolicated.json \
--server http://localhost:3000
```
After:
```
node node-tools-dist/profiler-edit.js \
-i samply-profile.json \
-o profile-symbolicated.json \
--symbolicate-with-server http://localhost:3000
```
The new tool also accepts a URL or profile storage hash as input, and can
write gzip-compressed output:
```
node node-tools-dist/profiler-edit.js \
--from-hash w1spyw917hg... \
-o out.json.gz \
--symbolicate-with-server http://localhost:8001/abcdef/
```
The reason for this change is that I want to add further ways to
modify profiles in the future (such as an `--insert-label-frames`
argument) and it doesn't really make sense to have a separate tool
for each modification.
This commit also moves the script file to /src/node-tools/ and the output to /node-tools-dist/.
I'm planning to add more scripts of this type in the future.
2092294 to
a802dc1
Compare
Contributor
Author
|
Thanks for the review! I've addressed all the comments and added the missing tests. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Before:
After:
The new tool also accepts a URL or profile storage hash as input, and can write gzip-compressed output:
The reason for this change is that I want to add further ways to modify profiles in the future (such as an
--insert-label-framesargument) and it doesn't really make sense to have a separate tool for each modification.This commit also moves the script file to /src/node-tools/ and the output to /node-tools-dist/. I'm planning to add more scripts of this type in the future.