Skip to content

chore(release): fix 0.1.0 infrastructure, tooling, and documentation updates#13

Merged
markurtz merged 1 commit into
mainfrom
feature/0.1.0-fixes
May 13, 2026
Merged

chore(release): fix 0.1.0 infrastructure, tooling, and documentation updates#13
markurtz merged 1 commit into
mainfrom
feature/0.1.0-fixes

Conversation

@markurtz
Copy link
Copy Markdown
Owner

Description

This PR finalizes the repository infrastructure and documentation in preparation for the 0.1.0 release. Key changes include:

  • Documentation Modernization: Replaced broken HTML div wrappers with native MkDocs Material Attribute Lists ({ .grid .cards }) for cleaner grid layouts. Converted relative links in README.md to absolute URLs to ensure correct rendering on external platforms like PyPI. Restructured the docs/ hierarchy, moving configuration content to guides/, and introduced a new GitHub CI/CD workflows guide.
  • CI/CD & Tooling Fixes: Resolved the pre-commit: not found CI error, fixed invalid arguments in the lychee link checker workflow, and updated core dependencies in pyproject.toml (including the addition of an OpenTelemetry dependency group).
  • Core Infrastructure Improvements: Refined src/gitversioned/logging.py to correctly format __main__ entry points without requiring custom logger patches, and added supporting unit tests.

Type of Change

  • 🐛 Bug fix (non-breaking change which fixes an issue)
  • ✨ New feature (non-breaking change which adds functionality)
  • 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • 📝 Documentation update (changes to README.md, SUPPORT.md, docstrings, etc.)
  • 🛠️ Maintenance/Refactoring (non-breaking change that improves code structure or quality)

Test Plan

  • Verified automated CI checks (linting, pytest, lychee link check) pass successfully.
  • Locally generated and previewed the MkDocs site (hatch run docs:serve) to confirm grid card layouts and new guide pages render correctly.
  • Validated __main__ logging output via the updated unit tests (test_logging.py).

Related Issues

  • Fixes # (Note: Add relevant issue numbers here if applicable)

Screenshots / Visuals (if applicable)

(No visual changes applicable for the core logic, though MkDocs layout adjustments can be observed in the generated site)

Use of AI

  • Includes AI-assisted code completion
  • Includes code generated by an AI application
  • Includes AI-generated tests (NOTE: AI written tests should have a docstring that includes ## WRITTEN BY AI ##)

Checklist

Important

Please review and complete this checklist before submitting your PR. This helps our maintainers process your contribution faster and ensures it meets the quality standards of gitversioned.

  • "I certify that all code in this PR is my own, except as noted below."
  • I have read the CONTRIBUTING.md guide.
  • My code follows the established style guidelines of gitversioned.
  • I have performed a self-review of my own code.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have made corresponding changes to the documentation.
  • My changes generate no new warnings or errors.
  • I have added tests that prove my fix is effective or that my feature works.
  • New and existing unit tests pass locally with my changes.

@github-actions
Copy link
Copy Markdown
Contributor

CI Development Pipeline Status

Pipeline: Completed successfully. View Run Details

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR finalizes infrastructure, tooling, and documentation in preparation for the 0.1.0 release. It modernizes the MkDocs site, fixes CI/CD workflow issues (lychee link checker, pre-commit), bumps and reorganizes dev/docs dependencies (including an opentelemetry optional-deps group), and refactors src/gitversioned/logging.py (OTel formatter and filter handling) with accompanying unit tests.

Changes:

  • Documentation modernization: README absolute links, restructured docs/ (guides/, GitHub workflows guide), and grid card layout rework across docs/*/index.md.
  • CI/tooling fixes: pre-commit added to dev group, lychee args simplified, MkDocs theme/plugin updates, DISABLE_MKDOCS_2_WARNING env var.
  • Core code: _otel_formatter now exposes trace_flags / process.id, and configure_logger handles list/tuple/string/callable filters; tests extended with trace_flags and MockProcess.

Reviewed changes

Copilot reviewed 21 out of 22 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
uv.lock Auto-regenerated lockfile reflecting dep changes (adds ast-serialize, cfgv, etc., drops cairocffi/cairosvg/cffi).
pyproject.toml Adds opentelemetry extra, pre-commit, bumps mypy to ~=2.1, removes mkdocs-material[imaging], adds DISABLE_MKDOCS_2_WARNING.
mkdocs.yml Expanded theme features, new pymdownx extensions, removed social plugin, added validation block.
.github/workflows/_link-check.yml Consolidated lychee args; dropped --exclude-mail (behavior change).
.github/workflows/*.yml Header comment cleanups (cosmetic).
README.md Converted relative doc links to absolute URLs for PyPI rendering.
docs/index.md, docs/*/index.md Replaced grid cards blocks with manual <div class="grid"><div class="card"> HTML.
docs/guides/github-workflows.md New guide for CI/CD workflows.
src/gitversioned/__init__.py Re-exports logger, LoggingSettings, configure_logger; calls configure_logger() on import.
src/gitversioned/logging.py Adds trace_flags/process_id to OTel record, escapes braces in formatter, expands filter handling.
tests/unit/test_logging.py Adds trace_flags and MockProcess to OTel formatter test fixture.
Comments suppressed due to low confidence (1)

tests/unit/test_logging.py:184

  • The OTel formatter test only asserts that the substring "trace_id" appears in formatted_log. Because the formatter now double-escapes every brace before returning, this assertion would pass even when the output is not valid JSON. Add a test that json.loads(formatted_log.strip()) round-trips successfully (or that the line emitted through loguru's pipeline parses as JSON), so the brace-escaping regression discussed elsewhere is caught.
                    if mock_opentelemetry:
                        with patch(
                            "gitversioned.logging.opentelemetry_trace", mock_trace
                        ):
                            formatted_log = add_kwargs["format"](record)
                            assert "trace_id" in formatted_log
                else:
                    assert add_kwargs["format"] == settings.format

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/index.md
Comment thread .github/workflows/_link-check.yml
Comment thread src/gitversioned/logging.py
Comment thread mkdocs.yml
Comment thread src/gitversioned/logging.py
@markurtz markurtz merged commit 1fc1762 into main May 13, 2026
14 checks passed
@markurtz markurtz deleted the feature/0.1.0-fixes branch May 13, 2026 22:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants