-
Notifications
You must be signed in to change notification settings - Fork 2
Add comprehensive MkDocs documentation for wrappers and adapters #128
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- Created mkdocs.yml configuration with Material theme and mkdocstrings - Added mkdocs dependencies to pyproject.toml [docs] extra - Created comprehensive documentation: - docs/index.md: Project overview and quick start - docs/getting-started.md: Installation and usage guide - docs/wrappers.md: Detailed guide for all 14 wrappers with examples - docs/adapters.md: Detailed guide for PydanticAdapter and RaiseOnMissingAdapter - docs/api/protocols.md: AsyncKeyValue protocol reference - docs/api/stores.md: All store implementations - docs/api/wrappers.md: Complete wrapper API reference - docs/api/adapters.md: Complete adapter API reference - Updated README.md with documentation links - Added Makefile targets: docs-serve, docs-build, docs-deploy Documentation leverages existing high-quality Google-style docstrings for automatic API reference generation using mkdocstrings. Note: GitHub Actions workflow for auto-deployment needs to be added manually due to workflow permissions. See PR description for workflow. Closes #124 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: William Easton <[email protected]>
📝 WalkthroughWalkthroughAdds a complete documentation site and tooling: MkDocs configuration, new docs pages (getting started, wrappers, adapters, API refs), Makefile targets for docs operations, a docs optional dependency group, a markdownlint rule, and a GitHub Actions workflow to build and deploy docs to GitHub Pages. Changes
Sequence Diagram(s)sequenceDiagram
participant Dev as Developer (local)
participant Make as Makefile
participant UV as uv CLI
participant Mk as MkDocs
participant GH as GitHub Actions
participant Pages as GitHub Pages
rect rgb(230,245,255)
Dev->>Make: run `make docs-serve`
Make->>UV: run `uv run --extra docs mkdocs serve`
UV->>Mk: start local dev server
Mk-->>Dev: serve docs (localhost)
end
rect rgb(240,255,230)
Dev->>Make: run `make docs-build`
Make->>UV: run `uv run --extra docs mkdocs build`
UV->>Mk: build site
Mk-->>Dev: generated site artifacts
end
rect rgb(255,245,230)
Dev->>Make: run `make docs-deploy`
Make->>UV: run `uv run --extra docs mkdocs gh-deploy --force`
UV->>Mk: deploy site
Mk->>Pages: publish site to GitHub Pages
Pages-->>Dev: docs live
end
rect rgb(245,240,255)
Dev->>GitHub: push to `main`
GitHub->>GH: trigger `Deploy Documentation` workflow
GH->>GH: setup python, install `uv` and docs deps
GH->>UV: run `uv run --extra docs mkdocs build`
GH->>UV: run `uv run --extra docs mkdocs gh-deploy --force`
UV->>Pages: publish site
Pages-->>Dev: docs live on GitHub Pages
end
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
Comment |
|
@copilot can you add the workflow? |
|
@claude can you get this PR ready for me? |
|
Claude finished @strawgate's task —— View job PR Ready (Manual Step Required)I've prepared this PR for you! All the necessary changes have been made and are ready to be pushed. What I Did✅ Added GitHub Actions workflow - Created Manual Action RequiredDue to GitHub App permissions, I cannot push workflow files. Please apply my changes using one of these options: Option 1: Apply my commit (Recommended) git fetch origin claude/issue-124-20251026-0624
git cherry-pick 6183742
git push origin claude/issue-124-20251026-0624Option 2: Create the files manually Create name: Deploy Documentation
on:
push:
branches:
- main
workflow_dispatch:
permissions:
contents: write
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: true
- name: Install documentation dependencies
run: uv pip install --system mkdocs mkdocs-material 'mkdocstrings[python]' mkdocstrings-python
- name: Build documentation
run: mkdocs build
- name: Deploy to GitHub Pages
run: mkdocs gh-deploy --forceUpdate "MD024": {
"siblings_only": true
}Next StepsOnce the workflow file is pushed, this PR will be ready to merge! After merging to --- | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (12)
Makefile(3 hunks)README.md(1 hunks)docs/adapters.md(1 hunks)docs/api/adapters.md(1 hunks)docs/api/protocols.md(1 hunks)docs/api/stores.md(1 hunks)docs/api/wrappers.md(1 hunks)docs/getting-started.md(1 hunks)docs/index.md(1 hunks)docs/wrappers.md(1 hunks)mkdocs.yml(1 hunks)pyproject.toml(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.md
📄 CodeRabbit inference engine (AGENTS.md)
**/*.md: Use Ruff/markdown support and markdownlint for Markdown files per repository configuration
Markdown line length is 80 characters (excluding code blocks and tables)
Files:
docs/adapters.mddocs/index.mddocs/wrappers.mddocs/getting-started.mddocs/api/stores.mdREADME.mddocs/api/wrappers.mddocs/api/protocols.mddocs/api/adapters.md
🧠 Learnings (3)
📚 Learning: 2025-10-26T16:57:34.088Z
Learnt from: CR
PR: strawgate/py-key-value#0
File: AGENTS.md:0-0
Timestamp: 2025-10-26T16:57:34.088Z
Learning: Applies to key-value/key-value-aio/src/key_value/aio/{wrappers,adapters}/**/*.py : Add functionality via wrappers/adapters in their respective directories rather than modifying core store behavior directly
Applied to files:
docs/adapters.mddocs/wrappers.md
📚 Learning: 2025-10-26T16:57:34.087Z
Learnt from: CR
PR: strawgate/py-key-value#0
File: AGENTS.md:0-0
Timestamp: 2025-10-26T16:57:34.087Z
Learning: Applies to key-value/key-value-aio/src/key_value/aio/stores/**/*.py : Async store implementations must implement the AsyncKeyValue protocol (key_value/aio/protocols/key_value.py)
Applied to files:
docs/api/stores.mddocs/api/protocols.md
📚 Learning: 2025-10-26T16:57:34.088Z
Learnt from: CR
PR: strawgate/py-key-value#0
File: AGENTS.md:0-0
Timestamp: 2025-10-26T16:57:34.088Z
Learning: Use provided Make targets for linting, type checking, testing (aio/sync/shared), code generation, build, and version bumps
Applied to files:
Makefile
🪛 checkmake (0.2.2)
Makefile
[warning] 2-2: Missing required phony target "all"
(minphony)
[warning] 2-2: Missing required phony target "clean"
(minphony)
🪛 LanguageTool
docs/adapters.md
[style] ~18-~18: This phrase is redundant (‘I’ stands for ‘interface’). Use simply “API”.
Context: ...I Adapters: - Provide a different API interface - Cannot be used in place of a store - ...
(ACRONYM_TAUTOLOGY)
docs/index.md
[style] ~12-~12: In American English, abbreviations like “etc.” require a period.
Context: ... RocksDB, Valkey, and In-memory, Disk, etc - TTL support: Automatic expiration...
(ETC_PERIOD)
[style] ~15-~15: In American English, abbreviations like “etc.” require a period.
Context: ...del support, raise-on-missing behavior, etc - Wrappers: Statistics tracking, en...
(ETC_PERIOD)
docs/wrappers.md
[style] ~10-~10: This phrase is redundant. Consider writing “stacked”.
Context: ...onal behavior. Multiple wrappers can be stacked together to combine their effects. ### Wrapper ...
(SPLICE_TOGETHER)
🔇 Additional comments (12)
pyproject.toml (1)
91-96: Clean and minimal docs dependency group.The addition is well-structured with appropriate versions. This enables the MkDocs tooling and API documentation generation as intended.
docs/getting-started.md (1)
1-277: Excellent getting-started guide with clear progression.The documentation effectively guides users from installation through basic usage to advanced patterns. Examples are practical, and the structure progressively builds complexity. Relative links to related documentation (wrappers, adapters) are consistent and helpful.
docs/adapters.md (1)
1-367: Comprehensive adapter documentation with excellent examples.The documentation clearly distinguishes adapters from wrappers, provides detailed examples for both PydanticAdapter and RaiseOnMissingAdapter, and includes practical patterns for combining adapters with wrappers and creating custom adapters. The mkdocstrings directives are properly configured.
docs/wrappers.md (1)
1-655: Comprehensive and well-organized wrapper documentation.The documentation covers all 14 wrappers with consistent structure: description, use cases, and practical examples. The execution order explanation (lines 28-33) is particularly valuable. The wrapper stacking guide with four recommended patterns is a useful addition, and the custom wrapper creation section provides clear guidance for extending the framework.
README.md (1)
9-15: Well-placed documentation section with clear navigation.The Documentation section provides convenient access to key resources and is appropriately positioned. Links align with the documentation structure and will resolve correctly after GitHub Pages deployment.
docs/api/protocols.md (1)
1-13: Protocol API reference uses direct source for specification.The minimal file appropriately relies on mkdocstrings to render the AsyncKeyValue protocol. Setting
show_source: trueis appropriate here—protocols benefit from showing their actual definitions. The introduction clearly explains the protocol-based design pattern.docs/api/stores.md (1)
1-94: Well-organized stores API reference with consistent formatting.Each of the 9 stores is documented with a concise description and properly configured mkdocstrings directives. The consistent structure (showing only
__init__with hidden source) makes the reference clean and accessible. All major backend implementations are covered.Makefile (1)
2-2: LGTM. Targets are properly implemented with consistent patterns.The three new documentation targets follow the established patterns in the Makefile, correctly use the
--extra docsflag to conditionally install documentation dependencies, and are properly registered in the .PHONY declaration.Also applies to: 22-24, 128-138
mkdocs.yml (2)
1-15: MkDocs configuration verified—all paths and documentation files are correctly configured.All mkdocstrings source paths exist at the specified locations, and all navigation entries reference files that are present in the docs directory. The configuration is complete and valid.
39-51: No issues found—directory structure and modules are accessible.The mkdocstrings configuration path
key-value/key-value-aio/srcis correct and properly structured. Thekey_valuepackage exists with all expected submodules (aio, adapters, stores, protocols, wrappers, etc.) containing__init__.pyfiles, making them discoverable by mkdocstrings.docs/api/wrappers.md (1)
1-108: No issues found. All wrapper module paths verified to exist.The file correctly documents all 15 wrappers with valid module paths, proper formatting, and compliant line lengths.
docs/api/adapters.md (1)
1-17: Module paths verified and are correct.All adapter module paths in the mkdocstrings directives map to valid implementations:
key_value.aio.adapters.pydantic.PydanticAdaptercorrectly references the exported classkey_value.aio.adapters.raise_on_missing.RaiseOnMissingAdaptercorrectly references the exported classThe documentation is ready to merge.
|
@claude please fix merge conflicts and get this PR ready to go |
|
Claude finished @strawgate's task —— View job PR Ready to MergeI've successfully prepared this PR for merging! All fixes have been applied and pushed to the branch. Completed Tasks
Changes MadeDocumentation Style Fixes:
Configuration Updates: SummaryThis PR adds comprehensive MkDocs documentation for wrappers and adapters and is now ready to merge. All linting checks pass, and the documentation follows proper markdown style guidelines. Note: The PR description mentions that a GitHub Actions workflow file ( | |
- Remove redundant 'interface' after 'API' in docs/adapters.md - Add periods to 'etc' abbreviations in docs/index.md - Remove redundant 'together' in docs/wrappers.md - Add MD024 siblings_only config to allow duplicate headings in sections - Update uv.lock with documentation dependencies Co-authored-by: William Easton <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (1)
uv.lockis excluded by!**/*.lock
📒 Files selected for processing (4)
.markdownlint.jsonc(1 hunks)docs/adapters.md(1 hunks)docs/index.md(1 hunks)docs/wrappers.md(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.md
📄 CodeRabbit inference engine (AGENTS.md)
**/*.md: Markdown must be linted with markdownlint as configured in .markdownlint.jsonc
Markdown line length should be 80 characters (excluding code blocks and tables)
Files:
docs/adapters.mddocs/wrappers.mddocs/index.md
🔇 Additional comments (7)
.markdownlint.jsonc (1)
8-11: Configuration change looks good.The MD024 rule addition with
siblings_only: trueis appropriate for documentation with multiple sections that may share heading names (e.g., "Example", "Use Cases").docs/index.md (1)
1-87: Documentation page looks good.The index page is well-structured with clear headings, proper quick links, and a helpful quick example. The content formatting follows the 80-character guideline as shown, and the previous issues with "etc" abbreviations have been corrected.
docs/adapters.md (2)
27-29: The review comment is incorrect. All lines comply with the 80-character guideline.Lines 27-29 each contain 74, 76, and 10 characters respectively—all within the configured 80-character limit for MD013. No refactoring is required.
Likely an incorrect or invalid review comment.
45-50: The review comment is incorrect.The verification shows all lines at 45–50 are well under the 80-character limit:
- Line 47: 24 characters
- Line 48: 35 characters
- Line 49: 34 characters
- Line 50: 25 characters
No MD013 violations exist at these lines. The code adheres to the markdown linting guideline and requires no refactoring.
Likely an incorrect or invalid review comment.
docs/wrappers.md (3)
37-40: Review comment is incorrect.The lines in question do not exceed the 80-character guideline. Line 39 contains 73 characters and line 40 contains 12 characters. The text is properly split across two lines, each within the configured limit. No changes are needed.
Likely an incorrect or invalid review comment.
3-5: ****The review comment incorrectly identifies lines 3-5 as violating the 80-character line length guideline. Actual measurements show:
- Line 3: 69 characters ✓
- Line 4: 76 characters ✓
- Line 5: 59 characters ✓
All lines comply with the configured MD013 limit of 80 characters. No refactoring is needed.
Likely an incorrect or invalid review comment.
9-11: The review comment is incorrect—no line length violations exist.Verification of lines 9-11 in docs/wrappers.md shows:
- Line 9: 78 characters (within 80-character limit)
- Line 10: 73 characters (within 80-character limit)
- Line 11: 33 characters (within 80-character limit)
All lines comply with the
.markdownlint.jsoncconfiguration, which setsline_length: 80for the MD013 rule. The suggested refactoring is unnecessary.Likely an incorrect or invalid review comment.
| Adapters provide specialized interfaces for working with key-value stores. Unlike | ||
| wrappers, adapters don't implement the `AsyncKeyValue` protocol - instead, they | ||
| provide alternative APIs tailored for specific use cases. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
Prose line length exceeds guideline.
The opening paragraph spans across visual lines but appears to be a single logical line that exceeds the 80-character limit specified in the coding guidelines. Consider breaking at logical sentence/clause boundaries to comply with markdownlint MD013.
Example refactoring:
-Adapters provide specialized interfaces for working with key-value stores. Unlike
-wrappers, adapters don't implement the `AsyncKeyValue` protocol - instead, they
-provide alternative APIs tailored for specific use cases.
+Adapters provide specialized interfaces for working with key-value stores.
+Unlike wrappers, adapters don't implement the `AsyncKeyValue` protocol - instead,
+they provide alternative APIs tailored for specific use cases.I need to verify the actual line lengths in the source file and check markdownlint configuration.
🏁 Script executed:
#!/bin/bash
# Check actual line lengths at lines 3-5 in docs/adapters.md
echo "=== Lines 3-5 with character counts ==="
sed -n '3,5p' docs/adapters.md | while IFS= read -r line; do
length=${#line}
echo "Length: $length | $line"
done
echo -e "\n=== Full file line lengths (lines 1-30) ==="
head -30 docs/adapters.md | nl -v 1 | awk '{printf "Line %d (len %d): %s\n", $1, length(substr($0, index($0,$2))), $0}'Length of output: 385
🏁 Script executed:
#!/bin/bash
# Check if markdownlint is available and run it on docs/adapters.md
if command -v markdownlint &> /dev/null; then
echo "=== Running markdownlint on docs/adapters.md ==="
markdownlint docs/adapters.md
else
echo "markdownlint not available, checking configuration..."
cat .markdownlint.jsonc 2>/dev/null || echo "No .markdownlint.jsonc found"
fiLength of output: 380
Line 3 exceeds the 80-character limit: confirmed.
The opening paragraph has a valid line length violation. Line 3 contains 81 characters, exceeding the configured 80-character limit in .markdownlint.jsonc for the MD013 rule. The suggested refactoring to break the paragraph at logical sentence boundaries is appropriate and addresses the violation.
🤖 Prompt for AI Agents
In docs/adapters.md around lines 3 to 5, line 3 exceeds the 80-character limit;
split the long sentence into two (or more) logical sentences so each line is
<=80 chars, wrapping at sentence boundaries or natural phrase breaks, ensure no
trailing spaces and preserve existing punctuation and meaning.
|
@copilot please make the workflow and fix the makefile conflicts |
|
@strawgate I've opened a new pull request, #156, to work on those changes. Once the pull request is ready, I'll request review from you. |
Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: strawgate <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/docs.yml(1 hunks)
🔇 Additional comments (1)
.github/workflows/docs.yml (1)
1-35: Well-structured documentation deployment workflow.The workflow is well-designed for automated MkDocs documentation deployment to GitHub Pages. Key strengths:
- Appropriate triggers (push to main and manual dispatch)
- Correct permissions (
contents: writefor gh-pages push)- Modern toolchain (Python 3.10, UV with caching, current action versions)
- Proper use of
mkdocs gh-deploy --forcefor deployment- Aligns with PR objectives and complements the Makefile targets and MkDocs configuration
| - name: Install documentation dependencies | ||
| run: uv pip install --system mkdocs mkdocs-material 'mkdocstrings[python]' mkdocstrings-python |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick | 🔵 Trivial
Simplify redundant package dependencies.
The installation command includes both 'mkdocstrings[python]' and mkdocstrings-python separately. The extras syntax [python] should already include the Python handler, making the separate installation redundant.
Apply this diff to remove the redundancy:
- run: uv pip install --system mkdocs mkdocs-material 'mkdocstrings[python]' mkdocstrings-python
+ run: uv pip install --system mkdocs mkdocs-material 'mkdocstrings[python]'If you find that mkdocstrings-python must be installed separately (e.g., due to version constraints or plugin requirements), please add a comment explaining the necessity.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - name: Install documentation dependencies | |
| run: uv pip install --system mkdocs mkdocs-material 'mkdocstrings[python]' mkdocstrings-python | |
| - name: Install documentation dependencies | |
| run: uv pip install --system mkdocs mkdocs-material 'mkdocstrings[python]' |
🤖 Prompt for AI Agents
In .github/workflows/docs.yml around lines 28-29, the install step redundantly
includes both 'mkdocstrings[python]' and mkdocstrings-python; remove
mkdocstrings-python from the pip install args so only "mkdocstrings[python]" is
installed, and if you determine mkdocstrings-python truly must remain
(version/plugin requirement), keep it but add a one-line comment above the run
step explaining why it must be installed separately.
|
@claude please fix the merge conflict |
|
Claude finished @strawgate's task —— View job Merge Conflict ResolvedI've successfully resolved the merge conflict in this PR! Completed Tasks
What Was FixedThe merge conflict was in the Makefile at the The Conflict:
The Resolution:
This change was intentionally made in PR #157 to ensure the generated sync code is properly linted. I preserved the documentation targets ( Verification
The PR is now ready for review and merge! | |
Resolved merge conflict in Makefile precommit target. Main branch updated the target to run lint twice (before and after codegen) to ensure generated sync code is properly linted. Co-authored-by: William Easton <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (1)
uv.lockis excluded by!**/*.lock
📒 Files selected for processing (3)
Makefile(3 hunks)README.md(1 hunks)pyproject.toml(1 hunks)
🧰 Additional context used
🪛 checkmake (0.2.2)
Makefile
[warning] 2-2: Missing required phony target "all"
(minphony)
[warning] 2-2: Missing required phony target "clean"
(minphony)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (8)
- GitHub Check: test_quick (3.10, windows-latest, key-value/key-value-sync)
- GitHub Check: test_quick (3.10, windows-latest, key-value/key-value-aio)
- GitHub Check: test_quick (3.10, windows-2022, key-value/key-value-aio)
- GitHub Check: test_quick (3.10, windows-2022, key-value/key-value-sync)
- GitHub Check: test_quick (3.10, ubuntu-latest, key-value/key-value-aio)
- GitHub Check: test_quick (3.10, ubuntu-22.04, key-value/key-value-sync)
- GitHub Check: test_quick (3.10, ubuntu-latest, key-value/key-value-sync)
- GitHub Check: test_quick (3.10, ubuntu-22.04, key-value/key-value-aio)
🔇 Additional comments (3)
README.md (1)
9-16: LGTM!The new Documentation section is well-integrated, clearly labeled, and provides direct links to all major documentation resources.
pyproject.toml (1)
95-100: LGTM!The docs optional-dependency group correctly specifies all necessary MkDocs tooling (Material theme, mkdocstrings, and mkdocstrings-python) with appropriate version constraints.
Makefile (1)
22-24: LGTM!Documentation targets are properly structured, follow the existing project pattern with
uv run --extra docs, and integrate cleanly with the new docs dependencies in pyproject.toml.Also applies to: 128-138
| @@ -1,5 +1,5 @@ | |||
| .PHONY: bump-version bump-version-dry codegen lint typecheck sync precommit test build help | |||
| .PHONY: install test-aio test-sync test-shared | |||
| .PHONY: install test-aio test-sync test-shared docs-serve docs-build docs-deploy | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick | 🔵 Trivial
Static analysis: Consider adding "all" and "clean" targets.
Checkmake flagged missing standard Makefile targets (all, clean). While not strictly required, adding these would follow Makefile conventions:
all: Could be an alias for the default build targetclean: Could remove generated artifacts (build/, dist/, etc.)
This is optional and may not align with your project's needs, but worth considering for discoverability.
🧰 Tools
🪛 checkmake (0.2.2)
[warning] 2-2: Missing required phony target "all"
(minphony)
[warning] 2-2: Missing required phony target "clean"
(minphony)
🤖 Prompt for AI Agents
In Makefile around line 2, add conventional "all" and "clean" targets: create an
"all" target that depends on the default build or install targets (so running
make with no args runs the expected build) and a "clean" target that removes
generated artifacts like build/, dist/, *.o, and other output directories/files;
ensure both targets are declared before the .PHONY line or update .PHONY to
include all and clean so they are phony targets and do not conflict with files
of the same name.
| endif | ||
|
|
||
| precommit: lint codegen lint typecheck | ||
| precommit: lint codegen lint typecheck |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove duplicate "lint" in precommit target.
The precommit target currently runs lint twice consecutively, which is redundant and wastes CI time.
Apply this diff to fix the duplicate:
-precommit: lint codegen lint typecheck
+precommit: lint codegen typecheck📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| precommit: lint codegen lint typecheck | |
| precommit: lint codegen typecheck |
🤖 Prompt for AI Agents
In Makefile around line 125, the precommit target lists "lint" twice
("precommit: lint codegen lint typecheck"); remove the duplicated "lint" so the
target reads "precommit: lint codegen typecheck" (preserve original
spacing/indentation) to avoid running lint twice.
|
@claude can you review the state of this PR and make sure it's ready to go |
|
|
Claude finished @strawgate's task —— View job PR Review Complete ✅Checklist
SummaryThis PR adds comprehensive MkDocs documentation for wrappers and adapters. The PR is almost ready to merge, but has 2 minor issues that should be addressed first. What's Good ✅
Issues to Fix
|


Summary
Adds comprehensive documentation for wrappers and adapters using MkDocs with Material theme and mkdocstrings for automatic API generation.
Closes #124
What's Included
[docs]extra with mkdocs dependenciesdocs-serve,docs-build, anddocs-deploytargetsGitHub Actions Workflow
Due to GitHub App permissions, the workflow file needs to be added manually. Please create:
File:
.github/workflows/docs.ymlHow to Use
Local preview:
make docs-serve # Opens at http://127.0.0.1:8000Build documentation:
Deploy to GitHub Pages:
Or wait for automatic deployment when pushing to
main.🤖 Generated with Claude Code) | View branch | [View job run](https://github.com/strawgate/py-key-value/actions/runs/18814105067
Summary by CodeRabbit
Documentation
Chores