From 317f7d69a0a7f4c2b6bbd2b7613c8bdd04b1ecbc Mon Sep 17 00:00:00 2001 From: George Adams Date: Fri, 12 Jun 2026 12:50:58 +0100 Subject: [PATCH] Ship .asc signature alongside .sig Produce an .asc PGP signature file alongside the existing .sig for every tar.gz archive. The .sig remains the default/primary extension; .asc is shipped in parallel for compatibility with upstream Go tooling (e.g. official Dockerfiles). Fixes https://github.com/microsoft/go/issues/181 --- eng/_util/cmd/sign/archive.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/eng/_util/cmd/sign/archive.go b/eng/_util/cmd/sign/archive.go index b76451d3c6b..e8fccba3ca0 100644 --- a/eng/_util/cmd/sign/archive.go +++ b/eng/_util/cmd/sign/archive.go @@ -428,10 +428,10 @@ func (a *archive) prepareArchiveSignatures(ctx context.Context) ([]*fileToSign, if err := ctx.Err(); err != nil { return nil, err } - // Copy the archive file to have .sig suffix, e.g. "tar.gz" to "tar.gz.sig". The signing - // process sends the "tar.gz.sig" file to get a signature, then replaces the "tar.gz.sig" - // file's content in-place with the result. We need to preemptively make a renamed copy of the - // file so we end up with both the original file and sig on the machine. + // Copy the archive file with a ".sig" suffix. The signing process sends this file to get a + // signature, then replaces its content in-place with the result. We need to preemptively make + // a renamed copy of the file so we end up with both the original file and signature on the + // machine. log.Printf("Copying file for signature generation: %q -> %q", a.latestPath(), a.sigPath()) if err := copyFile(a.sigPath(), a.latestPath()); err != nil { return nil, err @@ -461,6 +461,10 @@ func (a *archive) copyToDestination(ctx context.Context) error { if err := copyFile(filepath.Join(*destinationDir, a.name+".sig"), a.sigPath()); err != nil { return err } + // Also produce an .asc file (same content) to match upstream Go's convention. + if err := copyFile(filepath.Join(*destinationDir, a.name+".asc"), a.sigPath()); err != nil { + return err + } return nil }