Release 1.5.0: the authored layer ships - #64
Merged
Merged
Conversation
Rename the `[Unreleased]` changelog section to 1.5.0, bump the package version, and relock. No golden moved: the comparisons normalize the `engine_version` stamp, so the goldens keep the stamp of the engine that produced them. The bump is a minor. The public surface only grew across phases 10-16 — gates, triggers, quests, the interpreter, the journal, the lifecycle commands, `SessionMode.VICTORY`, adventure-bundled items — and nothing was removed or renamed from `src/`. The behavior changes under Changed and Fixed are defect corrections (a non-battle wipe that never ended the session, a referee spawn onto corpses, a rejection that mutated the door overlay), not API removals. This release also carries schema version 3, bumped by the room-trap fix in #44 and unreleased until now; its migration is lossless in both directions of the corpus. Claude-Session: https://claude.ai/code/session_01AV2LDZXDpgaM2Mmjk5Sfwv
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cuts 1.5.0, the release that carries the authored layer — #41's delivery-order item 1, phases 10–16 — so osr-web can build against a published version instead of a git SHA.
The diff is the three files the release runbook prescribes and nothing else: the
[Unreleased]changelog section renamed to## [1.5.0] - 2026-08-07with its link references, the package version, and the lock. No golden moved — the comparisons normalize theengine_versionstamp, so regenerating one for a version bump would be a defect by definition.Why minor, not major
The public surface only grew: gates and the condition union, triggers and the interpreter, quests and the lifecycle commands, the journal,
SessionMode.VICTORY, adventure-bundled items,Inventory.carried_item, the new events and view fields. Nothing was removed or renamed fromsrc/— the only deletion anywhere isexamples/tui_crawler/quest.py, andexamples/is outside theuv_buildsrc layout, so it was never in the wheel.The Changed and Fixed entries are defect corrections rather than API removals: a party wiped by anything but a lost battle never ended the session, a referee could spawn a patrol onto corpses in
game_over, a refused command wrote a door into the state overlay, a passed save-or-die save still killed. The one deliberate contract widening isCommandResultcarrying the events of commands a listener issued — additive in content, and it replaces having to readsession.event_logto find them.This release also ships schema version 3, bumped by the room-trap fix in #44 and unreleased until now. Phases 10–16 added no bump of their own; every field they introduced is additive with a default, so a pre-phase save or document loads unchanged.
Verification
ruff format --check,ruff check,pyright(0 errors),pytest(2240 passed, 73 skipped),mkdocs build --strict.uv build, thencheck_dist.py dist 1.5.0("dist holds a clean osrlib 1.5.0 wheel and sdist"), then the wheel installed into a fresh 3.14 venv andinstall_smoke.py 1.5.0— import, class catalog from shipped data, the quickstart round-tripping through a save, and the OGL text with its Section 15 notice, all ok.After merge
Tag the merge commit to publish:
git tag -a v1.5.0 -m "osrlib 1.5.0" && git push origin v1.5.0.release.ymlre-runs the gate, builds, audits, smoke-tests the wheel on both OSes, publishes via trusted publishing, and creates the GitHub Release from this version's changelog section.One standing question, not a blocker
The release runbook's versioned-docs trigger — "the first post-1.0 release whose published docs must describe behavior different from
main... adopts mike or equivalent in that release's own plan" — has now been passed over at 1.1.0 through 1.4.0, and this PR passes over it again to keep the release unblocked. Docs stay Pages-from-main. Worth settling deliberately rather than by default, especially now that 1.4.0 users are reading docs describing an engine two schema-visible feature waves ahead of what they installed.https://claude.ai/code/session_01AV2LDZXDpgaM2Mmjk5Sfwv