From: Ian Jackson Date: Sun, 23 May 2021 16:51:50 +0000 (+0100) Subject: CHANGELOG: Updates since 0.5.1 X-Git-Tag: otter-0.6.0~3 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=1b24a84594e3f4cc21cd9df281316964f6e05580;p=otter.git CHANGELOG: Updates since 0.5.1 Signed-off-by: Ian Jackson --- diff --git a/CHANGELOG.md b/CHANGELOG.md index a56dadba..7bb96f69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,23 +1,123 @@ Version UNRELEASED ================== - * New "vatikan.game.toml", suitable for many variants of +New features: + + * Support uploading bundles of game materials, so games can be played + that are not playable with Otter's provided piece libraries. + + * New `vatikan.game.toml`, suitable for many variants of Manipulation Rummy. - * New "private.table.toml" and "same-scope.table.toml" for + + * New `private.table.toml` and `same-scope.table.toml` for less-public games. + +Command line usage changes, etc.: + + * otter(1) now takes the game name using a --game global option + rather than a per-subcommand positional argument. + + * Library listing, piece identification, and so on, changed, + including changes to `otter library-add` and `otter library-list`. + * otter(1) and otterlib(!) now honour OTTER_CLI_LOG (in Rust env_logger format). + * otter(1) no longer acts on change_directory server config setting (but still resolves paths in config relative to that dir). + + * Per-game libraries; library-list now takes a game name. + + * Much better reporting of errors, especially from otter(1). + Previously even straightforward errors would result in a controlled + `panic`; now a prettier message is printed. + + * Default table size is now 300,200 (like `penultima` and `mao`; was + 400,200). + + * otter(1) can be used to issue adhoc management commands supplied + on the command line in JSON or RON format. + +Bugfixes: + + * Fix a serious bug with acl handling which might allow players who + can access a game more access than intended. + + * Occult ilks are properly sorted out during piece load and game + save/load. Previously a game with occulted pieces might not be + reloadable. + + * Test suite might previously fail with EBADF due to off-by-one error + in fd cleanup routiine. + +Documentation: + + * Document uploadable bundle format. + + * Document game and piece spec format. + + * Document shape library catalogue format (previously this was + done with rustdoc annotations on Rust structs used with serde, + which produced very hard to understand documentation. + + * De-emphasize docs for for amending the builtin shape libraries; + suggest making a bundles instead. + + * Examples, of game specs, shape libs, buncdles. + +Installation and deployment changes: + + * usvg is now built shipped by the otter build system. + + * server-config.toml can specify the path to `usvg`, `libexec`, + etc. + +Internal and development changes: + * Change CLI to server management wire protocol to binary-framed MessagePack (was newline-framed JSON). + + * Update dependencies. + * Build system and test suite improvements and fixes. - * Per-game libraries; library-list now takes a game name. - * Move game spec parsing from client to server - * Server-side bundles + * Move game spec parsing from client to server. + * Better error messages, especially from otter(1) + * Tests have better error reporting and output capturing. + + * Various substantial refactorings to tests. + + * Test the supplied game specs. + + * Test game save/load. + + * Use the sphinx feature sphinx.ext.autosectionlabel for xrefs. + + * Server management channel now has an idle timout. Should not be + relevant with the supplied otter(1) client. + + * Much internal refactoring, new macros etc., to support the other + work. + + * Reset game (game spec parsing and implemnetation) is now + done in the server rather than the client. + + * Improvements and bugfixes to make-release and update-version + scripts. Fix anomalous (but working) `Cargo.toml` version + dependency syntax. + +Compatibility notes: + + * The otter(1) command line interface has changed and many common + operations need to be specified differently. + + * The management API protocol has completely changed. Old otter(1) + clients will not work. + + * Savefiles from older versions of Otter are not loadable. + Version 0.5.1 =============