# Release Notes - v0.1.13

**PyPI Distribution Workflow**

- **Release Date**: November 29, 2025
- **Lifecycle Phase**: Alpha
- **Version**: 0.1.13

---

## 🌟 Highlights

PyFulmen v0.1.13 completes the PyPI distribution pipeline so downstream
projects can `uv pip install pyfulmen` without relying on Git tags. The release
adds automated gates for building, verifying, and publishing sdists/wheels plus
dedicated documentation for release drivers.

### 🚀 Prepublish Workflow

- `make prepublish` now enforces a clean working tree, runs the standard
  `prepush` gates, executes `release-verify`, performs `uv run twine check
dist/*.whl dist/*.tar.gz`, and records `.artifacts/prepublish.json`.
- `release-check` refuses to proceed unless the sentinel matches the current
  `VERSION`, ensuring artifacts were built and validated before tagging.
- Helper scripts:
  - `verify_dist_contents.py` validates that wheels/sdists contain `py.typed`,
    Crucible config, schemas, and licenses.
  - `verify_local_install.py` installs the freshly built wheel using both `uv
pip` and `uv tool run pip` to guarantee compatibility.
  - `verify_published_package.py` installs from TestPyPI/PyPI and confirms the
    imported version.
  - `prepublish_sentinel.py` writes/verifies the sentinel metadata.

### 📦 Packaging Reliability

- Wheels now bundle Crucible config and schema assets, and runtime catalog
  loading automatically locates them when installed from PyPI.
- `release-publish-test` / `release-publish-prod` targets upload only wheels and
  sdists, preventing checksum files like `SHA256SUMS.txt` from triggering
  `InvalidDistribution` errors on PyPI.

### 📝 Documentation & Templates

- Added `docs/publishing.md` plus an updated `RELEASE_CHECKLIST.md` so every
  release follows the same gated flow (prepush → prepublish → tag → publish).
- Release-specific guidance lives in `docs/releases/v0.1.13.md` (this file).

---

## 📊 Quality

- `make prepublish` now runs as part of every release driver workflow.
- Local + published install verification succeeds for both `uv pip` and `uv tool
run pip` paths.
- `make verify-published-package VERIFY_PUBLISH_VERSION=0.1.13` succeeds against
  PyPI.

---

## ✅ Action Items for Consumers

- Switch templates (e.g., Percheron, Forge) to use PyPI: `uv add pyfulmen==0.1.13`.
- Retain `git+https://` dependency syntax only for emergency hotfixes.
- Follow `docs/publishing.md` for future releases; never skip `make prepublish`.
