Skip to content

[docs] extend integration guide - #472

Closed
hoe-jo wants to merge 1 commit into
mainfrom
joho_fixes_amp
Closed

hoe-jo wants to merge 1 commit into
mainfrom
joho_fixes_amp

Conversation

@hoe-jo

@hoe-jo hoe-jo commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@github-actions

Copy link
Copy Markdown

Coverage Report

Coverage report was generated.

Full report can be downloaded from the CI artifacts (expand Artifacts at the bottom of the run).

Overall coverage rate:

lines......: 86.2%
functions......: 55.0%

#. Pin an exec-configuration toolchain for the docs pipeline only, so the
toolchain used for your product code is unaffected.
#. Split documentation targets into a separate build invocation with its own
``--config``.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Maybe you can add a comment here that we are actively resolving this upstream through bazel-contrib/rules_distroless#254

Comment on lines +441 to +497
External hosts
~~~~~~~~~~~~~~

The table lists every host reachable from ``score_tooling``'s own module graph
and what it is needed for. Mirror or rewrite all of them that apply to the
targets you build.

.. list-table::
:widths: 32 68
:header-rows: 1

* - Host
- Needed for
* - ``github.com``
- Bazel modules and archives resolved from the Bazel Central Registry and
the S-CORE registry
* - ``raw.githubusercontent.com``
- The S-CORE Bazel registry itself
(``https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/``)
* - ``pypi.org`` / ``files.pythonhosted.org``
- Python wheels for the Sphinx toolchain, TRLC, LOBSTER and the rule
implementations
* - ``snapshot.ubuntu.com``
- ``.deb`` packages for the ``docs_runtime`` and ``tooling_sysroot``
``apt.install`` manifests (pinned Ubuntu 24.04 snapshot)
* - ``ftp.gnu.org``
- gawk sources, pulled in transitively by the ``rules_distroless``
``flatten`` rule (see above)
* - ``repo1.maven.org``
- The PlantUML jar (``net.sourceforge.plantuml:plantuml``) — required by
**every** documentation target
* - ``archive.ubuntu.com``
- ``lcov_deb``, used only by ``//coverage:combined_report``

Rewrite them with a ``downloader_config`` file::

rewrite github.com/(.*) my-mirror.example.com/external-github-com/$1
rewrite raw.githubusercontent.com/(.*) my-mirror.example.com/external-raw-githubusercontent-com/$1
rewrite pypi.org/(.*) my-mirror.example.com/external-pypi-org/$1
rewrite files.pythonhosted.org/(.*) my-mirror.example.com/external-pypi-files/$1
rewrite snapshot.ubuntu.com/ubuntu/(.*) my-mirror.example.com/external-ubuntu-snapshots/$1
rewrite ftp.gnu.org/gnu/(.*) my-mirror.example.com/external-ftp-gnu-org/$1
rewrite repo1.maven.org/maven2/(.*) my-mirror.example.com/external-maven-central/$1
rewrite archive.ubuntu.com/ubuntu/(.*) my-mirror.example.com/external-ubuntu-archive/$1

allow my-mirror.example.com

and reference it from ``.bazelrc``::

common --downloader_config=downloader_config

.. note::

``repo1.maven.org`` and ``snapshot.ubuntu.com`` are easy to miss: neither
appears in a ``bazel_dep``. They are reached from a module extension
(``maven.install`` and ``apt.install``) and therefore only fail once a
documentation target is actually built.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This will probably not age well. Do we really want to keep this?
E.g. potentially every update of one of our transitive dependencies could break this list.

Comment on lines +499 to +524
IPv6-only networks
~~~~~~~~~~~~~~~~~~

Bazel's downloader runs inside the Bazel JVM, which prefers IPv4 by default.
On an IPv6-only network — typical for minimal, air-gapped CI containers —
repository fetches hang or fail with connection errors even though the mirror
is reachable. Force IPv6 in ``.bazelrc``::

# Prefer IPv6 over IPv4, required on IPv6-only CI networks.
startup --host_jvm_args=-Djava.net.preferIPv6Addresses=true
common --repo_env=JAVA_TOOL_OPTIONS=-Djava.net.preferIPv6Addresses=true

Both lines are needed and cover different processes:

``startup --host_jvm_args``
Applies to the Bazel server JVM itself, which performs ``http_archive`` and
repository-rule downloads.

``common --repo_env=JAVA_TOOL_OPTIONS``
Applies to JVMs started *by* repository rules and module extensions as
subprocesses (for example ``rules_jvm_external`` resolving the PlantUML
coordinates), which do not inherit ``--host_jvm_args``.

Because ``--repo_env`` is part of the repository-rule cache key, changing it
invalidates fetched repositories — set it once in a checked-in ``.bazelrc``
rather than passing it ad hoc.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This is not special to this module. If somebody sets up an IPv6 network they should be aware that A LOT of tools don't cope well with that on Linux. I would only put specific things to THIS module here.

@hoe-jo hoe-jo closed this Sep 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants