chore(release): v2.5.3 — date-based CHANGELOG headers + rename sunday_merge playbook to merge (drop weekly cadence)
This commit is contained in:
+8
-7
@@ -2,13 +2,14 @@
|
||||
|
||||
All notable changes to AIPass will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project uses [Calendar Versioning](https://calver.org/) in the format
|
||||
`YYYY.WNN` (year and ISO week number).
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
||||
Entries are grouped by merge under a dated section header (`YYYY-MM-DD`). Package
|
||||
releases follow [SemVer](https://semver.org/) and are tracked by the git tag and
|
||||
PyPI version — not the changelog header.
|
||||
|
||||
---
|
||||
|
||||
## [2026.W24] - 2026-06-08
|
||||
## [2026-06-11]
|
||||
|
||||
### Fixed
|
||||
|
||||
@@ -152,7 +153,7 @@ and this project uses [Calendar Versioning](https://calver.org/) in the format
|
||||
|
||||
---
|
||||
|
||||
## [2026.W23] - 2026-06-02
|
||||
## [2026-06-02]
|
||||
|
||||
### Fixed
|
||||
|
||||
@@ -493,7 +494,7 @@ and this project uses [Calendar Versioning](https://calver.org/) in the format
|
||||
|
||||
---
|
||||
|
||||
## [2026.W22] - 2026-05-30
|
||||
## [2026-05-30]
|
||||
|
||||
### Added
|
||||
|
||||
@@ -555,7 +556,7 @@ and this project uses [Calendar Versioning](https://calver.org/) in the format
|
||||
|
||||
---
|
||||
|
||||
## [2026.W21] - 2026-05-25
|
||||
## [2026-05-25]
|
||||
|
||||
First weekly release. AIPass now follows a Sunday release cadence: changes
|
||||
accumulate on `dev` throughout the week and merge to `main` as a single
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
||||
|
||||
[project]
|
||||
name = "aipass"
|
||||
version = "2.5.2"
|
||||
version = "2.5.3"
|
||||
description = "A local multi-agent framework where your AI agents keep their memory, work together, and never ask you to re-explain context"
|
||||
readme = "README.md"
|
||||
license = "MIT"
|
||||
|
||||
@@ -4,4 +4,4 @@ pip install aipass
|
||||
https://github.com/AIOSAI/AIPass
|
||||
"""
|
||||
|
||||
__version__ = "2.5.2"
|
||||
__version__ = "2.5.3"
|
||||
|
||||
@@ -102,7 +102,7 @@ drone, seedgo, prax, cli, ai_mail, api, flow, spawn, trigger, memory, aipass, ho
|
||||
- CWD = identity. Visit other branches, don't move in.
|
||||
- Git awareness: after completing work, `drone @git status`. Suggest commit if coherent. Don't force, don't let pile up.
|
||||
- Git workflow: commit → dev-pr → wait for CI. Every commit must be pushed. Local-only commits are invisible. After fixing CI, push immediately (dev-pr reports "PR already open" = pushed).
|
||||
- CHANGELOG: update `CHANGELOG.md` when committing/pushing. Add entries to the current week's `[YYYY.WNN]` section as work lands — don't batch at end of week. Sunday = merge to main + tag.
|
||||
- CHANGELOG: update `CHANGELOG.md` when committing/pushing. Add entries under the current dated section (`[YYYY-MM-DD]`, one per merge) as work lands — don't batch. Merge to main + tag on demand (no fixed weekly cadence).
|
||||
- Never `docker cp` into containers. Merge PR → git pull → test.
|
||||
- Sub-agents build, you PR.
|
||||
|
||||
|
||||
@@ -153,7 +153,7 @@ def print_help():
|
||||
console.print("[yellow]TEMPLATE SELECTION:[/yellow]")
|
||||
console.print(" The 4th arg selects a non-default template within a type.")
|
||||
console.print(" Any .md file stem in the type's templates/ dir works.")
|
||||
console.print(' [dim]drone @flow create . "Subject" sunday_merge pplan[/dim]')
|
||||
console.print(' [dim]drone @flow create . "Subject" merge pplan[/dim]')
|
||||
console.print(' [dim]drone @flow create . "Subject" master[/dim] # FPLAN master')
|
||||
console.print()
|
||||
|
||||
|
||||
@@ -88,12 +88,12 @@ def print_help():
|
||||
console.print()
|
||||
console.print("[bold]HOW TO ADD A NEW PLAN TYPE / SOP TEMPLATE:[/bold]")
|
||||
console.print(" 1. Create a directory under templates/ (e.g. templates/playbook_plans/)")
|
||||
console.print(" 2. Add one or more .md template files (e.g. default.md, sunday_merge.md)")
|
||||
console.print(" 2. Add one or more .md template files (e.g. default.md, merge.md)")
|
||||
console.print(" 3. Register with your chosen prefix:")
|
||||
console.print(" drone @flow register playbook_plans PBPLAN")
|
||||
console.print(" 4. Create plans:")
|
||||
console.print(' drone @flow create . "Subject" pbplan')
|
||||
console.print(' drone @flow create . "Subject" sunday_merge pbplan')
|
||||
console.print(' drone @flow create . "Subject" merge pplan')
|
||||
console.print()
|
||||
console.print(" [dim]Auto-registration runs on any flow command if you skip step 3,[/dim]")
|
||||
console.print(" [dim]but derives the prefix automatically. Use register to choose your own.[/dim]")
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
## What Are Playbooks?
|
||||
|
||||
Playbooks (PBPLANs) are **throwaway SOP runs** — a checklist stamped from a reusable
|
||||
template for a recurring operation (Sunday merge, release cut, branch onboarding,
|
||||
template for a recurring operation (merge, release cut, branch onboarding,
|
||||
incident response). You tick steps off as you go, log what happened, then close.
|
||||
|
||||
- **The template = the SOP.** Stable. Refine it over time as the process improves.
|
||||
|
||||
+13
-13
@@ -1,17 +1,17 @@
|
||||
# {plan_number} - {subject} (SUNDAY MERGE)
|
||||
# {plan_number} - {subject} (MERGE)
|
||||
|
||||
**Created**: {today}
|
||||
**Branch**: {location}
|
||||
**Status**: Active
|
||||
**Type**: Playbook — Sunday Merge SOP
|
||||
**Type**: Playbook — Merge SOP
|
||||
|
||||
---
|
||||
|
||||
## Purpose
|
||||
|
||||
The weekly `dev → main` merge + release tag. Run by **devpulse** (only branch with git
|
||||
write). Tick each step as you go; fill the **Run Summary** with PR numbers and tags for
|
||||
the vectorized trail. Close when done.
|
||||
The `dev → main` merge + release tag — run on-demand, not on a fixed weekly cadence.
|
||||
Run by **devpulse** (only branch with git write). Tick each step as you go; fill the
|
||||
**Run Summary** with PR numbers and tags for the vectorized trail. Close when done.
|
||||
|
||||
> All git writes go through `drone @git` — **run drone from a branch dir** (it needs
|
||||
> `.trinity/passport.json` in the cwd; running from the repo root fails with "No
|
||||
@@ -65,21 +65,21 @@ commit** on main. Your `dev` branch keeps its **original** commits. Git compares
|
||||
## 1. Pre-flight
|
||||
|
||||
- [ ] On `dev`, working tree understood: `drone @git status --all`
|
||||
- [ ] Confirm what's shipping this week — scan uncommitted changes + already-pushed dev commits ahead of main: `git rev-list --count main..dev` (read git, raw ok)
|
||||
- [ ] Confirm what's shipping — scan uncommitted changes + already-pushed dev commits ahead of main: `git rev-list --count main..dev` (read git, raw ok)
|
||||
- [ ] No surprise files (stray `/tmp` artifacts, test pollution, `.recovery`/`.archive` churn). Clean = archive, never delete.
|
||||
- [ ] **Version state check** (informs the bump decision): read the **two** release-tied versions — `grep '^version' pyproject.toml` and `grep __version__ src/aipass/__init__.py` (they should match; if drifted, note it) — and what PyPI already has: `curl -s https://pypi.org/pypi/aipass/json | python3 -c "import sys,json;print(json.load(sys.stdin)['info']['version'])"`. PyPI rejects a duplicate, so the target must be > published.
|
||||
- [ ] Decide: **release tag this week?** (tag = PyPI publish + GitHub Release). If yes, note target version. (Significance call is the user's — the PATCH-default rule below is guidance, and the actual release history is a useful tie-breaker.)
|
||||
- [ ] Decide: **release tag this merge?** (tag = PyPI publish + GitHub Release). If yes, note target version. (Significance call is the user's — the PATCH-default rule below is guidance, and the actual release history is a useful tie-breaker.)
|
||||
|
||||
## 2. Verify, commit, CHANGELOG
|
||||
|
||||
- [ ] **Run the CI audit gate LOCALLY before pushing** (local == CI, S199 parity — catches red before the PR): `cd <repo-root> && .venv/bin/python .github/scripts/seedgo_audit.py` → expect all 13 branches `>=100%`, exit 0. Uses a relative `src/aipass` path, so run from the repo **root**, not a branch dir.
|
||||
- [ ] Update `CHANGELOG.md` — add entries under the current week's `[YYYY.WNN]` section (don't batch; mostly done as work landed). Sort into Added / Changed / Fixed.
|
||||
- [ ] Update `CHANGELOG.md` — add entries under a dated section header `## [YYYY-MM-DD]` (the merge date), one section per merge. Sort into Added / Changed / Fixed.
|
||||
- [ ] Commit: `drone @git commit "msg" --all` (from a branch dir, e.g. devpulse). New/untracked files (e.g. new templates) — confirm they got staged: `git ls-files <path>` after; `--all` may not pick up untracked.
|
||||
- [ ] Every commit pushed — local-only commits are invisible
|
||||
|
||||
## 3. Open / update the PR
|
||||
|
||||
- [ ] `drone @git dev-pr "Week summary: what's shipping"`
|
||||
- [ ] `drone @git dev-pr "Merge summary: what's shipping"`
|
||||
- [ ] "PR already open" in output = push succeeded onto the existing PR (expected on re-runs)
|
||||
- [ ] Record the PR number → Run Summary
|
||||
|
||||
@@ -110,12 +110,12 @@ The PR gate (verified against `.github/workflows/`):
|
||||
|
||||
## 7. Release tag (only if cutting a release)
|
||||
|
||||
**Versioning rule — bump by SIGNIFICANCE, not cadence** (keeps the version from inflating weekly):
|
||||
- **PATCH** (`x.y.Z+1`) = fix / internal / standards / UX only → the default, most weeks
|
||||
**Versioning rule — bump by SIGNIFICANCE, not cadence:**
|
||||
- **PATCH** (`x.y.Z+1`) = fix / internal / standards / UX only → the default for most merges
|
||||
- **MINOR** (`x.Y+1.0`) = a new backward-compatible user-facing feature shipped
|
||||
- **MAJOR** (`X+1.0.0`) = breaking public-API change
|
||||
|
||||
(aipass is a 2.x library others pin → keep SemVer; the CHANGELOG keeps its `YYYY.WNN` header as a date index.)
|
||||
(aipass is a 2.x library others pin → keep SemVer; the CHANGELOG uses `YYYY-MM-DD` dated section headers.)
|
||||
|
||||
How the release fires (verified `publish.yml`): a `v*` **git tag push** runs build → PyPI publish → GitHub Release. Key facts:
|
||||
- PyPI version = `pyproject.toml [project] version` at the tagged commit — **NOT** the tag string (the tag only *triggers* the build).
|
||||
@@ -159,7 +159,7 @@ Steps:
|
||||
|
||||
## Listen (TTS-friendly summary)
|
||||
|
||||
Write a plain English summary of this Sunday merge here when done. No markdown, no symbols,
|
||||
Write a plain English summary of this merge here when done. No markdown, no symbols,
|
||||
no tables, no code blocks, no asterisks, no bullet points. Just natural sentences for text to speech.
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user