Open Bug 1579224 Opened 5 years ago Updated 2 years ago

Use zstd as the standard package format for test / build archives in CI

Categories

(Firefox Build System :: Task Configuration, enhancement)

enhancement

Tracking

(Not tracked)

People

(Reporter: catlee, Unassigned)

References

(Blocks 1 open bug)

Details

zstd gives us much faster, and more efficient compression than zip, gz, or bz2.

We should standardize on using zstd for most packages used in CI. For example:

  • tests.tar.gz should be tests.tar.zst
  • target.tar.bz2 should be target.tar.bz2

There will of course be some exceptions (e.g. apk files), but in general we should standardize on a single archive format wherever possible.

See Also: → 733530
Depends on: 1579223

(In reply to Chris AtLee [:catlee] from comment #0)

  • target.tar.bz2 should be target.tar.bz2

You mean .zst. That being said, that should be compensated by beetmover or something recompressing as bz2 before publishing.

Also, something to keep in mind: this impacts running mach package locally, which should automatically install the module in the virtualenv when required (mach taskcluster-load-image does that, for example)

it also impacts doing artifact builds. mach needs to be able to use zstd to consume/generate zstd archives.

I've done some work to see what's involved in getting us moved over to zst everywhere.

Some things have been are pretty straightforward, like adjusting the build system, mozharness, mozfile, etc. to produce and consume tar.zst archives.

The hardest part has been ensuring that the python module is importable everywhere. In some cases it's been easier to have the command-line tools installed, and then to call out to zstd from our various harnesses to do the compression/decompression.

In particular, mozharness wants to download and unpack archives before it sets up its own virtualenv.

Patches can be seen on try, e.g.: https://treeherder.mozilla.org/#/jobs?repo=try&revision=84a458965a0417c061f2250a7a8e3aca3f0e84b8

Bugbug thinks this bug should belong to this component, but please revert this change in case of error.

Component: General → Task Configuration
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.