Skip to content

Release v3.1.0: fix CI, harden packaging, add tests#8

Merged
anthony-maio merged 2 commits intomasterfrom
release/v3.1.0
Mar 6, 2026
Merged

Release v3.1.0: fix CI, harden packaging, add tests#8
anthony-maio merged 2 commits intomasterfrom
release/v3.1.0

Conversation

@anthony-maio
Copy link
Copy Markdown
Owner

Summary

  • Fix publish.yml: Replace broken v2 API smoke test (slip/decode) with pytest — unblocks all future PyPI releases
  • Version 3.1.0 + Beta status: Bump version and upgrade PyPI classifier from Alpha to Beta
  • Remove slipcore_tools stub: Empty 19-line placeholder removed along with tools dependency group
  • Fix refXXXX placeholder: Fallback training examples now generate SHA-derived ref tokens
  • Add CHANGELOG.md: Covers v2.0.0 through v3.1.0
  • Rewrite RELEASE_CHECKLIST.md: All v2 API references replaced with v3
  • Add 28 new tests: test_finetune.py (17 tests) + test_errors.py (11 tests)

Test plan

  • pytest tests/ -v — 554 passed, 1 xfailed
  • Smoke test: slipcore 3.1.0 OK: SLIP v3 a b Request Review
  • CI passes on all Python versions (3.10-3.13)
  • After merge: tag v3.1.0 and create GitHub release to trigger PyPI publish

🤖 Generated with Claude Code

- Fix publish.yml: replace broken v2 API smoke test with pytest
- Bump version to 3.1.0, upgrade PyPI classifier to Beta
- Remove empty slipcore_tools stub and tools dependency group
- Fix refXXXX placeholder in finetune.py with SHA-derived ref tokens
- Add CHANGELOG.md covering v2.0.0 through v3.1.0
- Rewrite RELEASE_CHECKLIST.md for v3 API
- Add unit tests for finetune.py (17 tests) and errors.py (11 tests)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings February 27, 2026 17:04
Copy link
Copy Markdown

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 prepares the slipcore v3.1.0 release by fixing the PyPI publish workflow, hardening packaging metadata, removing an unused stub package, and adding tests around the finetune generator and error hierarchy.

Changes:

  • Replace the publish workflow’s broken v2 smoke test with pytest execution.
  • Bump to v3.1.0, update PyPI classifier to Beta, and remove slipcore_tools + the tools extra.
  • Fix fallback training example refs (refXXXX → SHA-derived refs) and add targeted unit tests + release documentation.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tests/test_finetune.py Adds coverage for finetune example generation + output format writers.
tests/test_errors.py Adds coverage for slipcore.errors hierarchy and key error behaviors.
src/slipcore_tools/__init__.py Removes the stub tools package (previously a dependency-check placeholder).
src/slipcore/finetune.py Replaces placeholder fallback refs with deterministic SHA-derived tokens.
src/slipcore/__init__.py Bumps __version__ to 3.1.0.
pyproject.toml Bumps version, updates classifier to Beta, removes tools extra, updates wheel packages.
RELEASE_CHECKLIST.md Updates checklist for v3-era commands/workflow and dataset generation instructions.
CHANGELOG.md Introduces changelog covering v2.0.0 through v3.1.0.
.github/workflows/publish.yml Runs pytest in release publish pipeline before building/publishing.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread tests/test_errors.py Outdated

def test_is_catchable_as_slip_error(self):
with pytest.raises(SlipError):
raise MissingExtraError("click", "tools")
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

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

MissingExtraError is raised here with extra="tools", but the tools optional dependency group was removed from pyproject.toml in this PR. Using a non-existent extra makes the test/example inconsistent with current packaging (and would suggest an invalid pip install slipcore[tools] command if surfaced in messages). Consider changing this to an existing extra (e.g. "ml" or "a2a") or introducing a constant/fixture that reflects the current extras.

Suggested change
raise MissingExtraError("click", "tools")
raise MissingExtraError("click", "ml")

Copilot uses AI. Check for mistakes.
Comment thread RELEASE_CHECKLIST.md Outdated
Comment on lines 35 to 41
# Tag the release (use current version)
git tag -a v3.1.0 -m "Slipstream v3.1.0"
git push origin v3.1.0

# Create release on GitHub UI or:
gh release create v2.0.0 --title "Slipstream v2.0.0" --notes "See CHANGELOG.md"
# Create release on GitHub
gh release create v3.1.0 --title "Slipstream v3.1.0" --notes "See CHANGELOG.md"
```
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

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

This checklist section is now version-agnostic in the header, but the tag/release commands are hard-coded to v3.1.0. That’s easy to forget to update on the next release and could lead to tagging the wrong version. Consider using a placeholder (e.g. vX.Y.Z) or deriving the version from pyproject.toml/slipcore.__version__ in the commands.

Copilot uses AI. Check for mistakes.
- Fix MissingExtraError test to use existing "ml" extra instead of removed "tools"
- Make RELEASE_CHECKLIST version-agnostic (derives version from slipcore.__version__)
- Fix all 33 pre-existing ruff errors:
  - Auto-fix: import sorting, unused imports, f-string prefix (17 errors)
  - Add per-file E501 ignore for finetune.py/finetune_llm.py (LLM prompt strings)
  - Refactor ucr.py find_nearest() long conditional into named booleans
  - Break long list literals in slipcore_ml/coords.py into multi-line format

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@anthony-maio anthony-maio merged commit 1175268 into master Mar 6, 2026
4 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.

2 participants