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

Write git-commit-{sha,info} for Cargo in source tarballs #124553

Merged
merged 1 commit into from
Apr 30, 2024

Conversation

pietroalbini
Copy link
Member

@pietroalbini pietroalbini commented Apr 30, 2024

Right now Cargo doesn't populate the commit hash or date in its version output when it's built from the plain source tarball. That's because we don't include the git information for it, and Cargo's build script doesn't pick it up.

This PR partially solves the problem by storing the git information for Cargo in src/tools/cargo in the plain source tarball. We store separate information because even when built in CI Cargo uses its own git information rather than Rust's.

This PR will also require a change in the Cargo repository to consume this information (rust-lang/cargo#13832), but it doesn't have to be blocked on the Cargo PR being merged.

This will allow Cargo's build script to pick it up, and populate the
correct git information in its version output.
@rustbot
Copy link
Collaborator

rustbot commented Apr 30, 2024

r? @onur-ozkan

rustbot has assigned @onur-ozkan.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) labels Apr 30, 2024
@onur-ozkan
Copy link
Member

@bors r+

@bors
Copy link
Contributor

bors commented Apr 30, 2024

📌 Commit 7a5038f has been approved by onur-ozkan

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Apr 30, 2024
bors added a commit to rust-lang/cargo that referenced this pull request Apr 30, 2024
Populate git information when building Cargo from Rust's source tarball

### What does this PR try to resolve?

Right now Cargo doesn't populate the commit hash or date in its version output when it's built from Rust's plain source tarball (like `rustc-1.77.2-src.tar.xz`). That's because Cargo's build script only looks for information in the `.git` directory, which is missing from that tarball.

I opened rust-lang/rust#124553 to have bootstrap inject a `git-commit-info` file in `src/tools/cargo` when building the plain source tarball, containing the correct git information. This is the approach also used by the compiler.

This PR updates the build script to read the information from that file if there is no `.git` and the file is present.

### How should we test and review this PR?

To test the PR you need to move the `.git` directory somewhere else and create a `git-commit-info` file like this:

```
25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04
25ef9e3d8
2024-04-09
```

Then clearing the build cache and running `cargo run -- -vV` should show the git information in the `git-commit-info` file.

### Additional information

This PR can be merged independently from rust-lang/rust#124553
bors added a commit to rust-lang-ci/rust that referenced this pull request Apr 30, 2024
Rollup of 4 pull requests

Successful merges:

 - rust-lang#124280 (Port repr128-dwarf run-make test to rmake)
 - rust-lang#124299 (Add test for issue 106269)
 - rust-lang#124553 (Write `git-commit-{sha,info}` for Cargo in source tarballs)
 - rust-lang#124561 (Add `normalize()` in run-make `Diff` type)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 9ef81e0 into rust-lang:master Apr 30, 2024
6 checks passed
@rustbot rustbot added this to the 1.80.0 milestone Apr 30, 2024
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Apr 30, 2024
Rollup merge of rust-lang#124553 - ferrocene:pa-cargo-git-info, r=onur-ozkan

Write `git-commit-{sha,info}` for Cargo in source tarballs

Right now Cargo doesn't populate the commit hash or date in its version output when it's built from the plain source tarball. That's because we don't include the git information for it, and Cargo's build script doesn't pick it up.

This PR *partially* solves the problem by storing the git information for Cargo in `src/tools/cargo` in the plain source tarball. We store separate information because even when built in CI Cargo uses its own git information rather than Rust's.

This PR will also require a change in the Cargo repository to consume this information (rust-lang/cargo#13832), but it doesn't have to be blocked on the Cargo PR being merged.
@pietroalbini pietroalbini deleted the pa-cargo-git-info branch May 1, 2024 07:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants