1 Version 0.7.0 - 2021-06-08
2 ==========================
7 * Game spec files can now be processed with Tera for templating.
9 * ssh-based access for `otter` cli, including appropriately-
10 restricted access via authorized_keys in the server role account,
11 and a mechanism for self-service public key management.
13 * `otter` cli can now read a preferences file
14 (`~/.config/otter/prefs.toml` by default) to allow pre-configuring
15 commonly-required command line options like `--game` and `--ssh`.
16 See `otter --help` for documentation.
18 * Mao and Penultima slightly updated (and, those game specs now
19 use the new templating feature).
24 * UI: When multiple pieces are selected and are to be raised (whether
25 by explicit request, or because of drag distance), their relative
26 ordering is preserved. So dragging a group of pieces no longer
27 scrambles their z order.
29 * UI: When the SSE connection auto-reconnects, do not declare it an
30 error and suggest to the user that reloading might help. Instead,
31 simply hope that it is going to be OK (since it generally is). If
32 the SSE connection declares failure (state 2), report a scarier
35 * Docs: Fixes to some documentation errors (including a fix
36 contributed by Simon Tatham).
38 * CLI etc.: Improve a number of error messages; in particular,
39 replace several "debug prints" of error messages with proper
40 formatting, and print a better program kname.
42 * CLI: Much better handling of stdout write errors.
44 Installation and deployment changes
45 -----------------------------------
47 * The `otter` command line utility is now in its own Rust package
50 * Better logging by server of events on command connections.
52 Internal and development changes
53 --------------------------------
55 * make-release now polls crates.io's github view to work around
56 cargo/crates.io bug https://github.com/rust-lang/cargo/issues/9507
57 and has a release checklist in it.
59 * Some internal renamings for clarity, especially regarding
60 Authorisation proof tokens.
62 * Reworked the types involved in management command channels, to
63 use a different stacking of read/write adapters. In particular,
64 a new `childio` facility for handling conversations with a child
65 process (in support of using `ssh` as a command conn transport).
67 * `otter` cli no longer uses println!. Instead we have a special
68 wrapper for stdout which handles the errors and buffering for us.
70 * `otter` cli subcommand dispatch made nicer and the program's code
71 broken out into multiple files.
73 * Internal apitest case code restructured somewhat.
76 Version 0.6.0 - 2021-05-23
77 ==========================
82 * Support uploading bundles of game materials, so games can be played
83 that are not playable with Otter's provided piece libraries.
85 * New `vatikan.game.toml`, suitable for many variants of
88 * New `private.table.toml` and `same-scope.table.toml` for
91 Command line usage changes, etc.
92 --------------------------------
94 * otter(1) now takes the game name using a `--game` (`-g`) global
95 option rather than a per-subcommand positional argument.
97 * Library listing, piece identification, and so on, changed,
98 including changes to `otter library-add` and `otter library-list`.
99 Specifically, per-game libraries mean that `library-list` now
100 needs the `--game` option.
102 * otter(1) and otterlib(!) now honour `OTTER_CLI_LOG`
103 (in Rust env_logger format).
105 * otter(1) no longer acts on change_directory server config
106 setting (but still resolves paths in config relative to that dir).
108 * Much better reporting of errors, especially from otter(1).
109 Previously even straightforward errors would result in a controlled
110 `panic`; now a prettier message is printed.
112 * Default table size is now 300,200 (like `penultima` and `mao`; was
115 * otter(1) can be used to issue adhoc management commands supplied
116 on the command line in JSON or RON format.
121 * Fix a serious bug with acl handling which might allow players who
122 can access a game more access than intended.
124 * Occult ilks are properly sorted out during piece load and game
125 save/load. Previously a game with occulted pieces might not be
128 * Test suite might previously fail with EBADF due to off-by-one error
129 in fd cleanup routiine.
134 * Document uploadable bundle format.
136 * Document game and piece spec format.
138 * Document shape library catalogue format (previously this was done
139 with rustdoc annotations on Rust structs used with serde, which
140 produced incomplete and very hard to understand information).
142 * De-emphasize docs for for amending the builtin shape libraries;
143 suggest making bundles instead.
145 * Examples, of game specs, shape libs, buncdles.
147 Installation and deployment changes
148 -----------------------------------
150 * usvg is now built shipped by the otter build system.
152 * server-config.toml can specify the path to `usvg`, `libexec`,
158 * The otter(1) command line interface has changed and many common
159 operations need to be specified differently.
161 * The management API protocol has completely changed. Old otter(1)
162 clients will not work.
164 * Savefiles from older versions of Otter are not loadable.
166 Internal and development changes
167 --------------------------------
169 * Change CLI to server management wire protocol to binary-framed
170 MessagePack (was newline-framed JSON).
172 * Update dependencies.
174 * Build system and test suite improvements and fixes.
176 * Move game spec parsing from client to server.
178 * Better error messages, especially from otter(1)
180 * Tests have better error reporting and output capturing.
182 * Various substantial refactorings to tests.
184 * Test the supplied game specs.
186 * Test game save/load.
188 * Use the sphinx feature sphinx.ext.autosectionlabel for xrefs.
190 * Server management channel now has an idle timout. Should not be
191 relevant with the supplied otter(1) client.
193 * Much internal refactoring, new macros etc., to support the other
196 * Reset game (game spec parsing and implemnetation) is now
197 done in the server rather than the client.
199 * Improvements and bugfixes to `make-release` and `update-version`
200 scripts. Fix anomalous (but working) `Cargo.toml` version
203 Version 0.5.1 - 2021-04-19
204 ==========================
206 This was the first public release.
208 [comment]: # Local variables:
209 [comment]: # mode: text