## Summary - Rename `date-modified` -> `modified` in all 80 docs and the `docs-check-frontmatter` task Quartz's `CreatedModifiedDate` plugin recognizes `modified`, `lastmod`, `updated`, and `last-modified` — but not `date-modified`. The wrong field name caused Quartz to ignore frontmatter dates entirely and fall through to filesystem timestamps (UTC inside Dagger), showing Feb 12 on pages built late on Feb 11 PST. ## Test plan - [x] `mise run docs-check-frontmatter` passes - [ ] Kick off docs release after merge — verify rendered dates match frontmatter values Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/158
1.2 KiB
1.2 KiB
| title | modified | tags | ||
|---|---|---|---|---|
| Use PyPI Proxy | 2026-02-07 |
|
Use the PyPI Proxy
How to configure clients and publish packages to devpi.
Configure pip/uv
Point pip and uv at the proxy via environment variables:
export PIP_INDEX_URL="https://pypi.ops.eblu.me/root/pypi/+simple/"
export UV_INDEX_URL="https://pypi.ops.eblu.me/root/pypi/+simple/"
Unset both to fall back to public PyPI (e.g. when indri is offline).
The dotfiles repo has shell config that manages this toggle.
Upload Packages
# Build and publish with uv
cd ~/code/personal/your-package
uv build
uv publish --publish-url https://pypi.ops.eblu.me/eblume/dev/
# First time: uv will prompt for credentials
Create Users/Indices
# Login as root
uvx devpi use https://pypi.ops.eblu.me
uvx devpi login root
# Create user (prompts for password - store in 1Password)
uvx devpi user -c USERNAME email=EMAIL
# Create index inheriting from PyPI mirror
uvx devpi index -c USERNAME/dev bases=root/pypi
Verify Cache
# Check if devpi is caching
curl -s https://pypi.ops.eblu.me/+api | jq
Related
- devpi - Service reference