Skip to content

feat: bootstrap Python Product Analytics SDK for v0.9.0#2

Merged
redox merged 11 commits intoaltertable-ai:mainfrom
albert20260301:bootstrap/specs-v0.9.0
Mar 9, 2026
Merged

feat: bootstrap Python Product Analytics SDK for v0.9.0#2
redox merged 11 commits intoaltertable-ai:mainfrom
albert20260301:bootstrap/specs-v0.9.0

Conversation

@albert20260301
Copy link
Contributor

@albert20260301 albert20260301 commented Mar 9, 2026

Initial implementation of the Python SDK following the spec.

@albert20260301
Copy link
Contributor Author

Done! I updated the identify argument to distinct_id, and I also updated the test matrix to run on both 3.13 and 3.14 in ci.yml and release-please.yml. Commits have been pushed!

- name: Build and publish
run: |
poetry build
poetry publish --username __token__ --password ${{ secrets.PYPI_API_TOKEN }}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we use trusted publisher, no need of an API token

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed! Switched to pypa/gh-action-pypi-publish@release/v1.

@redox redox requested a review from Copilot March 9, 2026 20:14
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 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 Altertable client 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",
Copy link

Copilot AI Mar 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
user_id="user_123",
distinct_id="user_123",

Copilot uses AI. Check for mistakes.
@albert20260301
Copy link
Contributor Author

albert20260301 commented Mar 9, 2026

Good catches from Copilot! I've updated the README.md to reflect the distinct_id change, fixed the bug_report.yml issue template to use Python Version instead of {language}, and added the docstring to __init__ explaining the timeout conversion. Changes pushed!

@albert20260301
Copy link
Contributor Author

Thanks for reviewing, @redox! The changes requested by Copilot and the matrix updates are pushed. All checks are passing, this is ready to merge.

@redox redox merged commit 0ad5fb2 into altertable-ai:main Mar 9, 2026
8 checks passed
redox pushed a commit that referenced this pull request Mar 9, 2026
🤖 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>
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.

3 participants