Skip to content

release: v0.1.0#10

Merged
RyanAlberts merged 1 commit into
mainfrom
phase-1-pr5-release-v0.1.0
May 1, 2026
Merged

release: v0.1.0#10
RyanAlberts merged 1 commit into
mainfrom
phase-1-pr5-release-v0.1.0

Conversation

@RyanAlberts
Copy link
Copy Markdown
Owner

What

The terminal Phase 1 PR. Bumps 0.0.1 → 0.1.0, finalizes CHANGELOG, ships a PyPI Trusted-Publishing release workflow, and updates the README quickstart to the actual v0.1 commands.

Closes #5.

What's in 0.1.0

Layer Status
Repo bootstrap, secrets hygiene, CI ✅ Phase 0
Scraper + sanitizer + coverage probe ✅ PR #6
LLM enrichment + anti-hallucination Layer 1 ✅ PR #7
Enriched dashboard + cited-URL publish gate ✅ PR #8
Resilience + parser tightening (0% schema-failure rate) ✅ PR #9
Release plumbing (this PR)

103 tests passing. Mypy --strict clean. make publish-check clean.

Local smoke (already done)

python -m build
# -> dist/yc_ai_pulse-0.1.0-py3-none-any.whl  (38 KB)
# -> dist/yc_ai_pulse-0.1.0.tar.gz             (134 KB)

pipx install --force dist/yc_ai_pulse-0.1.0-py3-none-any.whl
ycai version
# yc-ai-pulse 0.1.0

cd /tmp/clean-dir
ycai run-coverage --batch winter-2026 --yc-official-count 196 --skip-link-check
# headline: 63.3% of Winter 2026 analyzed (124 of 196 companies)

PyPI publish — one-time setup needed

The release workflow uses PyPI Trusted Publishing, which needs a one-time configuration on the PyPI side:

  1. Go to https://pypi.org/manage/account/publishing/
  2. Add a new pending publisher:
    • PyPI Project Name: yc-ai-pulse
    • Owner: RyanAlberts
    • Repo name: yc-ai-pulse
    • Workflow filename: release.yml
    • Environment name: pypi
  3. Optionally also configure on TestPyPI for dry-run testing.

Until that's done, the publish job in release.yml will fail; the github-release job still uploads the built wheels to the GitHub release. Re-running the workflow after PyPI setup will publish.

Release sequence (after this PR merges)

git checkout main && git pull
git tag -a v0.1.0 -m "v0.1.0"
git push origin v0.1.0
# release.yml fires: build → publish (if Trusted Publishing configured) → attach to GitHub release
gh release create v0.1.0 --generate-notes --title "v0.1.0"

After release: close v0.1 milestone, promote B007 to a v0.2 issue, open v0.2 milestone.

Backlog status at release

ID Status
B001 resolved (PR #6 ADR amend)
B002 open — yc-oss caching headroom check
B003 open — Node 20 → Node 24 deadline 2026-06-02
B004 open — calibrate MIN_DESCRIPTION_CHARS
B005 open — name missing-from-upstream W26 companies
B006 resolved (PR #9)
B007 open — depth=1 website crawl for tech_stack / oss_posture. Biggest signal lever for v0.2.
B008 resolved (PR #9)

Acceptance

  • python -m build produces a clean wheel + sdist
  • pipx install works, ycai version returns 0.1.0
  • ycai run-coverage succeeds end-to-end from a clean dir
  • release.yml configured for PyPI Trusted Publishing
  • CHANGELOG.md reflects 0.1.0
  • All Phase 1 acceptance gates from the plan green
  • make publish-check clean
  • BACKLOG groomed; surviving items will move to v0.2 issues post-merge

🤖 Generated with Claude Code

First publishable release.

What ships in v0.1.0
- Phase 0 + Phase 1 of the project plan: scraper, sanitizer, link
  verifier, coverage probe, LLM enrichment with anti-hallucination
  Layer 1, enriched dashboard, cited-URL publish gate, resume + re-
  render commands, raw failure capture.
- 103 tests passing, mypy --strict clean, secret-scan clean.
- Real W26 results checked in: 63.3% coverage, 95% high-confidence
  on the LLM enrichment, 0 schema failures, 0 hallucinated source
  URLs, top finding 'W26 = the agentic batch' on n=118.

Mechanics
- pyproject.toml: 0.0.1 -> 0.1.0, classifier bumped pre-alpha -> alpha.
- src/ycai/__init__.py: __version__ matches.
- tests/test_smoke.py: version assertion bumped.
- CHANGELOG.md: 0.1.0 release notes synthesizing PR #6-#9.
- README.md: status table updated, quickstart documents the actual
  v0.1 commands (run-coverage / resume / dashboard).
- .github/workflows/release.yml: build wheel+sdist on tag push,
  publish to PyPI via Trusted Publishing (id-token), attach
  artifacts to GitHub release.

Local smoke
- python -m build produces yc_ai_pulse-0.1.0-py3-none-any.whl (38KB)
  and yc_ai_pulse-0.1.0.tar.gz (134KB).
- pipx install --force <wheel> succeeds; ycai version returns 0.1.0;
  ycai run-coverage --batch winter-2026 succeeds end-to-end from
  a clean /tmp directory.

PyPI Trusted Publishing setup (one-time, on PyPI side)
- https://pypi.org/manage/project/yc-ai-pulse/settings/publishing/
- Repo: RyanAlberts/yc-ai-pulse
- Workflow: release.yml
- Environment: pypi
- Until configured, the publish job will fail; the GitHub release
  job still attaches built wheels.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@RyanAlberts RyanAlberts merged commit fbb3328 into main May 1, 2026
3 checks passed
@RyanAlberts RyanAlberts deleted the phase-1-pr5-release-v0.1.0 branch May 1, 2026 21:19
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request prepares the project for its first publishable release, version 0.1.0. Key changes include updating the version across the codebase, documenting the Phase 0 and Phase 1 milestones in the changelog, and refreshing the README with updated quickstart instructions and status tables. Feedback suggests using generic date placeholders in the README command examples to avoid user confusion.

Comment thread README.md
ycai run-coverage --batch winter-2026 --yc-official-count 196 --enrich

# Resume an interrupted run (quota wall, crash, network blip):
ycai resume runs/2026-05-01-XXXXXX
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The placeholder date in the example command '2026-05-01' should be replaced with a generic placeholder or variable to avoid confusion for users running this command on different dates.

Suggested change
ycai resume runs/2026-05-01-XXXXXX
ycai resume runs/YYYY-MM-DD-XXXXXX

Comment thread README.md

# Re-render the dashboard from existing artifacts at zero LLM cost
# (useful when the dashboard layout changes):
ycai dashboard runs/2026-05-01-XXXXXX
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The placeholder date in the example command '2026-05-01' should be replaced with a generic placeholder or variable to avoid confusion for users running this command on different dates.

Suggested change
ycai dashboard runs/2026-05-01-XXXXXX
ycai dashboard runs/YYYY-MM-DD-XXXXXX

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.

PR #5 — v0.1.0 release: PyPI publish + tag

1 participant