Skip to content

Request a GitHub Actions concurrency increase from GitHub Support #2241

Description

@cpunion

This issue tracks submitting the following concurrency increase request to GitHub Support.

Support ticket title

Request to increase GitHub Actions concurrency for xgo-dev/llgo — 50 total jobs / 20 macOS jobs

Support ticket body

Hello GitHub Support,

We maintain xgo-dev/llgo, a public open-source project.

We would like to request an increase in standard GitHub-hosted runner concurrency for the xgo-dev organization, used primarily by the xgo-dev/llgo repository.

Requested limits:

  • Total concurrent jobs: 50
  • Maximum concurrent macOS jobs: 20, included in the total above

The organization is currently on the GitHub Free plan, whose documented standard runner limits are 20 total concurrent jobs and 5 concurrent macOS jobs.

About LLGo

LLGo is an LLVM-based Go compiler and a subproject of XGo. Its goal is to preserve Go source compatibility, progressively improve compatibility with the official Go standard library, and make the broader C ecosystem directly accessible to Go and XGo programs through C-compatible ABIs.

The project already provides:

  • Go-like build, run, test, and install workflows
  • Direct C and C++ interoperability
  • Python ABI bindings and generated packages, including integrations with libraries such as NumPy, pandas, PyTorch, and Matplotlib
  • A growing Go standard-library compatibility and coverage suite
  • Native Linux and macOS compiler/runtime coverage
  • Cross-compilation and embedded target profiles and commands
  • WASI runtime testing and js/wasm build validation

Python interoperability is already usable today. JavaScript interoperability is currently experimental and is being developed together with the WebAssembly runtime.

Our next development stages include:

  • Closing the remaining Go standard-library and runtime compatibility gaps
  • Supporting additional Go versions and toolchain combinations
  • Strengthening native Linux and macOS support across architectures
  • Expanding embedded platform coverage
  • Expanding WASI and JavaScript/WebAssembly runtime coverage
  • Automating integration with more C and C++ ecosystem libraries

These targets require real platform-specific testing. In particular, Darwin runtime behavior, Mach-O generation, ABI behavior, linking, debugging, and native dependencies cannot be validated by Linux runners alone.

Current CI pressure

At the time of this request, a typical full pull request triggers approximately 9 workflows and 39 GitHub-hosted runner jobs:

  • Approximately 26 Linux/Ubuntu jobs
  • Approximately 13 macOS jobs

The current 5-job macOS limit means that even one pull request must pass through at least three batches of macOS jobs. When pull requests and updates to main overlap, every active pull request experiences runner queues.

Here are representative examples from PR #2237:

In these cases, most of the pull-request wall-clock time was spent waiting for runner capacity rather than compiling or testing.

Optimizations already made

We are actively reducing CI demand rather than relying only on a higher limit:

  • Most workflows cancel superseded runs from the same pull request or branch.
  • llgo test uses bounded package-level parallelism inside the test command.
  • Ubuntu testing has been reduced to two shards.
  • macOS package testing has been reduced to one primary shard.
  • Redundant macOS compatibility coverage has been removed or moved to lighter release smoke tests.
  • Build and dependency caching are used.
  • Parallel build improvements are also in progress.
  • We continue to preserve standard-library test coverage while reducing duplicate jobs.

These optimizations have shortened execution time and reduced shard count, but they cannot remove the required platform and toolchain matrix.

Why 50 total and 20 macOS

A full pull request currently contains about 39 runner jobs, including about 13 macOS jobs.

A limit of 50 total jobs would allow one complete pull-request matrix to make progress while leaving bounded capacity for main, release, or targeted validation jobs.

A limit of 20 macOS jobs would allow one current pull-request matrix plus essential main or release validation without allowing two unrestricted full macOS matrices at once.

The matrix will grow as LLGo expands native, embedded, and WebAssembly coverage, so the requested limits also provide reasonable near-term capacity without being unbounded.

We will continue using cancellation, bounded internal parallelism, reduced shards, and CI utilization monitoring. This request is specifically for job concurrency; we are not requesting additional artifact storage.

Could you please increase the xgo-dev organization’s standard GitHub-hosted runner limits to:

  • 50 total concurrent jobs
  • 20 concurrent macOS jobs

If the full increase cannot be granted immediately, we would appreciate guidance on a staged or temporary open-source project increase.

Thank you for your consideration.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions