feat: bootstrap Python Product Analytics SDK for v0.9.0#2
feat: bootstrap Python Product Analytics SDK for v0.9.0#2redox merged 11 commits intoaltertable-ai:mainfrom
Conversation
… test matrix update
|
Done! I updated the |
.github/workflows/release-please.yml
Outdated
| - name: Build and publish | ||
| run: | | ||
| poetry build | ||
| poetry publish --username __token__ --password ${{ secrets.PYPI_API_TOKEN }} |
There was a problem hiding this comment.
we use trusted publisher, no need of an API token
There was a problem hiding this comment.
Fixed! Switched to pypa/gh-action-pypi-publish@release/v1.
There was a problem hiding this comment.
Pull request overview
This PR bootstraps the Python SDK for Altertable Product Analytics, targeting v0.9.0. It introduces the core client library with track, identify, and alias methods, along with CI/CD workflows, project configuration, documentation, and community files.
Changes:
- Added the
Altertableclient class with error handling (ApiError,NetworkError) and methods for tracking events, identifying users, and aliasing user IDs. - Set up CI workflows (lint, test, typing, release), project scaffolding (
pyproject.toml,.gitignore, etc.), and community files (README, CONTRIBUTING, CODE_OF_CONDUCT, SECURITY, issue/PR templates). - Added integration tests against a mock server and replaced the old placeholder test.
Reviewed changes
Copilot reviewed 20 out of 22 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| src/altertable/client.py | Core SDK client with track/identify/alias methods and custom exceptions |
| src/altertable/init.py | Package init exposing Altertable and __version__ |
| tests/test_altertable.py | Integration tests for track, identify, alias, auth error, and version |
| tests/test_basic.py | Removed old placeholder import test |
| pyproject.toml | Added requests dependency and types-requests dev dependency |
| .github/workflows/ci.yml | Updated CI: split typing job, added Python 3.13/3.14, changed install approach |
| .github/workflows/release-please.yml | New release automation workflow |
| release-please-config.json | Release-please configuration |
| .release-please-manifest.json | Release-please version manifest |
| README.md | SDK documentation with usage examples |
| CONTRIBUTING.md | Contribution guidelines |
| CODE_OF_CONDUCT.md | Contributor Covenant code of conduct |
| SECURITY.md | Security policy |
| LICENSE | MIT license file |
| .gitignore | Python-specific gitignore |
| .gitmodules | Git submodule for client specs |
| .github/PULL_REQUEST_TEMPLATE.md | PR template |
| .github/ISSUE_TEMPLATE/bug_report.yml | Bug report issue template |
| .github/ISSUE_TEMPLATE/feature_request.yml | Feature request issue template |
| .github/FUNDING.yml | GitHub funding configuration |
| specs | Submodule reference to client specs |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
README.md
Outdated
|
|
||
| ```python | ||
| client.identify( | ||
| user_id="user_123", |
There was a problem hiding this comment.
The identify method signature in client.py uses the parameter name distinct_id, not user_id. This README example will raise a TypeError at runtime. Change user_id to distinct_id.
| user_id="user_123", | |
| distinct_id="user_123", |
|
Good catches from Copilot! I've updated the |
|
Thanks for reviewing, @redox! The changes requested by Copilot and the matrix updates are pushed. All checks are passing, this is ready to merge. |
🤖 I have created a release *beep* *boop* --- ## [0.2.0](altertable-v0.1.0...altertable-v0.2.0) (2026-03-09) ### Features * bootstrap Python Product Analytics SDK for v0.9.0 ([#2](#2)) ([0ad5fb2](0ad5fb2)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Initial implementation of the Python SDK following the spec.