[PR #69] [MERGED] chore: prepare v1.0.0 release #69

Closed
opened 2026-08-12 19:09:21 +02:00 by zaph0d · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/niels-emmer/myace/pull/69
Author: @niels-emmer
Created: 8/12/2026
Status: Merged
Merged: 8/12/2026
Merged by: @niels-emmer

Base: mainHead: chore/v1.0-release-prep


📝 Commits (1)

  • 4396815 chore: prepare v1.0.0 release

📊 Changes

8 files changed (+198 additions, -30 deletions)

View changed files

📝 .github/workflows/release-cli.yml (+1 -0)
📝 CONTRIBUTING.md (+5 -1)
📝 README.md (+16 -3)
📝 backend/pyproject.toml (+1 -1)
📝 cli/pyproject.toml (+1 -1)
docs/plans/postgres-backups-plan.md (+132 -0)
📝 frontend/package-lock.json (+39 -21)
📝 frontend/package.json (+3 -3)

📄 Description

Summary

Final pre-release audit + fixes ahead of tagging v1.0.0. Audit covered: TODO/FIXME litter (none), hardcoded secrets/placeholders (none, existing safeguards intentional and enforced), documented known gaps (docs/adr/, docs/debugging.md), test suite health, dependency posture, and release/versioning infrastructure. Findings and fixes:

  • Version numbers: backend/frontend/cli were independently pinned at 0.1.0 with no shared source of truth — bumped all three to 1.0.0.
  • @types/react/@types/react-dom drift: pinned at ^19.2.0 while the actual react/react-dom runtime is ^18.3.1 — a real major-version mismatch between types and runtime. Pinned back to ^18.3.x.
  • README binary install bug: the "Quick install (binary)" curl commands hardcoded releases/download/latest/<asset> — the literal, auto-republished-on-every-push latest tag (bleeding edge), not GitHub's releases/latest/download/ alias (most recent non-prerelease release). Both existing releases are prereleases, so that alias currently 404s. Fixed the README URLs to use the correct alias, which will resolve correctly once v1.0.0 ships as a real release.
  • release-cli.yml tag trigger: only matched cli-v*, which has never been pushed — the 4-platform PyInstaller build-and-attach workflow has never actually run. Broadened to also match v* so a v1.0.0 tag triggers it directly.
  • Postgres backups: no automated backup mechanism exists anywhere in the stack. A plan for one was already sitting uncommitted on disk (docs/plans/postgres-backups-plan.md) — committed it so the gap is tracked, and added a short README "Backups" section pointing at it. Not implementing backup automation in this PR (scoped decision, not an oversight).
  • CONTRIBUTING.md: stated "at least one maintainer review is required" but branch protection on main actually requires 0 approving reviews (matches the solo-maintainer pattern in all recent PR history). Reworded to match reality instead of tightening branch protection.

Explicitly left as-is (documented, deliberate trade-offs, not bugs): compile_profile()'s per-collection visibility check gap (ADR-0003) and mypy's advisory-only CI status.

Test plan

  • ruff check . — backend and CLI, clean.
  • pytest — CLI: 15 passed. Backend: 152 passed (3 test files — test_seed_collections.py, test_provider_toggle.py, test_startup_warnings.py — show pre-existing Postgres-connection contention when run back-to-back against this long-lived local dev container; each passes individually; unrelated to any change in this PR; CI runs in a clean environment).
  • npx tsc -b — clean after the @types/react fix.
  • npm run lint — clean (pre-existing 2 warnings, unrelated).
  • npm run build — succeeds.

🤖 Generated with Claude Code


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/niels-emmer/myace/pull/69 **Author:** [@niels-emmer](https://github.com/niels-emmer) **Created:** 8/12/2026 **Status:** ✅ Merged **Merged:** 8/12/2026 **Merged by:** [@niels-emmer](https://github.com/niels-emmer) **Base:** `main` ← **Head:** `chore/v1.0-release-prep` --- ### 📝 Commits (1) - [`4396815`](https://github.com/niels-emmer/myace/commit/43968156b21bf27cceac4657da27916282dc9db2) chore: prepare v1.0.0 release ### 📊 Changes **8 files changed** (+198 additions, -30 deletions) <details> <summary>View changed files</summary> 📝 `.github/workflows/release-cli.yml` (+1 -0) 📝 `CONTRIBUTING.md` (+5 -1) 📝 `README.md` (+16 -3) 📝 `backend/pyproject.toml` (+1 -1) 📝 `cli/pyproject.toml` (+1 -1) ➕ `docs/plans/postgres-backups-plan.md` (+132 -0) 📝 `frontend/package-lock.json` (+39 -21) 📝 `frontend/package.json` (+3 -3) </details> ### 📄 Description ## Summary Final pre-release audit + fixes ahead of tagging v1.0.0. Audit covered: TODO/FIXME litter (none), hardcoded secrets/placeholders (none, existing safeguards intentional and enforced), documented known gaps (`docs/adr/`, `docs/debugging.md`), test suite health, dependency posture, and release/versioning infrastructure. Findings and fixes: - **Version numbers**: backend/frontend/cli were independently pinned at `0.1.0` with no shared source of truth — bumped all three to `1.0.0`. - **`@types/react`/`@types/react-dom` drift**: pinned at `^19.2.0` while the actual `react`/`react-dom` runtime is `^18.3.1` — a real major-version mismatch between types and runtime. Pinned back to `^18.3.x`. - **README binary install bug**: the "Quick install (binary)" curl commands hardcoded `releases/download/latest/<asset>` — the literal, auto-republished-on-every-push `latest` tag (bleeding edge), not GitHub's `releases/latest/download/` alias (most recent *non-prerelease* release). Both existing releases are prereleases, so that alias currently 404s. Fixed the README URLs to use the correct alias, which will resolve correctly once v1.0.0 ships as a real release. - **`release-cli.yml` tag trigger**: only matched `cli-v*`, which has never been pushed — the 4-platform PyInstaller build-and-attach workflow has never actually run. Broadened to also match `v*` so a `v1.0.0` tag triggers it directly. - **Postgres backups**: no automated backup mechanism exists anywhere in the stack. A plan for one was already sitting uncommitted on disk (`docs/plans/postgres-backups-plan.md`) — committed it so the gap is tracked, and added a short README "Backups" section pointing at it. Not implementing backup automation in this PR (scoped decision, not an oversight). - **`CONTRIBUTING.md`**: stated "at least one maintainer review is required" but branch protection on `main` actually requires 0 approving reviews (matches the solo-maintainer pattern in all recent PR history). Reworded to match reality instead of tightening branch protection. **Explicitly left as-is** (documented, deliberate trade-offs, not bugs): `compile_profile()`'s per-collection visibility check gap (ADR-0003) and mypy's advisory-only CI status. ## Test plan - [x] `ruff check .` — backend and CLI, clean. - [x] `pytest` — CLI: 15 passed. Backend: 152 passed (3 test files — `test_seed_collections.py`, `test_provider_toggle.py`, `test_startup_warnings.py` — show pre-existing Postgres-connection contention when run back-to-back against this long-lived local dev container; each passes individually; unrelated to any change in this PR; CI runs in a clean environment). - [x] `npx tsc -b` — clean after the `@types/react` fix. - [x] `npm run lint` — clean (pre-existing 2 warnings, unrelated). - [x] `npm run build` — succeeds. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
zaph0d 2026-08-12 19:09:21 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
github-mirrors/myace#69
No description provided.