Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upAbility to save a build and restore it for faster bisecting #14258
Comments
|
Was any progress made on that? |
|
No, but this sounds useful. |
|
Looks interesting. |
|
I think we can add a command
|
|
This would be so useful for my rust projects as well! I wonder if it might make sense to implement this as a custom cargo command, rather than via mach? Would y'all be opposed to that? |
|
A custom cargo command sounds useful, but it might be tricky to allow it to work with Servo due to our peculiarities. I don't think we would spend any time porting our solution to Rust and making it generic, as a result. |
|
If it's not too much trouble, could you expound on what those peculiarities are? I'm assuming it'd be useful to know them regardless of how this might be implemented. |
|
We have DMG and MSI nightlies for macOS and Windows, so there are special ways to unpack those so the binaries can actually be executed. |
Rational:
When working on layout/css, I usually need to compare the reftest result before/after a patch, sometimes even comparing between multiple branches. Needing to rebuild before we run a test is not very efficient. We could workaround this by saving the test result, but you never know which test is required.
Proposal:
Let's build a
machcommand like this (just a rough idea)./mach cache savecopies thetarget/debugfolder and give it a unique identifier, could be the commit hash./mach cache restore <hash>overrides the currenttarget/debugwith the specified version previously saved./mach cache restorelist the saved versions and let you select which one to restore./mach cache listonly list but not restore--releaseflag does the above with thetarget/releasefolder./mach cache cleandeletes all the saved cacheUse case
./mach cache savetwo versions before and after a patch, then we can run test on them and compare the results back and forthAny feedback is welcome, especially on naming :)