Skip to content

Upgrade fastzip to v0.1.9, fixes invalid timestamps

Arran Walker requested to merge 28928-fastzip-v0.1.9 into main

What does this MR do?

Upgrades fastzip to v0.1.9, fixing an issue where no timestamp is encoded for some zip entries.

Why was this MR needed?

Some Zip entries were missing modification timestamps.

What's the best way to test this MR?

Creating a cache/archive, with at least 2 compressible files and using zipinfo will reveal that previously, we were not storing the native DOS-style modification timestamp, nor the Extended Timestamp that appears in the "Extra Data" of a ZIP entry.

I've used this job to test with (with the shell executor, on MacOS):

.gitlab.ci.yml
variables:
  FF_USE_FASTZIP: "true"

stages:
  - upload
  - download

upload_artifact:
  stage: upload
  script:
    - mkfile -n 10m file1
    - mkfile -n 10m file2
    - touch -m -d "2020-01-01 00:00:00" file1
    - touch -m -d "2020-01-02 00:00:00" file2
  artifacts:
    paths:
      - file1
      - file2

download_artifact:
  stage: download
  script:
    - ls -al
    - stat file1
    - stat file2

Before this change

If you download the artifact and inspect with infozip, the last modified timestamp will read "1980 000 0 00:00:00".

The second job's files won't have 2020-01-02 00:00:00 as the modification date, but todays date and time.

With this change

Downloading and inspecting the artifact with infozip with have both DOS and Unix extra timestamps with 2020-01-02 00:00:00.

The second job's stats calls with contain 2020-01-02 00:00:00 as the last modification date.

What are the relevant issue numbers?

Closes #28928 (closed)

Edited by Arran Walker

Merge request reports