Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No way to tell what code is in the daily snapshot #14363

Closed
dfandrich opened this issue Aug 3, 2024 · 5 comments
Closed

No way to tell what code is in the daily snapshot #14363

dfandrich opened this issue Aug 3, 2024 · 5 comments

Comments

@dfandrich
Copy link
Contributor

I did this

Until PR #14331, the daily snapshot contained the file CHANGES that contained the git log of the code in the tar ball. Since that has been removed, there is no longer any way to tell what code is in the daily snapshot. The date itself lets you make an approximate guess, but it can't get you closer than about 7 commits (on average).

I expected the following

There should be a way to tell exactly which commit the snapshot represents to replace CHANGES. Some possibilities:

  • A file "commit.txt" containing the git hash. This probably isn't realistic for the official release tarballs because of the same reason log2changes was removed (the code might come from the tar ball itself, not git). But, it's reasonable to have in the daily snapshots.
  • A git tag for each snapshot build. While this would work, it doesn't help users who just download the tarball or don't have git and want to track the code. It will also bloat the number of tags by more than 50×.
  • An external mapping of snapshot date and commit number. A JSON file or API hosted on the curl.se site would make this data available to those interested, although it's not nearly as convenient as having it in the snapshot itself.

This is an issue for Test Clutch, since there is now no way to associate test results from a snapshot build to the code that generated those results.

curl/libcurl version

8.10.0-DEV (commit 8a9c227)

operating system

OS independent

@bagder
Copy link
Member

bagder commented Aug 3, 2024

Would adding the short HEAD commit hash to the filename work?

Like : curl-8.10.0-20240803-b6089c35d.tar.bz2 ?

@dfandrich
Copy link
Contributor Author

dfandrich commented Aug 3, 2024 via email

@bagder
Copy link
Member

bagder commented Aug 3, 2024

but it means that the daily snapshot name is no longer predictable

The latest snapshot is not truly predictable now either since there is no telling exactly when there is a new snapshot to download - which has shown the times where the daily snapshot builds have failed . That's why we offer the NEWEST comments. But I see what you mean.

The autocurl script at https://curl.se/dev/howto.html would break

Hm, yes right. I suppose that approach might still be used...

@bagder
Copy link
Member

bagder commented Aug 3, 2024

How about this. A generated docs/snapshot-commit.txt file with the latest commit hash?

$ tar xOf curl-8.9.11.tar.xz curl-8.9.11/docs/snapshot-commit.txt
acbc6b703

I'll make a PR with the necessary changes and then we can make the snapshots done using this option. It does break the reproducibility, but we would only use this for daily snapshots and not for actual releases.

bagder added a commit that referenced this issue Aug 3, 2024
If the second argument to the script is "commit", then this will generate a
file named `docs/snapshot-commit.txt` that contains the latest commit hash
(git rev-parse --short HEAD) at the time the script runs.

Doing this breaks the reproducibility so it will not be used for "real"
releases but is meant for automated daily snapshots and similar.

Reported-by: Dan Fandrich
Fixes #14363
@dfandrich
Copy link
Contributor Author

dfandrich commented Aug 3, 2024 via email

bagder added a commit that referenced this issue Aug 4, 2024
If the second argument to the script is "commit", then this will generate a
file named `docs/snapshot-commit.txt` that contains the latest commit hash
(git rev-parse --short HEAD) at the time the script runs.

Doing this breaks the reproducibility so it will not be used for "real"
releases but is meant for automated daily snapshots and similar.

Reported-by: Dan Fandrich
Fixes #14363
bagder added a commit that referenced this issue Aug 4, 2024
If the second argument to the script is "commit", then this will
generate a file named `docs/tarball-commit.txt` that contains the latest
commit hash (git rev-parse HEAD) at the time the script runs.

Doing this breaks the reproducibility so it will not be used for "real"
releases but is meant for automated daily snapshots and similar.

Reported-by: Dan Fandrich
Fixes #14363
Closes #14369
@bagder bagder closed this as completed in 0a94578 Aug 4, 2024
dfandrich added a commit that referenced this issue Aug 6, 2024
This disambiguates the source code being tested. The output format is
the same as when testing out of a git repo, but with no description and
a long hash.

Ref: #14363
Closes #X
dfandrich added a commit that referenced this issue Aug 7, 2024
This disambiguates the source code being tested. The output format is
the same as when testing out of a git repo, but with no description and
a long hash.

Ref: #14363
Closes #14429
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging a pull request may close this issue.

2 participants