I propose switching our source and release tarballs to be compressed with zstd instead of xz. Most bigger distributions have already done this transition since zstd is faster (especially for decompression) and has similar compression rates.
I suggest that for the next 17 release (17.0.3) I will upload both xz and zstd source packages and we will continue to do that for the rest of the 17 releases. Then for 18 we switch to zstd only. This should give people time to convert their scripts and it will be non-intrusive for the current release.
Unless there are any objections I will propose the patches to export.sh and test_release.sh later this week.
Generally, Iād be wary of such a change; in my experience, zstd isnāt usually quite as readily available out of the box on various systems, compared to xz. I donāt have hard data on this though, itās just my anecdotal evidence.
On the other hand, I donāt use the tarballs directly myself, so I donāt have much stake in the matter anyway.
I am not worried about the availability, considering that Ubuntu, Debian, Arch, and Fedora distributions already use ZSTD as their default compression for packages.
On macOS, at least in Ventura (13.6), neither xz nor zstd are available in the base system. So you have to install these from Homebrew or MacPorts anyway.
That said, usually xz compression is a lot better than zstd, even at its highest settings, so take into account that this will cost more bandwidth and storage. I normally use xz for archiving purposes, zstd for more ārealtimeā compression.
I just checked as well, and came to the same conclusion.
Sure, it can be argued that one needs to install third party tools like CMake anyway. But requiring non-default tools just to extract a tarball is kind of annoying in my experience.
Anyway, I donāt have a stake in the matter - just wanted to add in my PoV.
I tested this and with zstd compression level 12 the sizes increase by 8% over our current xz tarballs. To me thatās a good tradeoff considering the speed of zstd.
7-Zip also uses LZMA compression (actually xz borrowed that from the 7-Zip author), and its compression ratios have been superior to most other tools since quite some time. However, for compression it takes a LOT more time and memory. That is the tradeoff: more pain for the people who make installers, and less download size for the other 99% of users
Debian doesnāt use zstd for packages. It didnāt even support it as an option until January this year; Ubuntu had forked dpkg to add support in a non-upstreamable manner.
Given the evidence in this thread, I think better compression is more important than fast decompression. I havenāt heard anyone complain that xz is slow for either compression or decompression, but perhaps this is a pain point for Tobias.
Yes it was something that annoyed me and I thought 8% bigger files in the case of the source files was a good trade off. Binaries being 30% bigger is another case entirely. Iāll table this for now.
Agreed that it seems to add additional annoyances without a clear benefit. @tobiashieta as I assume that you are the person most impacted by this change, what are the decompression numbers for you? Have you looked into speeding up xz decompression instead? Iām pretty sure that xz (at least the one bundled with most distribution) doesnāt support multithreaded decompression, but 7zip and pixz do. Perhaps adjusting xz workflows slightly might bring enough improvements to make the switch completely unnecessary.
Thatās not great for the release managers, but I think if you multiply that by 1000s and 1000s of users, the cumulated extra storage and download footprint is a much bigger factor than (de)compression speed, which only happens once anyway.