Skip to content

Commit 4564280

Browse files
committed
replace commit placeholder in vendor status with actual commit
1 parent 7586a9f commit 4564280

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

src/bootstrap/bootstrap.py

+26-1
Original file line numberDiff line numberDiff line change
@@ -1162,6 +1162,30 @@ def build_triple(self):
11621162
config = self.get_toml("build")
11631163
return config or default_build_triple(self.verbose)
11641164

1165+
def is_git_repository(self, repo_path):
1166+
return os.path.isdir(os.path.join(repo_path, ".git"))
1167+
1168+
def get_latest_commit(self):
1169+
repo_path = self.rust_root
1170+
author_email = self.stage0_data.get("git_merge_commit_email")
1171+
if not self.is_git_repository(repo_path):
1172+
return "<commit>"
1173+
cmd = [
1174+
"git",
1175+
"-C",
1176+
repo_path,
1177+
"rev-list",
1178+
"--author",
1179+
author_email,
1180+
"-n1",
1181+
"HEAD",
1182+
]
1183+
try:
1184+
commit = subprocess.check_output(cmd, text=True).strip()
1185+
return commit or "<commit>"
1186+
except subprocess.CalledProcessError:
1187+
return "<commit>"
1188+
11651189
def check_vendored_status(self):
11661190
"""Check that vendoring is configured properly"""
11671191
# keep this consistent with the equivalent check in bootstrap:
@@ -1174,7 +1198,8 @@ def check_vendored_status(self):
11741198
eprint(" use vendored sources by default.")
11751199

11761200
cargo_dir = os.path.join(self.rust_root, ".cargo")
1177-
url = "https://ci-artifacts.rust-lang.org/rustc-builds/<commit>/rustc-nightly-src.tar.xz"
1201+
commit = self.get_latest_commit()
1202+
url = f"https://ci-artifacts.rust-lang.org/rustc-builds/{commit}/rustc-nightly-src.tar.xz"
11781203
if self.use_vendored_sources:
11791204
vendor_dir = os.path.join(self.rust_root, "vendor")
11801205
if not os.path.exists(vendor_dir):

0 commit comments

Comments
 (0)