feat: WP-0006 — packaging & distribution infrastructure

CI matrix (Python 3.11/3.12) with pip cache and coverage job. PyPI publish
workflow (OIDC trusted publishing, triggered on v*.*.* tags). Docker image
for REST service with non-root user + ghcr.io push workflow. markidocx
--version flag. Diagram optional extras (diagram-mermaid/graphviz/plantuml)
and readme/urls in pyproject.toml. CHANGELOG.md (Keep a Changelog format)
with retrospective v0.1.0 entry. docs/release-process.md with executable
checklist. All 272 tests pass; ruff and mypy clean; twine check PASSED.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-17 14:30:08 +00:00
parent 5564747060
commit 6cf973b017
11 changed files with 290 additions and 6 deletions

19
Dockerfile Normal file
View File

@@ -0,0 +1,19 @@
FROM python:3.12-slim
# Create non-root user
RUN useradd --create-home --shell /bin/bash appuser
WORKDIR /app
# Install markidocx
COPY pyproject.toml ./
COPY src/ ./src/
RUN pip install --no-cache-dir .
# Switch to non-root user
USER appuser
EXPOSE 8080
ENTRYPOINT ["markidocx", "serve"]
CMD ["--host", "0.0.0.0", "--port", "8080"]