Conversation
Version Bump Check
Version bump: |
There was a problem hiding this comment.
Pull request overview
This pull request introduces comprehensive TaxCloud order management support to the ZipTax Python SDK (v0.2.0-beta), transforming it from a single-API tax lookup library into a dual-API solution that optionally supports order management and refund processing. The changes maintain full backward compatibility while adding substantial new functionality.
Changes:
- Added optional TaxCloud API integration with 4 new order management functions (CreateOrder, GetOrder, UpdateOrder, RefundOrder) and 18 new Pydantic models
- Enhanced HTTP client with POST and PATCH methods to support the dual-API architecture
- Implemented comprehensive versioning enforcement via GitHub Actions workflow and version bump utility script
- Updated historical date format from YYYY-MM to YYYYMM (6 digits) across validation, examples, and documentation
- Fixed async retry decorator bug (changed from async function to regular function returning decorator)
- Added extensive documentation including AI development guide (CLAUDE.md), versioning guide, and updated README with TaxCloud examples
Reviewed changes
Copilot reviewed 26 out of 26 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tests/test_retry.py | Fixed async_retry_with_backoff calls (removed await) |
| tests/test_http.py | Added comprehensive tests for new POST/PATCH HTTP methods |
| tests/test_functions.py | Added TaxCloud function tests and updated historical date format in assertions |
| tests/conftest.py | Added TaxCloud fixtures (config, HTTP client, order/refund responses) |
| src/ziptax/utils/validation.py | Changed historical date format from YYYY-MM to YYYYMM and moved type check earlier |
| src/ziptax/utils/retry.py | Fixed async_retry_with_backoff signature (regular function, not async) |
| src/ziptax/utils/http.py | Added post() and patch() methods with full error handling |
| src/ziptax/resources/functions.py | Added 4 TaxCloud functions with credential validation |
| src/ziptax/models/responses.py | Added 18 TaxCloud models; changed Literal types to str for flexibility; made service/shipping Optional |
| src/ziptax/models/init.py | Exported all new TaxCloud models |
| src/ziptax/exceptions.py | Added ZipTaxCloudConfigError exception |
| src/ziptax/config.py | Added TaxCloud configuration properties and has_taxcloud_config check |
| src/ziptax/client.py | Implemented dual HTTP client architecture (ZipTax + optional TaxCloud) |
| src/ziptax/init.py | Updated version to 0.2.0-beta and exported new models/exceptions |
| scripts/bump_version.py | New version management utility with consistency checks |
| pyproject.toml | Version bumped to 0.2.0-beta |
| examples/taxcloud_orders.py | New comprehensive TaxCloud usage examples |
| examples/error_handling.py | Updated historical date format in error message |
| examples/basic_usage.py | Updated to use new field names (snake_case) and YYYYMM format |
| docs/spec.yaml | Comprehensive updates with TaxCloud API specification |
| docs/VERSIONING.md | New detailed versioning guide with workflow documentation |
| docs/API_FIELD_MAPPING.md | Updated field mappings for new snake_case conventions |
| README.md | Extensive updates with TaxCloud documentation and examples |
| CLAUDE.md | New AI development guide (778 lines) |
| CHANGELOG.md | Documented all changes for v0.2.0-beta |
| .github/workflows/version-check.yml | New GitHub Actions workflow enforcing version bumps |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 28 out of 28 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 30 out of 30 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This pull request introduces optional TaxCloud order management support to the Ziptax Python SDK, along with several enhancements, new models, and improved documentation. The most significant changes are the addition of TaxCloud API integration (with new client configuration options, models, and error handling), updates to the HTTP client, and extensive documentation updates. A new GitHub Actions workflow is also added to enforce version bumping and consistency.
TaxCloud Integration and API Enhancements
taxcloud_connection_id,taxcloud_api_key, andtaxcloud_base_url) and a dedicated exception (ZipTaxCloudConfigError). TaxCloud features are only enabled when credentials are provided and maintain backward compatibility. [1] [2] [3] [4] [5]HTTP Client and API Improvements
post()andpatch()methods supporting JSON payloads, query parameters, and headers, and implemented dual API architecture to manage both ZipTax and TaxCloud clients.Documentation and Examples
README.mdextensively with TaxCloud usage instructions, new code examples, updated API references, and exception hierarchy. Added a new example file (examples/taxcloud_orders.py) and createdCLAUDE.mdas an AI development guide. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]Versioning and Contribution Process
.github/workflows/version-check.yml) to enforce version bumping, version consistency betweenpyproject.tomland__init__.py, semantic versioning validation, and CHANGELOG updates on every PR. Updated contribution guidelines to require version bumps and changelog entries. [1] [2]Other Notable Improvements
These updates provide robust new functionality for order and refund management via TaxCloud, improve the developer experience, and enforce best practices for versioning and documentation.