Skip to content

feat: prepare project for PyPI distribution#12

Merged
johnlarkin1 merged 1 commit intomainfrom
feat/john/prep-for-distribution
Jan 16, 2026
Merged

feat: prepare project for PyPI distribution#12
johnlarkin1 merged 1 commit intomainfrom
feat/john/prep-for-distribution

Conversation

@johnlarkin1
Copy link
Copy Markdown
Owner

Important

This PR was created by Claude Code. Take an extra sec to review. Or don't and trust the robots and process.

Summary

Prepares the project for distribution via PyPI, pipx, and uvx.

Motivation & Context

The project needs to be installable via standard Python package managers so users can simply run pip install imessage-data-foundry or uvx imessage-data-foundry.

Key Changes

  • Add MIT LICENSE file (required for PyPI)
  • Fix pyproject.toml: move dev deps out of main deps, enable dynamic versioning from __init__.py
  • Add CLI argument parsing with --help, --version, --output flags
  • Update README with installation methods (pip, pipx, uvx, from source)
  • Add GitHub Actions workflows:
    • ci.yaml: lint, type check, tests on PRs
    • cd.yaml: build and publish to PyPI on version tags

Critical Files Touched

  • LICENSE (new)
  • pyproject.toml - dependency fixes, dynamic versioning
  • imessage_data_foundry/cli/app.py - argparse CLI
  • README.md - installation docs
  • .github/workflows/ci.yaml (new)
  • .github/workflows/cd.yaml (new)

How to Test

make lint   # All checks pass
make test   # 370 tests pass
imessage-data-foundry --version  # Shows 0.1.0
imessage-data-foundry --help     # Shows usage

Additional Notes to Human Reviewer

After merge, to release:

  1. Set up PyPI trusted publishing (workflow: cd.yaml)
  2. Tag and push: git tag v0.1.0 && git push origin v0.1.0

Co-authored-by: Claude Code noreply@anthropic.com

- Add MIT LICENSE file
- Fix pyproject.toml: remove dev deps from main deps, enable dynamic versioning
- Add CLI argument parsing (--help, --version, --output)
- Update README with installation methods (pip, pipx, uvx)
- Add GitHub Actions CI/CD workflows

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@johnlarkin1 johnlarkin1 force-pushed the feat/john/prep-for-distribution branch from e739388 to 2c5b041 Compare January 16, 2026 20:52
@johnlarkin1 johnlarkin1 merged commit 6f466a6 into main Jan 16, 2026
3 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.

1 participant