Project

General

Profile

Misc #16483

How about stopping new *.tar.bz2 releases?

Added by znz (Kazuhiro NISHIYAMA) 6 months ago. Updated 4 months ago.

Status:
Closed
Priority:
Normal
Assignee:
-
[ruby-core:96681]

Description

Current ruby releases generate *.tar.gz, *.tar.bz2, *.tar.xz, and *.zip.
But I think we can stop generating *.tar.bz2.

I think *.tar.bz2 are less merit.
For better size, *.tar.xz exist.
For better compatibility, *.tar.gz and *.zip exist.

I check some programming languages source package archives.

tar.bz2 are rare.

How about stopping *.tar.bz2 since next release?

(I know ruby-build use *.tar.bz2. And it can use *.tar.gz)

Updated by shevegen (Robert A. Heiler) 6 months ago

I don't mind as in I don't need .tar.bz2.

Personally I use .tar.xz; all local archives of source files that I
keep are in .tar.xz format.

(Note that github offers either git clone, or .zip, so .tar.bz2 is
probably becoming more rare every year.)

Updated by alanwu (Alan Wu) 6 months ago

I like it. I’m biased though since I’m a sucker for opportunities to simplify like this one.

If we do go ahead, we should maybe announce it one release in advance to minimize impact.

Updated by Eregon (Benoit Daloze) 6 months ago

ruby-install also uses .tar.bz2 currently, so changing that would mean that existing ruby-install releases (and installations) would no longer work:
https://github.com/postmodern/ruby-install/blob/402cbdeaffb99d105ecd9b93c75828b32f0f382f/share/ruby-install/ruby/functions.sh#L4

Not sure about RVM.

Updated by hsbt (Hiroshi SHIBATA) 6 months ago

I prefer to remove bz2 from release packages. I can change to use gz from bz2 at ruby-build.

Updated by shan (Shannon Skipper) 6 months ago

RVM also primarily uses bz2.

Updated by shan (Shannon Skipper) 6 months ago

If bz2 removal goes forward, it might be nice to deprecate now but not remove until later. It'd be ideal to have working versions of RVM, ruby-install and ruby-build in wide distribution before bz2 goes away. If we change the tools now but don't remove bz2 for a few years, I think it'd go smoother without having users tempted to bypass checksums.

For ruby-install, users will have to upgrade the tool itself to move off bz2. It uses a different repo, ruby-versions, for checksums, so it already has xz, etc. But, the choice of bz2 is hardcoded in ruby-install. Currently, bz2 is used for Ruby and Rubinius and gz is used for MRuby, JRuby and TruffleRuby. Only small code changes are necessary, but everyone would have to upgrade the tool rather than just using the --latest flag to fetch the latest Ruby metadata like normal. Since metadata isn't handled in the tool itself, ruby-install isn't updated frequently. Users tend not to upgrade often and it doesn't have a self-update mechanism.

RVM has bz2 md5 and sha512 checksums hardcoded inline, so it's just the RVM repo to update to new checksums. RVM already has tooling to support alternative decompression, but I'm not sure where all else bz2 might be intertwined. It's probably not too bad after changing a bunch of checksums. Users would need to get an updated version of RVM for bz2 support too, but that's also the normal upgrade mechanism for access to new Ruby metadata—so it's normal for RVM users to upgrade fairly often.

Updated by naruse (Yui NARUSE) 4 months ago

  • Status changed from Open to Closed

From Ruby 2.8, I'll provide only .zip, .gz, and .xz (not provide .bz2).
For 2.7.x or prior we'll still provide also .bz2.

In general we provide

  • .zip for Windows
  • .gz for general Unix environments
  • .xz (or most efficient compression format) for latest Unix

Also available in: Atom PDF