Skip to content

Write a 0.12 app record in the 0.13 form when Yard starts - #76

Merged
Bobowski merged 1 commit into
mainfrom
rewrite-012-records
Nov 6, 2026
Merged

Bobowski merged 1 commit into
mainfrom
rewrite-012-records

Conversation

@Bobowski

@Bobowski Bobowski commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator

Intent

Let 0.14 remove the 0.12 compatibility without a loss. Source: the user asked to remove the compatibility in 0.14.

Found

0.13.0 reads a 0.12 app record with an image or a URL in runs as the new image or compose_url field. But it converts the record in memory only. The file keeps runs postgres:17 until an app set. If 0.14 drops the read, that app has no source.

The label compatibility (sha, previous) needs no such step: each deploy writes the new labels.

Changed

  • Store.open writes each record whose file differs from its 0.13 form. A 0.13 record stays as it is. Yard opens the store once, at boot.
  • _format holds the record format, and _write uses it.
  • A test for a 0.12 image record, a 0.12 compose URL record, and a 0.13 repo record.

Proof

just check
524 passed

Next

Release 0.13.1. Then the 0.14 pull request removes the read and says to upgrade a 0.12 host through 0.13.1.

🤖 Generated with Claude Code

@Bobowski
Bobowski merged commit f822825 into main Nov 6, 2026
1 check passed
@Bobowski
Bobowski deleted the rewrite-012-records branch November 6, 2026 11:06
@Bobowski Bobowski mentioned this pull request Nov 6, 2026
Bobowski added a commit that referenced this pull request Nov 6, 2026
## Intent

Release #76 as 0.13.1, so 0.14 can remove the 0.12 compatibility.
Source: the user.

## Changed

- `pyproject.toml` and `uv.lock` say 0.13.1. The release has one fix and
no breaking change, so the patch number goes up.
- The changelog section `Unreleased` is now `0.13.1`.

## Not done

The tag. The release workflow publishes to PyPI on a `v*` tag. The tag
goes on `main` after this merge.

## Proof

```
just check
524 passed
```

🤖 Generated with [Claude Code](https://claude.com/claude-code)
Bobowski added a commit that referenced this pull request Nov 6, 2026
## Intent

Link Yard to the rewritten docs at stario.dev/yard. Source: the user, as
a follow-up to Bobowski/stario-site#75 and #76.

## Found

- The doctor's `healthcheck <app>` warning linked
`stario.dev/yard/compose#healthchecks`. Healthchecks now have their own
chapter, `/yard/healthchecks`. The old anchor still works, but it holds
only a short section and a link.
- The warning said "a broken build goes live". A failed build never
starts a container. What goes live without a healthcheck is a broken
app: one that runs but does not answer.
- The README's "Docs" list named the old chapters, such as "Your first
app" (now a redirect) and "How it works" as one internals page. It did
not list the new chapters.

## Changed

- `doctor.py`: the warning is now "none; a broken app stays live. Add
HEALTHCHECK to the Containerfile: stario.dev/yard/healthchecks".
`test_doctor.py` follows.
- `README.md`: the Docs list follows the four parts of the book: Start,
Use, How it works, and Reference.
- The detect refusal still links `/yard/what-runs#when-yard-refuses`,
which the new docs keep.
- No CHANGELOG line. The release pull request writes the changelog.

## Not done

Nothing.

## Proof

```
$ just check
523 passed in 12.02s
```

Each `stario.dev/yard` link in the README answers 200 on production. The
loop printed no line other than 200.

## Questions

None.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant