fwcd / mixxx-bisect Goto Github PK
View Code? Open in Web Editor NEWSmall tool for finding Mixxx regressions on Linux, macOS and Windows by binary searching over prebuilt snapshots
License: MIT License
Small tool for finding Mixxx regressions on Linux, macOS and Windows by binary searching over prebuilt snapshots
License: MIT License
This could be done e.g. by adding m1xxx
as a submodule, by querying the GitHub API or both.
Currently, the user manually has to check the available commits in https://downloads.mixxx.org/snapshots/main. We could improve this by e.g. letting the user search a window of the latest n snapshots via a flag.
We should make sure to only use supported architectures, and ideally in their order of preference (arm64 > x86_64 on Apple Silicon Macs, x86_64 on Intel Macs).
We should modularize the regression finder into a proper (installable) Python package and move the default download/mountpoint into ~/.local/state
(but keep it customizable). While we're at it, perhaps we'd want to give the project a more concise name, e.g. mixxxregression
?
Just to make sure that the file was not corrupted during download.
While macOS seems to be able to happily mount images on top of each other, we should probably take care of this:
$ df -h
...
/dev/disk7s1 145Mi 133Mi 23Mi 86% 2686 4294964593 0% /Users/<user>/git/mixxx-regression-finder/mnt
/dev/disk15s1 145Mi 133Mi 23Mi 86% 2685 4294964594 0% /Users/<user>/git/mixxx-regression-finder/mnt
/dev/disk16s1 156Mi 133Mi 25Mi 85% 2806 4294964473 0% /Users/<user>/git/mixxx-regression-finder/mnt
/dev/disk17s1 158Mi 133Mi 25Mi 85% 2821 4294964458 0% /Users/<user>/git/mixxx-regression-finder/mnt
The reason for why these couldn't be unmounted in the first place was possibly due to mixxxdj/mixxx#11516.
We could e.g. decide to cache recent snapshots, or the first few layers of the binary search tree (though regressions will likely be located in different parts of the snapshot space, the only comprehensive solution would likely be to cache all snapshots, which would require a lot of space)
Mixxx distributes (binary) nightly builds for Linux for Ubuntu via a PPA12. Unfortunately, it seems as if Launchpad removes older packages3, so we might have to find some other source for the packages. Mixxx does build Debian packages as part of their GitHub Actions CI, these artifacts, however, expire after a while.
For the purposes of this tool, we could look into setting up a clean Debian chroot and installing the package along with its dependencies there. Since dependencies may change, we should investigate how this could be done in a performant way (though Qt 5 and 6 should already be separate packages, so we might be able to get away with always installing the newest versions of the dependencies for the requested snapshot).
Just as a small convenience.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.