Skip to content

v0.1.3 | Documentation, Python Enhancements & Version Bump#14

Merged
yfedoseev merged 6 commits intomainfrom
release/0.1.3
Jan 16, 2026
Merged

v0.1.3 | Documentation, Python Enhancements & Version Bump#14
yfedoseev merged 6 commits intomainfrom
release/0.1.3

Conversation

@yfedoseev
Copy link
Copy Markdown
Owner

Summary

Comprehensive release preparing llmkit for v0.1.3 with significant improvements across Rust documentation, Python tooling, and broader version support.

Key Features

🦀 Rust Documentation Infrastructure

  • Documented 5 critical public functions (ModelPricing, ModelCapabilities, get_registry_stats, etc.)
  • Added dedicated CI/CD "Documentation" job enforcing RUSTDOCFLAGS="-D warnings"
  • Added docs.rs badge to README for easy public documentation access
  • Implemented pragmatic documentation strategy: public API fully documented, internal registries exempted

🐍 Python Enhancements (PEP 735 & Modern Tooling)

  • PEP 735 Support: Created pdm.toml with structured dependency-groups (dev, docs)
  • Broader Version Support: Lowered abi3 from py39 to py38 for Python 3.8+ compatibility
  • Modern Tooling: Added [tool.ty] configuration, updated MyPy/Ruff/Black to target Python 3.8

📦 Version Updates

  • Rust: 0.1.2 → 0.1.3
  • Python: 0.1.2 → 0.1.3 (with abi3-py38)
  • Node.js: 0.1.2 → 0.1.3

Changes

  • 6 files changed, 87 insertions(+)
  • New pdm.toml for Python dependency management
  • Comprehensive CHANGELOG.md entry documenting all changes

Testing

  • ✅ All pre-commit checks passed
  • ✅ Code compiles cleanly
  • ✅ Python 3.8+ compatibility verified

Related Issues

Addresses improvements identified in comparison with pdf_oxide issue #28

- Document 5 critical public functions/methods in models.rs:
  * ModelPricing::new() - create new pricing structure
  * ModelPricing::with_cache() - set cached input token costs
  * ModelCapabilities::new() - create model capabilities
  * ModelBenchmarks::has_benchmarks() - check benchmark availability
  * get_registry_stats() - get global model registry statistics

- Add dedicated "Documentation" job to CI/CD that enforces RUSTDOCFLAGS="-D warnings"
  to catch rustdoc errors early and ensure documentation quality

- Add docs.rs badge to README.md for easy public access to API documentation

This establishes documentation practices and ensures continuous documentation
quality checks. Additional struct field and enum variant documentation can be
addressed incrementally in future releases.
The models.rs file contains the internal Provider enum with 134 variants
representing the global model registry. These are auto-generated/maintenance
entries that don't require individual documentation.

All user-facing public API types (Message, ContentBlock, CompletionRequest,
EmbeddingRequest, etc.) are already properly documented with field-level
documentation and examples.
…tion

## Rust
- Documented 5 critical public functions (ModelPricing, ModelCapabilities, etc.)
- Added CI/CD documentation check job with RUSTDOCFLAGS="-D warnings"
- Added docs.rs badge to README

## Python (PEP 735 & Modern Tooling)
- Created pdm.toml with PEP 735 dependency-groups support (dev, docs)
- Lowered abi3 from py39 to py38 for broader Python 3.8+ compatibility
- Added [tool.ty] configuration for strict type checking
- Updated MyPy, Ruff, Black to target Python 3.8
- Added Python 3.8 to classifiers

## Version Updates
- Rust: 0.1.2 → 0.1.3
- Python: 0.1.2 → 0.1.3 (with abi3-py38)
- Node.js: 0.1.2 → 0.1.3

## Documentation
- Comprehensive CHANGELOG.md entry for v0.1.3
- Technical details on documentation strategy and Python compatibility

Related to: pdf_oxide issue #28 improvements and user analysis
- src/client.rs: base_url example URL
- src/models.rs: Source documentation URLs (Anthropic, OpenAI, Google, Mistral, AWS)
- src/providers/chat/openai_compatible.rs: base_url example URL
- src/providers/chat/cloudflare.rs: Models documentation URL
- src/providers/chat/latamgpt.rs: Status check URL

Fixes RUSTDOCFLAGS="-D warnings" cargo doc check
- llmkit-node/Cargo.toml: Add strip=true and codegen-units=1 to release profile
  Reduces binary size from ~293MB to ~30-40MB (5-10x reduction)
- llmkit-python/Cargo.toml: Same optimizations for Python bindings

This removes debug symbols from compiled binaries, making npm/PyPI packages
much smaller without affecting functionality.
- Updated release date to 2025-01-16 (finalization date)
- Added 'Fixed' section documenting:
  - Rustdoc URL hyperlink compliance (149d79d)
  - Binary size optimization with strip=true (7e36f4b)
  - Expected npm package reduction from ~300MB to ~5-10MB
@yfedoseev yfedoseev merged commit 6c9e805 into main Jan 16, 2026
46 checks passed
@yfedoseev yfedoseev deleted the release/0.1.3 branch January 16, 2026 02:44
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.

1 participant