Publish workflow module#
python/src/dotfiles/publish.py owns docs publish configuration resolution and
the GitHub Pages publish execution flow.
High-level structure#
publish.py
|-- PublishArgs request model
|-- docs path resolver
| `-- DocsPaths via _docs_paths
|-- config resolution
| |-- python/src/dotfiles/dotfiles-config.ini defaults
| |-- *_OVERRIDE environment overrides
| `-- CLI flag overrides
`-- publish execution
|-- clean worktree + branch checks
|-- optional docs build
`-- _publish_docs
|-- commit message generation
`-- gh-pages push command plan
publish_with_configresolves config and applies safety checks._docs_pathscomputesdocs/_build/htmlonce and shares it across build/publish steps._publish_docsbuilds the publish command plan and executes it.dotfiles.gitprovides shared git helpers for branch/clean checks scoped toproject_dir.Docs build output for publish targets
docs/_build/html.
Execution order#
main.publishbuilds aPublishArgsrequest from CLI flags.publish_with_configresolves precedence: flag, env, ini default frompython/src/dotfiles/dotfiles-config.ini.publish_with_configverifies clean worktree and branch policy.For non-dry-run, docs are built before publish command execution.
_publish_docscommits HTML output and pushesgh-pages.