chore: set up fork tooling, CI/CD, docs publishing, and packaging - #2
Merged
Conversation
Make this fork independently buildable, testable, releasable, and documented, following the conventions from the remora repo. - Add AGENTS.md (+ CLAUDE.md pointer), CONTRIBUTING.md, SECURITY.md, CODE_OF_CONDUCT.md, CHANGELOG.md, .editorconfig, .gitattributes. - Add GitHub config: CODEOWNERS, PR template, issue templates, dependabot (pip + actions). - Add GitHub Actions: CI (ruff, pyright [non-blocking], pytest + behave across py3.9-3.13), Conventional Commits PR-title check, CodeQL, docs (build + deploy to GitHub Pages), release (build + PyPI Trusted Publishing on GitHub Release). - Integrate CodeRabbit via .coderabbit.yaml with path-scoped instructions. - Packaging: publish as python-docx-nnayda (import name stays docx); refresh metadata, classifiers (py3.9-3.13), URLs, and ruff target. - Docs: build with modern Sphinx + Furo theme; fix conf.py intersphinx, missing substitutions, and a broken reference; publish via GitHub Pages. - Update README (badges, fork note, install/docs links); modernize .gitignore; remove legacy .travis.yml. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Apply pre-landing review findings: - release.yml: fail fast unless the git tag matches src/docx/__init__.py __version__, so we never publish a wrong or duplicate version to PyPI. - dependabot.yml: use the native `uv` ecosystem so uv.lock and the dependency groups actually get update PRs (the pip ecosystem doesn't). - docs.yml: drop `-W` (keep --keep-going) so a stray docstring warning from the legacy source can't block publishing. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.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.
What
Establishes the fork's own engineering infrastructure so it can be built, tested, reviewed, released, and documented independently of upstream
python-openxml/python-docx.AGENTS.md(+CLAUDE.mdpointer),CONTRIBUTING.md,SECURITY.md,CODE_OF_CONDUCT.md,CHANGELOG.md,.editorconfig,.gitattributes.CODEOWNERS, PR template, bug/feature/config issue templates, Dependabot (uv+ GitHub Actions)..github/workflows/):ci.yml— ruff lint+format, pyright (non-blocking), pytest + behave across Python 3.9–3.13pr-title.yml— Conventional Commits enforcement (squash-merge → title becomes commit)codeql.yml— security scanning (python + actions)docs.yml— build Sphinx + deploy to GitHub Pages frommasterrelease.yml— build + publish to PyPI via Trusted Publishing on GitHub Release, guarded by a tag-vs-__version__check.coderabbit.yamlwith path-scoped review instructions.python-docx-nnayda(import staysdocx); refreshed classifiers (3.9–3.13), fork URLs, ruff targetpy39.conf.pyintersphinx + missing substitutions and a broken RST reference; published via GitHub Pages..gitignore; removed legacy.travis.yml.Why
The fork needs its own trunk/branch workflow, automated checks, and a publish path. Follows the conventions used in the
remorarepo (Conventional Commits, squash-merge, CodeRabbit, CodeQL, Dependabot).Verified locally
ruff check/ruff format --check— cleanpytest— 1648 passedbehave— 654 scenarios passedsphinx-build— builds cleanuv build+twine check— buildspython_docx_nnayda-1.2.0, PASSEDManual setup still required (GitHub/PyPI UI)
nnayda/python-docx->release.yml-> envpypi; create apypiGitHub environment.master: require CI + PR-title checks; squash-merge only.Notes
pyrightruns non-blocking: strict config is aspirational; forked source predates full type annotations (~2,200 pre-existing errors). Tighten incrementally, then dropcontinue-on-error.pr-titlecheck won't run on this PR (workflow not yet onmaster); it activates for subsequent PRs.🤖 Generated with Claude Code