Skip to content

Carve out reusable Apache-2.0 library + package for PyPI (Closes #5)#7

Merged
martymcenroe merged 1 commit into
mainfrom
1-publish-library
Jun 11, 2026
Merged

Carve out reusable Apache-2.0 library + package for PyPI (Closes #5)#7
martymcenroe merged 1 commit into
mainfrom
1-publish-library

Conversation

@martymcenroe

Copy link
Copy Markdown
Owner

What

Turns Silphe into a real, importable, Apache-2.0 library — the prerequisite for publishing to PyPI.

  • Portability fix: split human_cursor.py into silphe.model (cross-platform path generation) and silphe.cursor (Windows-only driver). The old module called ctypes.windll at import time, so the package was unimportable on macOS/Linux; now import silphe works everywhere and driving is cleanly guarded off Windows.
  • Analysis as a library: extracted the Fitts / tremor / tracking-lag math out of the CLIs into silphe.analysis over a documented session schema.
  • Public API + py.typed in silphe/__init__.py.
  • Apache-2.0 (open-core: the game and recorded data stay proprietary).
  • Packaging: src discovery, metadata, classifiers, keywords, and silphe-play / -arc / -analyze / -lag / -demo entry points.
  • Tests (18): known-value recovery for the Fitts slope, an injected tracking lag, and a tremor frequency; plus a cross-platform import-safety test. poetry build produces a clean wheel (verified: no recordings or PII; py.typed included).
  • Scrubbed PII and Talos-era references from all source.
  • Adds CHANGELOG.md, the session-schema doc, and the publish runbook.

Not in this PR

Closes #5

Split human_cursor into cross-platform silphe.model (path generation) and
Windows-only silphe.cursor (driver); fixes the import-time ctypes.windll
crash that made the package unimportable off Windows. Extract the analysis
math into silphe.analysis over a documented session schema. Re-license to
Apache-2.0, finalize packaging (metadata, classifiers, entry points,
py.typed), add tests (known-value recovery for Fitts slope, tracking lag,
tremor frequency) and an OIDC release workflow, and scrub PII / Talos refs.

Closes #5

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

@cerberus-az cerberus-az Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Auto-approved: all required checks passed. 🤖

@martymcenroe martymcenroe merged commit 07f3561 into main Jun 11, 2026
2 checks passed
@martymcenroe martymcenroe deleted the 1-publish-library branch June 11, 2026 13:10
martymcenroe added a commit that referenced this pull request Jun 11, 2026
)

Split human_cursor into cross-platform silphe.model (path generation) and
Windows-only silphe.cursor (driver); fixes the import-time ctypes.windll
crash that made the package unimportable off Windows. Extract the analysis
math into silphe.analysis over a documented session schema. Re-license to
Apache-2.0, finalize packaging (metadata, classifiers, entry points,
py.typed), add tests (known-value recovery for Fitts slope, tracking lag,
tremor frequency) and an OIDC release workflow, and scrub PII / Talos refs.

Closes #5

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.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.

Carve out the reusable core into an importable Apache-2.0 library + package for PyPI

1 participant