111 lines
3.2 KiB
Markdown
111 lines
3.2 KiB
Markdown
---
|
|
name: jojo-development-flow
|
|
description: Use when working in this repository on development flow, remotes, jojo.build operations, Codeberg mirroring, branch tracking, commit signing, jojo Actions, npm trusted publishing, release validation, or publishing @peezy.tech/codex-flows.
|
|
---
|
|
|
|
# Jojo Development Flow
|
|
|
|
## Overview
|
|
|
|
Use `jojo.build` as the canonical development home for `peezy-tech/codex-flows`. Codeberg is a push mirror. GitHub is only for npm trusted publishing.
|
|
|
|
## Current Structure
|
|
|
|
- Canonical repo: `https://jojo.build/peezy-tech/codex-flows`
|
|
- Git remote `origin`: `git@jojo.build:peezy-tech/codex-flows.git`
|
|
- Git remote `codeberg`: `git@codeberg.org:peezy-tech/codex-flows.git`
|
|
- Git remote `github`: `https://github.com/peezy-tech/codex-flows.git`
|
|
- `main` tracks `origin/main`.
|
|
- `jojo.build` push-mirrors `main` to Codeberg.
|
|
- GitHub is pushed manually only when npm trusted publishing needs the release workflow.
|
|
|
|
## Accounts And Access
|
|
|
|
- Human/admin account: `peezy`
|
|
- Host development worker account: `matamune`
|
|
- Organization: `peezy-tech`
|
|
- Both users are in the `peezy-tech` Owners team.
|
|
- `matamune` is active but is not a site admin.
|
|
- `peezy` is the site admin account and has 2FA enabled.
|
|
|
|
## Core Rules
|
|
|
|
- Push normal development to `origin`.
|
|
- Do not treat Codeberg as canonical; use it only as a mirror and recovery remote.
|
|
- Do not treat GitHub as a development remote.
|
|
- Push to GitHub only when the release workflow must publish to npm.
|
|
- Do not add npm tokens to the repo or GitHub secrets. GitHub publishes through trusted publishing.
|
|
- Use package name `@peezy.tech/codex-flows`, not `@peezy-tech/codex-flows`.
|
|
- Before release work, verify `origin/main` and `codeberg/main` are aligned.
|
|
- Keep commits signed when possible, but signed commits are not currently required by branch protection.
|
|
|
|
## Setup Checks
|
|
|
|
When asked to set up or verify the repo, check:
|
|
|
|
```bash
|
|
git remote -v
|
|
git status --short --branch
|
|
ssh -T git@jojo.build
|
|
git ls-remote origin refs/heads/main
|
|
git ls-remote codeberg refs/heads/main
|
|
gpg --list-secret-keys --keyid-format=long
|
|
```
|
|
|
|
Expected local key files:
|
|
|
|
```text
|
|
~/.ssh/id_ed25519_codeberg.pub
|
|
~/.config/forgejo-keys/matamune-jojo-build-ssh.pub
|
|
~/.config/forgejo-keys/matamune-jojo-build-gpg.asc
|
|
```
|
|
|
|
## Jojo CI
|
|
|
|
`main` is protected on `jojo.build`.
|
|
|
|
- Owners can push and merge.
|
|
- Required status context: `ci / check (push)`
|
|
- The workflow lives at `.forgejo/workflows/ci.yml`.
|
|
- The runner is `jojo-build-runner-01`.
|
|
|
|
The CI workflow runs:
|
|
|
|
```bash
|
|
bun install --frozen-lockfile
|
|
bun run check:types
|
|
bun run test
|
|
bun run --filter @peezy.tech/codex-flows release:check
|
|
```
|
|
|
|
## Release Workflow
|
|
|
|
Normal development:
|
|
|
|
```bash
|
|
git pull
|
|
git push
|
|
```
|
|
|
|
Before release, run:
|
|
|
|
```bash
|
|
bun run --filter @peezy.tech/codex-flows release:check
|
|
bun run check:types
|
|
bun run test
|
|
git diff --check
|
|
```
|
|
|
|
Then:
|
|
|
|
1. Bump `packages/codex-client/package.json`.
|
|
2. Commit.
|
|
3. Push to jojo: `git push`.
|
|
4. Confirm Codeberg mirror has received the commit.
|
|
5. Push to GitHub: `git push github main`.
|
|
6. Run GitHub workflow `.github/workflows/publish-codex-flows.yml` with `confirm_package=@peezy.tech/codex-flows`.
|
|
7. Verify `npm dist-tag ls @peezy.tech/codex-flows`.
|
|
|
|
## References
|
|
|
|
- Read `references/development-flow.md` for exact setup and command details.
|