Repository navigation
fix: bootstrap mkdocs for TechDocs generation - #122
Merged
Merged
Conversation
TechDocs runs with techdocs.generator.runIn: 'local', which spawns the mkdocs CLI, but neither the runtime image nor the dev setup installed it, so doc builds failed with 'spawn mkdocs ENOENT'. Install mkdocs with the techdocs-core plugin in the Docker run stage, and have scripts/install bootstrap it into ~/.local/bin for local development. Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
TechDocs builds fail with
spawn mkdocs ENOENT. The generator is configured withtechdocs.generator.runIn: 'local', which spawns themkdocsCLI as a subprocess of the backend, butmkdocsis not installed anywhere:scripts/installdoes not set it up for local development eitherFix
mkdocs+mkdocs-techdocs-core(which pins its own dependency stack, includingmkdocs-material) in the run stage as a user install into/root/.local/bin, which is already first onPATH. Amkdocs --versionsanity check fails the build early if the toolchain breaks.mkdocsinto~/.local/share/backstage-techdocs-venvand link it into~/.local/binwhen missing, with a warning if that directory is not onPATH. Skipped in CI.make dev) and document thespawn mkdocs ENOENTfailure mode.Testing
scripts/installbootstrap block against a sandboxed$HOMEwith~/.local/binremoved fromPATH(fresh machine simulation, stock Python 3.9): venv creation, plugin install, and themkdocssymlink all work.bash -n scripts/installpasses.mise run buildin CI.Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>