Skip to content

[llvm][release] Add links to commonly used release packages #147719

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

Merged
merged 4 commits into from
Jul 29, 2025

Conversation

DavidSpickett
Copy link
Collaborator

@DavidSpickett DavidSpickett commented Jul 9, 2025

This adds download links to the GitHub release pages for common platforms. The automatically built packages' links are automatically revealed once the builds are complete. For packages built by hand, hidden links are included in the text for release uploaders to reveal later.

The approach taken:

  • "LLVM x.y.z Release" becomes the title for this links section.
  • Automatically built packages are commented out with special markers so we can find them to uncomment them later.
  • There is placeholder text for the time between release creation and release tasks finishing.
  • Hand built packages have release links but these will need to be un-commented by release uploaders.
  • I have used vendor names for the architectures, that casual users would recognise.
  • Their signature file is linked as well. I expect most will ignore this but better to show it to remind people it exists.
  • I called it "signature" as a generic term to cover the .jsonl and .sig files. Instructions to use these were added to the text in a previous change.

@DavidSpickett
Copy link
Collaborator Author

Putting this up now for quicker feedback, have not managed to run this yet.

@llvmbot
Copy link
Member

llvmbot commented Jul 9, 2025

@llvm/pr-subscribers-github-workflow

Author: David Spickett (DavidSpickett)

Changes

This adds links to the release packages that are automatically built using GitHub, so that users of those platforms can find them more easily.

The approach taken:

  • "LLVM x.y.z Release" becomes the title for this links section.
  • No hand built files are linked to because we can't be sure when or if they will appear. It's better that users check the full file list if they need those.
  • This means no Windows links, but I've specifically mentioned Windows just below the links to mitigate this.
  • I have tried to use the vendor names for the architectures, that casual users would recognise.
  • Their signature file is linked as well. I expect most will ignore this but better to show it to remind people it exists.
  • I called it "signature" as a generic term to cover the .jsonl and .sig files, but we're not linking to any .sig files yet.
  • Links are initially commented out and there is a placeholder string. Once all binaries are built, the placeholder is removed and the download links revealed (we wait for them all so we don't have many jobs racing to update the release text).

I considered generating this using a lot of templates, but considering the small number of links and how useful it is to see the layout in the Python file, I prefer writing it out.


Full diff: https://github.com/llvm/llvm-project/pull/147719.diff

2 Files Affected:

  • (modified) .github/workflows/release-tasks.yml (+26)
  • (modified) llvm/utils/release/github-upload-release.py (+43-1)
diff --git a/.github/workflows/release-tasks.yml b/.github/workflows/release-tasks.yml
index d55098345d89e..98e3f48391fa6 100644
--- a/.github/workflows/release-tasks.yml
+++ b/.github/workflows/release-tasks.yml
@@ -111,3 +111,29 @@ jobs:
     # Called workflows don't have access to secrets by default, so we need to explicitly pass secrets that we use.
     secrets:
       RELEASE_TASKS_USER_TOKEN: ${{ secrets.RELEASE_TASKS_USER_TOKEN }}
+
+  uncomment-download-links:
+    name: Uncomment download links
+    runs-on: ubuntu-24.04
+    permissions:
+      contents: write # For updating the release message.
+    needs:
+      - validate-tag
+      - release-create
+      - release-binaries
+
+    steps:
+      - name: Install Dependencies
+        run: |
+          sudo apt-get update
+          sudo apt-get install python3-github
+
+      - name: Checkout LLVM
+        uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+
+      - name: Uncomment Download Links
+        env:
+          GITHUB_TOKEN: ${{ github.token }}
+          USER_TOKEN: ${{ secrets.RELEASE_TASKS_USER_TOKEN }}
+        run: |
+          ./llvm/utils/release/./github-upload-release.py --token "$GITHUB_TOKEN" --release ${{ needs.validate-tag.outputs.release-version }} --user ${{ github.actor }} --user-token "$USER_TOKEN" uncomment_download_links
diff --git a/llvm/utils/release/github-upload-release.py b/llvm/utils/release/github-upload-release.py
index e9591b00e2b5a..f73b9927c9da9 100755
--- a/llvm/utils/release/github-upload-release.py
+++ b/llvm/utils/release/github-upload-release.py
@@ -45,9 +45,26 @@ def create_release(repo, release, tag=None, name=None, message=None):
         # Note that these lines are not length limited because if we do so, GitHub
         # assumes that should be how it is laid out on the page. We want GitHub to
         # do the reflowing for us instead.
+        #
+        # Once all binaries are built, the HTML comments in the text below will be
+        # used to swap the placeholder text with the now valid download links.
         message = dedent(
             """\
-LLVM {release} Release
+## LLVM {release} Release
+
+<!-- DOWNLOAD_LINKS_BEGIN
+**Linux:**
+* [x86_64](https://github.com/llvm/llvm-project/releases/download/llvmorg-{release}/LLVM-{release}-Linux-X64.tar.xz) ([signature](https://github.com/llvm/llvm-project/releases/download/llvmorg-{release}/LLVM-{release}-Linux-X64.tar.xz.jsonl))
+* [Arm64](https://github.com/llvm/llvm-project/releases/download/llvmorg-{release}/LLVM-{release}-Linux-ARM64.tar.xz) ([signature](https://github.com/llvm/llvm-project/releases/download/llvmorg-{release}/LLVM-{release}-Linux-ARM64.tar.xz.jsonl))
+
+**macOS:**
+* [Apple Silicon](https://github.com/llvm/llvm-project/releases/download/llvmorg-{release}/LLVM-{release}-macOS-ARM64.tar.xz) (ARM64) ([signature](https://github.com/llvm/llvm-project/releases/download/llvmorg-{release}/LLVM-{release}-macOS-ARM64.tar.xz.jsonl))
+* [Intel](https://github.com/llvm/llvm-project/releases/download/llvmorg-{release}/LLVM-{release}-macOS-X64.tar.xz) (x86-64) ([signature](https://github.com/llvm/llvm-project/releases/download/llvmorg-{release}/LLVM-{release}-macOS-X64.tar.xz.jsonl))
+DOWNLOAD_LINKS_END -->
+
+Download links for Linux and macOS will appear above once builds complete. <!-- DOWNLOAD_LINKS_PLACEHOLDER -->
+
+For Windows, and any other variants of platform and architecture, check the full list of release packages at the bottom of this release page.
 
 ## Package Types
 
@@ -95,6 +112,29 @@ def upload_files(repo, release, files):
         print("Done")
 
 
+def uncomment_download_links(repo, release):
+    release = repo.get_release("llvmorg-{}".format(release))
+
+    new_message = []
+    to_remove = [
+        "DOWNLOAD_LINKS_BEGIN",
+        "DOWNLOAD_LINKS_END",
+        "DOWNLOAD_LINKS_PLACEHOLDER",
+    ]
+    for line in release.message.splitlines():
+        for comment in to_remove:
+            if comment in line:
+                continue
+        new_message.append(line)
+
+    release.update_release(
+        name=release.name,
+        message="\n".join(new_message),
+        draft=release.draft,
+        prerelease=release.prerelease,
+    )
+
+
 parser = argparse.ArgumentParser()
 parser.add_argument(
     "command", type=str, choices=["create", "upload", "check-permissions"]
@@ -137,3 +177,5 @@ def upload_files(repo, release, files):
     create_release(llvm_repo, args.release)
 if args.command == "upload":
     upload_files(llvm_repo, args.release, args.files)
+if args.commands == "uncomment_download_links":
+    uncomment_download_links(llvm_repo, args.release)

@DavidSpickett DavidSpickett changed the title [llvm][release] Add links to automatically built packages on release pages [llvm][release] Add links to automatically built packages Jul 9, 2025
@DavidSpickett
Copy link
Collaborator Author

DavidSpickett commented Jul 9, 2025

This is like #147021 but the links are initially hidden and are revealed by a workflow step updating the release text.

Copy link

github-actions bot commented Jul 11, 2025

✅ With the latest revision this PR passed the Python code formatter.

@DavidSpickett
Copy link
Collaborator Author

I've tested this on my fork and it works. I did manually run the workflow, so there's a small chance it has permissions issues in reality.

The version of PyGitHub available in apt has some differences from the current one on GitHub so you'll notice some parameter names swapped like "name" and "title". They mean the same things.

@DavidSpickett
Copy link
Collaborator Author

DavidSpickett commented Jul 11, 2025

Here's the release I tested on - https://github.com/DavidSpickett/llvm-project/releases/tag/vX.Y.Z-1, so you can see how it renders (I did not create the release using the script, so it still has {release} left in it).

Removing the lines leaves more empty lines than you'd usually want but Markdown will normalise it them to 1 blank line anyway. So I didn't go to any effort to tidy that up.

…page

This adds links to the release packages that are automatically built
using GitHub, so that users of those platforms can find them more
easily.

The approach taken:
* "LLVM x.y.z Release" becomes the title for this links section.
* No hand built files are linked to because we can't be sure
  when or if they will appear. It's better that users check the
  full file list if they need those.
* This means no Windows links, but I've specifically mentioned
  Windows just below the links to mitigate this.
* I have tried to use the vendor names for the architectures,
  that casual users would recognise.
* Their signature file is linked as well. I expect most will ignore
  this but better to show it to remind people it exists.
* I called it "signature" as a generic term to cover the .jsonl
  and .sig files, but we're not linking to any .sig files yet.
* Links are initially commented out and there is a placeholder string.
  Once all binaries are built, the placeholder is removed and the
  download links revelealed (we wait for them all so we don't
  have many jobs racing to update the release text).

I considered generating this using a lot of templates, but
considering the small number of links and how useful it is to
see the layout in the Python file, I prefer writing it out.
@DavidSpickett DavidSpickett force-pushed the llvm-releaselinks-uncomment branch from 451e71b to 58b89c8 Compare July 14, 2025 09:28
@DavidSpickett
Copy link
Collaborator Author

ping!

Would be cool to get this (or #147021 which is a more limited version) into 21.x if possible, but of course up to you whether the risk with that is acceptable. I thought that the release candidate stage would be a good time to try this out before the first proper release.


Download links for Linux and macOS will appear here when all the builds have completed. <!-- DOWNLOAD_LINKS_PLACEHOLDER -->

For Windows, and any other variants of platform and architecture, check the full list of release packages at the bottom of this release page.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was there a reason we couldn't make neat links for windows?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can make neat links but I was being conservative and only adding the things we build automatically. As we know that those links will always become valid, and we know when because there is a workflow handling that.

I can add links that release uploaders to manually reveal, and change this disclaimer text to just be "any other variants".

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also I didn't want to give release uploaders more jobs without asking, but the worst that happens is the links remain hidden.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll add the links and you can see what you think.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added links for the hand built packages, to be uncommented once they're uploaded.

I discovered that nesting HTML comments isn't a great idea, so I've changed the formatting to repeat the platform name on each line like "Linux x86", "Linux AArch64" etc. This means you can reveal just one line and it still makes sense.

I moved the pointer to the forum up higher, because I think people should know that earlier.

Removed the note about installers vs. archives for Windows because it was a pain to fit in, and the actual text it refers to is only a few lines below anyway. If people are still not finding it, we can improve that later.

Copy link
Collaborator Author

@DavidSpickett DavidSpickett Jul 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the comment below is the final links after all comments get removed. So this would be once automatic builds are done and all the release uploaders have done their bits. I've checked that it renders the same here in a comment as on the release page.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LLVM {release} Release

For any other variants of platform and architecture, check the full list of release packages at the bottom of this release page. If you do not find a release package for your platform, you may be able to find a community built package on the LLVM Discourse forum thread for this release. Remember that these are built by volunteers and may not always be available. If you rely on a platform or configuration that is not one of the defaults, we suggest you use the binaries that your platform provides, or build your own release packages.

@DavidSpickett
Copy link
Collaborator Author

In theory we could modify the release audit job to find any hidden links and see if their files have been uploaded yet. If you would like me to pursue that, I can, but I'll do it as an add on to this as there's already a lot here.

@DavidSpickett
Copy link
Collaborator Author

ping! @tru

@tru
Copy link
Collaborator

tru commented Jul 29, 2025

LGTM thanks!

@DavidSpickett DavidSpickett changed the title [llvm][release] Add links to automatically built packages [llvm][release] Add links to commonly used release packages Jul 29, 2025
@DavidSpickett DavidSpickett merged commit e8b7183 into llvm:main Jul 29, 2025
9 checks passed
@DavidSpickett DavidSpickett deleted the llvm-releaselinks-uncomment branch July 29, 2025 11:35
@DavidSpickett DavidSpickett added this to the LLVM 21.x Release milestone Jul 29, 2025
@github-project-automation github-project-automation bot moved this to Needs Triage in LLVM Release Status Jul 29, 2025
@DavidSpickett
Copy link
Collaborator Author

/cherry-pick e8b7183

@llvmbot
Copy link
Member

llvmbot commented Jul 29, 2025

/pull-request #151129

@llvmbot llvmbot moved this from Needs Triage to Done in LLVM Release Status Jul 29, 2025
@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 29, 2025

LLVM Buildbot has detected a new failure on builder lldb-arm-ubuntu running on linaro-lldb-arm-ubuntu while building .github,llvm at step 6 "test".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/18/builds/19710

Here is the relevant piece of the build log for the reference
Step 6 (test) failure: build (failure)
...
PASS: lldb-unit :: ValueObject/./LLDBValueObjectTests/4/12 (3336 of 3345)
PASS: lldb-unit :: ValueObject/./LLDBValueObjectTests/5/12 (3337 of 3345)
PASS: lldb-unit :: ValueObject/./LLDBValueObjectTests/6/12 (3338 of 3345)
PASS: lldb-unit :: ValueObject/./LLDBValueObjectTests/7/12 (3339 of 3345)
PASS: lldb-unit :: ValueObject/./LLDBValueObjectTests/8/12 (3340 of 3345)
PASS: lldb-unit :: ValueObject/./LLDBValueObjectTests/9/12 (3341 of 3345)
PASS: lldb-unit :: tools/lldb-server/tests/./LLDBServerTests/0/2 (3342 of 3345)
PASS: lldb-unit :: tools/lldb-server/tests/./LLDBServerTests/1/2 (3343 of 3345)
PASS: lldb-unit :: Process/gdb-remote/./ProcessGdbRemoteTests/8/35 (3344 of 3345)
TIMEOUT: lldb-api :: tools/lldb-dap/module/TestDAP_module.py (3345 of 3345)
******************** TEST 'lldb-api :: tools/lldb-dap/module/TestDAP_module.py' FAILED ********************
Script:
--
/usr/bin/python3.10 /home/tcwg-buildbot/worker/lldb-arm-ubuntu/llvm-project/lldb/test/API/dotest.py -u CXXFLAGS -u CFLAGS --env LLVM_LIBS_DIR=/home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/./lib --env LLVM_INCLUDE_DIR=/home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/include --env LLVM_TOOLS_DIR=/home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/./bin --arch armv8l --build-dir /home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/lldb-test-build.noindex --lldb-module-cache-dir /home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/lldb-test-build.noindex/module-cache-lldb/lldb-api --clang-module-cache-dir /home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/lldb-test-build.noindex/module-cache-clang/lldb-api --executable /home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/./bin/lldb --compiler /home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/./bin/clang --dsymutil /home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/./bin/dsymutil --make /usr/bin/gmake --llvm-tools-dir /home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/./bin --lldb-obj-root /home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/tools/lldb --lldb-libs-dir /home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/./lib --cmake-build-type Release /home/tcwg-buildbot/worker/lldb-arm-ubuntu/llvm-project/lldb/test/API/tools/lldb-dap/module -p TestDAP_module.py
--
Exit Code: -9
Timeout: Reached timeout of 600 seconds

Command Output (stdout):
--
lldb version 22.0.0git (https://github.com/llvm/llvm-project.git revision e8b7183d866f9d51511d5570f5f1f632046ef983)
  clang revision e8b7183d866f9d51511d5570f5f1f632046ef983
  llvm revision e8b7183d866f9d51511d5570f5f1f632046ef983

--
Command Output (stderr):
--
========= DEBUG ADAPTER PROTOCOL LOGS =========
1753789799.342708111 (stdio) --> {"command":"initialize","type":"request","arguments":{"adapterID":"lldb-native","clientID":"vscode","columnsStartAt1":true,"linesStartAt1":true,"locale":"en-us","pathFormat":"path","supportsRunInTerminalRequest":true,"supportsVariablePaging":true,"supportsVariableType":true,"supportsStartDebuggingRequest":true,"supportsProgressReporting":true,"$__lldb_sourceInitFile":false},"seq":1}
1753789799.347254992 (stdio) <-- {"body":{"$__lldb_version":"lldb version 22.0.0git (https://github.com/llvm/llvm-project.git revision e8b7183d866f9d51511d5570f5f1f632046ef983)\n  clang revision e8b7183d866f9d51511d5570f5f1f632046ef983\n  llvm revision e8b7183d866f9d51511d5570f5f1f632046ef983","completionTriggerCharacters":["."," ","\t"],"exceptionBreakpointFilters":[{"description":"C++ Catch","filter":"cpp_catch","label":"C++ Catch","supportsCondition":true},{"description":"C++ Throw","filter":"cpp_throw","label":"C++ Throw","supportsCondition":true},{"description":"Objective-C Catch","filter":"objc_catch","label":"Objective-C Catch","supportsCondition":true},{"description":"Objective-C Throw","filter":"objc_throw","label":"Objective-C Throw","supportsCondition":true}],"supportTerminateDebuggee":true,"supportsBreakpointLocationsRequest":true,"supportsCancelRequest":true,"supportsCompletionsRequest":true,"supportsConditionalBreakpoints":true,"supportsConfigurationDoneRequest":true,"supportsDataBreakpoints":true,"supportsDelayedStackTraceLoading":true,"supportsDisassembleRequest":true,"supportsEvaluateForHovers":true,"supportsExceptionFilterOptions":true,"supportsExceptionInfoRequest":true,"supportsFunctionBreakpoints":true,"supportsHitConditionalBreakpoints":true,"supportsInstructionBreakpoints":true,"supportsLogPoints":true,"supportsModulesRequest":true,"supportsReadMemoryRequest":true,"supportsSetVariable":true,"supportsSteppingGranularity":true,"supportsValueFormattingOptions":true,"supportsWriteMemoryRequest":true},"command":"initialize","request_seq":1,"seq":0,"success":true,"type":"response"}
1753789799.348805428 (stdio) --> {"command":"launch","type":"request","arguments":{"program":"/home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/lldb-test-build.noindex/tools/lldb-dap/module/TestDAP_module.test_compile_units/a.out","initCommands":["settings clear --all","settings set symbols.enable-external-lookup false","settings set target.inherit-tcc true","settings set target.disable-aslr false","settings set target.detach-on-error false","settings set target.auto-apply-fixits false","settings set plugin.process.gdb-remote.packet-timeout 60","settings set symbols.clang-modules-cache-path \"/home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/lldb-test-build.noindex/module-cache-lldb/lldb-api\"","settings set use-color false","settings set show-statusline false"],"disableASLR":false,"enableAutoVariableSummaries":false,"enableSyntheticChildDebugging":false,"displayExtendedBacktrace":false},"seq":2}
1753789799.349205971 (stdio) <-- {"body":{"category":"console","output":"Running initCommands:\n"},"event":"output","seq":0,"type":"event"}
1753789799.349281549 (stdio) <-- {"body":{"category":"console","output":"(lldb) settings clear --all\n"},"event":"output","seq":0,"type":"event"}
1753789799.349298477 (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set symbols.enable-external-lookup false\n"},"event":"output","seq":0,"type":"event"}
1753789799.349312544 (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set target.inherit-tcc true\n"},"event":"output","seq":0,"type":"event"}
1753789799.349325895 (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set target.disable-aslr false\n"},"event":"output","seq":0,"type":"event"}
1753789799.349341393 (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set target.detach-on-error false\n"},"event":"output","seq":0,"type":"event"}
1753789799.349355459 (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set target.auto-apply-fixits false\n"},"event":"output","seq":0,"type":"event"}
1753789799.349369287 (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set plugin.process.gdb-remote.packet-timeout 60\n"},"event":"output","seq":0,"type":"event"}
1753789799.349433422 (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set symbols.clang-modules-cache-path \"/home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/lldb-test-build.noindex/module-cache-lldb/lldb-api\"\n"},"event":"output","seq":0,"type":"event"}
1753789799.349449396 (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set use-color false\n"},"event":"output","seq":0,"type":"event"}
1753789799.349464655 (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set show-statusline false\n"},"event":"output","seq":0,"type":"event"}
1753789799.513510704 (stdio) <-- {"command":"launch","request_seq":2,"seq":0,"success":true,"type":"response"}
1753789799.513604403 (stdio) <-- {"event":"initialized","seq":0,"type":"event"}
1753789799.513803720 (stdio) <-- {"body":{"module":{"addressRange":"0xf79cf000","debugInfoSize":"983.3KB","id":"253BA35E-436C-EC85-2949-CBD09E38AFEE-11B460BF","name":"ld-linux-armhf.so.3","path":"/usr/lib/arm-linux-gnueabihf/ld-linux-armhf.so.3","symbolFilePath":"/usr/lib/arm-linux-gnueabihf/ld-linux-armhf.so.3","symbolStatus":"Symbols loaded."},"reason":"new"},"event":"module","seq":0,"type":"event"}
1753789799.514297962 (stdio) <-- {"body":{"module":{"addressRange":"0x520000","debugInfoSize":"1.1KB","id":"3941EC6E","name":"a.out","path":"/home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/lldb-test-build.noindex/tools/lldb-dap/module/TestDAP_module.test_compile_units/a.out","symbolFilePath":"/home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/lldb-test-build.noindex/tools/lldb-dap/module/TestDAP_module.test_compile_units/a.out","symbolStatus":"Symbols loaded."},"reason":"new"},"event":"module","seq":0,"type":"event"}
1753789799.514647245 (stdio) --> {"command":"setBreakpoints","type":"request","arguments":{"source":{"name":"main.cpp","path":"main.cpp"},"sourceModified":false,"lines":[5],"breakpoints":[{"line":5}]},"seq":3}
1753789799.527642965 (stdio) <-- {"body":{"breakpoints":[{"column":3,"id":1,"instructionReference":"0x53073C","line":5,"source":{"name":"main.cpp","path":"main.cpp"},"verified":true}]},"command":"setBreakpoints","request_seq":3,"seq":0,"success":true,"type":"response"}
1753789799.527974844 (stdio) --> {"command":"configurationDone","type":"request","arguments":{},"seq":4}

tru pushed a commit to llvmbot/llvm-project that referenced this pull request Aug 1, 2025
)

This adds download links to the GitHub release pages for common
platforms. The automatically built packages' links are automatically
revealed once the builds are complete. For packages built by hand,
hidden links are included in the text for release uploaders to reveal
later.

The approach taken:
* "LLVM x.y.z Release" becomes the title for this links section.
* Automatically built packages are commented out with special markers so
we can find them to uncomment them later.
* There is placeholder text for the time between release creation and
release tasks finishing.
* Hand built packages have release links but these will need to be
un-commented by release uploaders.
* I have used vendor names for the architectures, that casual users
would recognise.
* Their signature file is linked as well. I expect most will ignore this
but better to show it to remind people it exists.
* I called it "signature" as a generic term to cover the .jsonl and .sig
files. Instructions to use these were added to the text in a previous
change.

(cherry picked from commit e8b7183)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

Successfully merging this pull request may close these issues.

4 participants