Modernize Python CI and packaging#116
Conversation
# Conflicts: # .github/workflows/main.yml # Makefile # setup.py
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
|
Warning Review the following alerts detected in dependencies. According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 8db8bec. Configure here.
washam-cio
left a comment
There was a problem hiding this comment.
In general, the changes modernize, improve readability, and remove duplicated code. Just pointed out a couple of things.
There are also a couple of comments I added outside of this review.
| "send_to_unsubscribed": "send_to_unsubscribed", | ||
| "tracked": "tracked", | ||
| "attachments": "attachments", | ||
| "disable_css_preproceessing": "disable_css_preproceessing", |
There was a problem hiding this comment.
typo here: preproceessing
But we probably can't make this change until we publish a new major version, right?
There was a problem hiding this comment.
yeah, planning on shipping this as a new major version. I believe this is a pre-existing bug, gonna fix it

Summary
Verification
Note
Medium Risk
Moderate risk due to switching to
pyproject.toml/PEP 621 packaging metadata, updating dependency constraints, and refactoring request payload/sanitization code paths that could subtly change runtime behavior.Overview
Modernizes packaging and release tooling by adding
pyproject.toml(PEP 621 metadata, dev extras,requests/urllib3constraints, Python>=3.10), simplifyingsetup.py, addingMANIFEST.into exclude tests from sdists, and updatingMakefiletargets forbuild,lint/format(ruff), andtwineupload.Refreshes CI and automation with a new GitHub Actions workflow that runs ruff lint/format checks, tests across Python 3.10–3.14, validates build artifacts via
build+twine check, adds pip caching/concurrency, and introduces weekly Dependabot updates for GitHub Actions and pip.Codebase cleanup/refactor: reorganizes exports in
customerio/__init__.py, simplifies version definition, refactors transactional message request payload generation inapi.pyvia shared field maps, and makesClientBase._sanitizenon-mutating; tests and the HTTPS test server are updated accordingly (including switching warning suppression tourllib3.disable_warnings()).Reviewed by Cursor Bugbot for commit c77bd64. Bugbot is set up for automated code reviews on this repo. Configure here.