Skip to content

Comments

ZIP-562/v0.2.0-beta#12

Merged
ericlakich merged 9 commits intomainfrom
ZIP-562/v0.2.0-beta
Feb 17, 2026
Merged

ZIP-562/v0.2.0-beta#12
ericlakich merged 9 commits intomainfrom
ZIP-562/v0.2.0-beta

Conversation

@ericlakich
Copy link
Contributor

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

  • Added optional support for TaxCloud order management, including functions to create, retrieve, update, and refund orders, as well as 18 new Pydantic models for TaxCloud data structures. This includes new configuration options (taxcloud_connection_id, taxcloud_api_key, and taxcloud_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

  • Enhanced the HTTP client with new post() and patch() methods supporting JSON payloads, query parameters, and headers, and implemented dual API architecture to manage both ZipTax and TaxCloud clients.

Documentation and Examples

  • Updated the README.md extensively with TaxCloud usage instructions, new code examples, updated API references, and exception hierarchy. Added a new example file (examples/taxcloud_orders.py) and created CLAUDE.md as an AI development guide. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]

Versioning and Contribution Process

  • Added a GitHub Actions workflow (.github/workflows/version-check.yml) to enforce version bumping, version consistency between pyproject.toml and __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

  • Improved type safety and validation throughout the SDK, updated existing models for clarity (e.g., renaming fields for consistency), and ensured all changes pass linting and type checking. [1] [2] [3] [4] [5]

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.

Copilot AI review requested due to automatic review settings February 16, 2026 20:30
@github-actions
Copy link

Version Bump Check

Item Status
Base version 0.1.3-beta
PR version 0.2.0-beta
Version bumped ✅ Yes
Version consistent ✅ Yes
CHANGELOG updated ⚠️ No

⚠️ Reminder: Please update CHANGELOG.md with your changes.


Version bump: 0.1.3-beta0.2.0-beta

Copy link

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 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.

Copilot AI review requested due to automatic review settings February 16, 2026 20:44
Copy link

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

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.

Copilot AI review requested due to automatic review settings February 17, 2026 18:29
Copy link

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

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.

@ericlakich ericlakich merged commit f3cf085 into main Feb 17, 2026
24 checks passed
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