Skip to content

Public docs_bundle is not self-contained because bundle examples include files outside docs/ #778

Description

@AlexanderLanin

Problem

The public //:docs_bundle includes docs/how-to/bundles/examples.rst and the nested bundle example mounts. That page uses literalinclude paths such as:

../../../src/tests/docs_bzl/scenarios/nested_bundles/BUILD
../../../src/tests/docs_bzl/scenarios/data_files_runfiles/BUILD
../../../src/tests/docs_bzl/scenarios/external_bundle/BUILD

These files are outside the docs/ source directory. The documentation builds successfully as the standalone docs-as-code project, but fails when its docs_bundle is consumed by another Sphinx project because sphinx-mounts enforces path confinement for mounted documents.

Reproduction

Consume @score_docs_as_code//:docs_bundle from eclipse-score/reference_integration with score_docs_as_code 8.1.0:

{
    "bundle": "@score_docs_as_code//:docs_bundle",
    "mount_at": "process_methods_tools/docs_as_code",
    "attach_to": "process_methods_tools",
}

Run:

bazel run //:docs

Observed result:

sphinx-mounts: mounted doc process_methods_tools/docs_as_code/how-to/bundles/examples references a file outside its bundle root: .../score_docs_as_code+/src/tests/docs_bzl/scenarios/nested_bundles/BUILD is not under .../score_docs_as_code+/docs

A previous closed PR, #514, attempted to add support for literalinclude outside docs/; this is the same class of problem now exposed through the public external bundle and should be resolved either by packaging the included files into the bundle or by excluding these test-fixture examples from the exported bundle.

Expected behavior

The public docs_bundle should be self-contained and mountable by another Sphinx project without path-confinement errors. The standalone documentation build and the external-bundle build should exercise the same contract.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions