Skip to content

Read the Docs build times out while compiling ABACUS to generate parameter documentation #8171

Open

Description

@Flying-dragon-boxing

Description

The abacus-rtd Read the Docs build for PR #8093 timed out before reaching Sphinx.

Where it stopped

CMake configuration succeeded with MPI and LCAO disabled:

cmake -Bbuild -GNinja -DCMAKE_INSTALL_PREFIX=install -DENABLE_MPI=OFF -DENABLE_LCAO=OFF

The build was terminated during:

cmake --build build --target install -j $(nproc)

The available log contains no C++ compilation error. Parameter export and Sphinx had not started. The separate abacus-develop RTD check succeeded for the same commit, so the failure is not consistent across the two RTD projects.

Why documentation builds compile ABACUS

The current .readthedocs.yaml builds and installs ABACUS to generate the INPUT parameter documentation from the current code:

install/bin/abacus --generate-parameters-yaml > docs/parameters.yaml
python3 docs/generate_input_main.py docs/parameters.yaml

This makes documentation checks depend on a full executable build fitting within RTD's resource limits. ABACUS will support more abilities and the compiling time will be longer and longer.

Proposed next step

A lightweight parameter-export target, or generating the parameter documentation in GitHub Actions before rendering it on RTD.

Activity

  1. Growl1234 commented on Oct 18, 2026

    @Growl1234
    Collaborator

    ... generating the parameter documentation in GitHub Actions before rendering it on RTD.

    I tried some attempts but failed. And some of them introduce complexity to CI workflow which I think shouldn't be the case. I'm not sure how to resolve the concern in a better way.

    If RTD have some mechanism like API key, it should be possible to build document in GitHub Actions and deploy it to RTD webpage.

  2. Growl1234 commented on Oct 18, 2026

    @Growl1234
    Collaborator

    If RTD have some mechanism like API key, it should be possible to build document in GitHub Actions and deploy it to RTD webpage.

    Good news: I found it have an direct upload approach. That said, adapting to this will mean dropping the currect RTD CI-workflow entirely and requiring a READTHEDOCS_TOKEN.

  3. ABACUS-PR-BOT commented on Oct 22, 2026

    @ABACUS-PR-BOT
    Collaborator

    The timeout is confirmed, but it does not establish a compiler regression: the same abacus-rtd project subsequently built the same commit successfully (531 s, 587 s). The current develop commit 75debc23 also passed in 608 s.

    The failed run's 903 s is the reported build duration; its last build/install command has no retained timing or output. Parameter export and Sphinx are absent from the subsequent command records, so the precise cause of the timing variation remains unknown. The underlying concern still applies: .readthedocs.yaml compiles the configured ABACUS executable before exporting metadata. On the current successful run, build/install took about 475 s, while YAML export took under one second.

    A dedicated exporter reusing the existing registrations is a reasonable next engineering investigation, with same-commit output-equivalence and build-time checks; it has not yet been implemented or tested here. Direct upload is another option, currently beta requiring support enablement and a project-admin API token. It can be adopted per version while other versions retain RTD builds, though uploaded versions then need subsequent uploads. No builds or configuration changes were made in this investigation.

  4. Growl1234 commented on Oct 22, 2026

    @Growl1234
    Collaborator

    Some of my monitoring results may change the description above: I found sometimes a simple apt-get install step goes through 5-10min, which indicates that it's most likely an RTD runner issue. This issue is unable to be fixed from ABACUS side.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions