1 Version 0.7.1 - 2021-06-09
2 ==========================
7 * `make shapelib` builds, and reports a URL for, the actual
8 documentation for shape library layout and spec syntax, not to an
11 Installation and deployment changes
12 -----------------------------------
14 * Better documentation of how to install just the command line
15 game management client (eg for use via ssh).
17 * Update Rocket dependency in Cargo.lock to one which builds with
20 * Update usvg dependency in Cargo.toml to a version with revised
21 less-insane command line parsing, and adjust all calls to it.
23 * Updated other dependencies.
25 * Work around a cargo bug which breaks the docs build:
26 https://github.com/rust-lang/cargo/issues/9564
28 Installation and deployment changes
29 -----------------------------------
31 * Improvements to release checklist and release script. Notably,
32 add a checklist item for checking the build on recent Nightly.
35 Version 0.7.0 - 2021-06-08
36 ==========================
41 * Game spec files can now be processed with Tera for templating.
43 * ssh-based access for `otter` cli, including appropriately-
44 restricted access via authorized_keys in the server role account,
45 and a mechanism for self-service public key management.
47 * `otter` cli can now read a preferences file
48 (`~/.config/otter/prefs.toml` by default) to allow pre-configuring
49 commonly-required command line options like `--game` and `--ssh`.
50 See `otter --help` for documentation.
52 * Mao and Penultima slightly updated (and, those game specs now
53 use the new templating feature).
58 * UI: When multiple pieces are selected and are to be raised (whether
59 by explicit request, or because of drag distance), their relative
60 ordering is preserved. So dragging a group of pieces no longer
61 scrambles their z order.
63 * UI: When the SSE connection auto-reconnects, do not declare it an
64 error and suggest to the user that reloading might help. Instead,
65 simply hope that it is going to be OK (since it generally is). If
66 the SSE connection declares failure (state 2), report a scarier
69 * Docs: Fixes to some documentation errors (including a fix
70 contributed by Simon Tatham).
72 * CLI etc.: Improve a number of error messages; in particular,
73 replace several "debug prints" of error messages with proper
74 formatting, and print a better program kname.
76 * CLI: Much better handling of stdout write errors.
78 Installation and deployment changes
79 -----------------------------------
81 * The `otter` command line utility is now in its own Rust package
84 * Better logging by server of events on command connections.
86 Internal and development changes
87 --------------------------------
89 * make-release now polls crates.io's github view to work around
90 cargo/crates.io bug https://github.com/rust-lang/cargo/issues/9507
91 and has a release checklist in it.
93 * Some internal renamings for clarity, especially regarding
94 Authorisation proof tokens.
96 * Reworked the types involved in management command channels, to
97 use a different stacking of read/write adapters. In particular,
98 a new `childio` facility for handling conversations with a child
99 process (in support of using `ssh` as a command conn transport).
101 * `otter` cli no longer uses println!. Instead we have a special
102 wrapper for stdout which handles the errors and buffering for us.
104 * `otter` cli subcommand dispatch made nicer and the program's code
105 broken out into multiple files.
107 * Internal apitest case code restructured somewhat.
110 Version 0.6.0 - 2021-05-23
111 ==========================
116 * Support uploading bundles of game materials, so games can be played
117 that are not playable with Otter's provided piece libraries.
119 * New `vatikan.game.toml`, suitable for many variants of
122 * New `private.table.toml` and `same-scope.table.toml` for
125 Command line usage changes, etc.
126 --------------------------------
128 * otter(1) now takes the game name using a `--game` (`-g`) global
129 option rather than a per-subcommand positional argument.
131 * Library listing, piece identification, and so on, changed,
132 including changes to `otter library-add` and `otter library-list`.
133 Specifically, per-game libraries mean that `library-list` now
134 needs the `--game` option.
136 * otter(1) and otterlib(!) now honour `OTTER_CLI_LOG`
137 (in Rust env_logger format).
139 * otter(1) no longer acts on change_directory server config
140 setting (but still resolves paths in config relative to that dir).
142 * Much better reporting of errors, especially from otter(1).
143 Previously even straightforward errors would result in a controlled
144 `panic`; now a prettier message is printed.
146 * Default table size is now 300,200 (like `penultima` and `mao`; was
149 * otter(1) can be used to issue adhoc management commands supplied
150 on the command line in JSON or RON format.
155 * Fix a serious bug with acl handling which might allow players who
156 can access a game more access than intended.
158 * Occult ilks are properly sorted out during piece load and game
159 save/load. Previously a game with occulted pieces might not be
162 * Test suite might previously fail with EBADF due to off-by-one error
163 in fd cleanup routiine.
168 * Document uploadable bundle format.
170 * Document game and piece spec format.
172 * Document shape library catalogue format (previously this was done
173 with rustdoc annotations on Rust structs used with serde, which
174 produced incomplete and very hard to understand information).
176 * De-emphasize docs for for amending the builtin shape libraries;
177 suggest making bundles instead.
179 * Examples, of game specs, shape libs, buncdles.
181 Installation and deployment changes
182 -----------------------------------
184 * usvg is now built shipped by the otter build system.
186 * server-config.toml can specify the path to `usvg`, `libexec`,
192 * The otter(1) command line interface has changed and many common
193 operations need to be specified differently.
195 * The management API protocol has completely changed. Old otter(1)
196 clients will not work.
198 * Savefiles from older versions of Otter are not loadable.
200 Internal and development changes
201 --------------------------------
203 * Change CLI to server management wire protocol to binary-framed
204 MessagePack (was newline-framed JSON).
206 * Update dependencies.
208 * Build system and test suite improvements and fixes.
210 * Move game spec parsing from client to server.
212 * Better error messages, especially from otter(1)
214 * Tests have better error reporting and output capturing.
216 * Various substantial refactorings to tests.
218 * Test the supplied game specs.
220 * Test game save/load.
222 * Use the sphinx feature sphinx.ext.autosectionlabel for xrefs.
224 * Server management channel now has an idle timout. Should not be
225 relevant with the supplied otter(1) client.
227 * Much internal refactoring, new macros etc., to support the other
230 * Reset game (game spec parsing and implemnetation) is now
231 done in the server rather than the client.
233 * Improvements and bugfixes to `make-release` and `update-version`
234 scripts. Fix anomalous (but working) `Cargo.toml` version
237 Version 0.5.1 - 2021-04-19
238 ==========================
240 This was the first public release.
242 [comment]: # Local variables:
243 [comment]: # mode: text