commits
- use ~/.cache/pmgfal (XDG standard) on all unix-like systems including macOS
- add --show-cache flag to print cache directory and exit
- update README: change suggested output dir from src/models to src/atproto
to avoid confusion with ORM schemas
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude <noreply@anthropic.com>
* feat: shorthand git provider support and integration tests
- add owner/repo shorthand (tries github, then tangled, then fails)
- add colored log output with ANSI codes (respects NO_COLOR)
- add integration tests for git providers with pytest parametrize
- update help text to mention shorthand support
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat: add tangled integration tests and pytest markers
- add pytest.mark.integration for network tests
- add tangled.org tests (full url and shorthand)
- update justfile: `test` (unit), `test-integration`, `test-all`
- fix tangled url to use tangled.org
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* ci: add uv caching and separate integration job
- enable uv cache in setup-uv for faster CI
- run unit tests in build jobs (fast feedback)
- add separate integration job after linux build
- add plyr.fm validation test (checks generated models compile)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix(ci): create venv before maturin develop
maturin develop requires a virtualenv - run uv sync first
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
feat: caching, git url support, and docs
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- fix import path example (your_project.models not src.models.models)
- add pre-commit, justfile, and github actions examples
- add bench.py for measuring performance on real lexicons
- add `just bench` target
benchmark results (297 atproto lexicons → 2669 lines):
cold generation: ~0.17s
cache hit: ~0.07s
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- clone repos from github/tangled/etc as lexicon source
- auto-detect lexicons/ subdir in cloned repos
- cleanup temp dir after generation
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- hash_lexicons now implemented in rust with sha2 crate
- exposed to python via pyo3
- update justfile to use uvx maturin
- cache generated models based on sha256 hash of lexicon files
- cache key includes pmgfal version (invalidates on upgrade)
- platform-appropriate cache directories (XDG, Library/Caches, etc.)
- add --no-cache flag to force regeneration
- expand README with caching docs and adoption guide
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- replace custom publish.yml with maturin generate-ci output
- add version-from-tag step to all build jobs
- use trusted publishing (no API token needed)
- build manylinux/musllinux/windows/macos wheels
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- split lib.rs into parser, types, codegen, and builtin modules
- implement internal ref resolution (#localDef -> ClassName)
- implement external ref resolution (com.atproto.repo.strongRef -> ComAtprotoRepoStrongRef)
- bundle 81 com.atproto.* lexicons at compile time for automatic resolution
- add dynamic versioning from git tags in CI
- add tests for ref resolution
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Pydantic model generator for ATProto lexicons using:
- atrium-lex for lexicon parsing
- pyo3 for python bindings
- maturin for build
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- use ~/.cache/pmgfal (XDG standard) on all unix-like systems including macOS
- add --show-cache flag to print cache directory and exit
- update README: change suggested output dir from src/models to src/atproto
to avoid confusion with ORM schemas
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude <noreply@anthropic.com>
* feat: shorthand git provider support and integration tests
- add owner/repo shorthand (tries github, then tangled, then fails)
- add colored log output with ANSI codes (respects NO_COLOR)
- add integration tests for git providers with pytest parametrize
- update help text to mention shorthand support
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat: add tangled integration tests and pytest markers
- add pytest.mark.integration for network tests
- add tangled.org tests (full url and shorthand)
- update justfile: `test` (unit), `test-integration`, `test-all`
- fix tangled url to use tangled.org
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* ci: add uv caching and separate integration job
- enable uv cache in setup-uv for faster CI
- run unit tests in build jobs (fast feedback)
- add separate integration job after linux build
- add plyr.fm validation test (checks generated models compile)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix(ci): create venv before maturin develop
maturin develop requires a virtualenv - run uv sync first
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
- fix import path example (your_project.models not src.models.models)
- add pre-commit, justfile, and github actions examples
- add bench.py for measuring performance on real lexicons
- add `just bench` target
benchmark results (297 atproto lexicons → 2669 lines):
cold generation: ~0.17s
cache hit: ~0.07s
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- replace custom publish.yml with maturin generate-ci output
- add version-from-tag step to all build jobs
- use trusted publishing (no API token needed)
- build manylinux/musllinux/windows/macos wheels
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- split lib.rs into parser, types, codegen, and builtin modules
- implement internal ref resolution (#localDef -> ClassName)
- implement external ref resolution (com.atproto.repo.strongRef -> ComAtprotoRepoStrongRef)
- bundle 81 com.atproto.* lexicons at compile time for automatic resolution
- add dynamic versioning from git tags in CI
- add tests for ref resolution
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>