chiark / gitweb /
CHANGELOG: Document changes in 0.7.1
[otter.git] / CHANGELOG.md
1 Version 0.7.1 - 2021-06-09
2 ==========================
3
4 Bugfixes
5 --------
6
7  * `make shapelib` builds, and reports a URL for, the actual
8    documentation for shape library layout and spec syntax, not to an
9    obsolete location.
10
11 Installation and deployment changes
12 -----------------------------------
13
14  * Better documentation of how to install just the command line
15    game management client (eg for use via ssh).
16
17  * Update Rocket dependency in Cargo.lock to one which builds with
18    recent Nightly Rust.
19
20  * Update usvg dependency in Cargo.toml to a version with revised
21    less-insane command line parsing, and adjust all calls to it.
22
23  * Updated other dependencies.
24
25  * Work around a cargo bug which breaks the docs build:
26     https://github.com/rust-lang/cargo/issues/9564
27
28 Installation and deployment changes
29 -----------------------------------
30
31  * Improvements to release checklist and release script.  Notably,
32    add a checklist item for checking the build on recent Nightly.
33
34
35 Version 0.7.0 - 2021-06-08
36 ==========================
37
38 New features
39 ------------
40
41  * Game spec files can now be processed with Tera for templating.
42
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.
46
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.
51
52  * Mao and Penultima slightly updated (and, those game specs now
53    use the new templating feature).
54
55 Bugfixes
56 --------
57
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.
62
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
67    message.
68
69  * Docs: Fixes to some documentation errors (including a fix
70    contributed by Simon Tatham).
71
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.
75
76  * CLI: Much better handling of stdout write errors.
77
78 Installation and deployment changes
79 -----------------------------------
80
81  * The `otter` command line utility is now in its own Rust package
82    `otter-cli`.
83
84  * Better logging by server of events on command connections.
85
86 Internal and development changes
87 --------------------------------
88
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.
92
93  * Some internal renamings for clarity, especially regarding
94    Authorisation proof tokens.
95
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).
100
101  * `otter` cli no longer uses println!.  Instead we have a special
102    wrapper for stdout which handles the errors and buffering for us.
103
104  * `otter` cli subcommand dispatch made nicer and the program's code
105    broken out into multiple files.
106
107  * Internal apitest case code restructured somewhat.
108
109
110 Version 0.6.0 - 2021-05-23
111 ==========================
112
113 New features
114 ------------
115
116  * Support uploading bundles of game materials, so games can be played
117    that are not playable with Otter's provided piece libraries.
118
119  * New `vatikan.game.toml`, suitable for many variants of
120    Manipulation Rummy.
121
122  * New `private.table.toml` and `same-scope.table.toml` for
123    less-public games.
124
125 Command line usage changes, etc.
126 --------------------------------
127
128  * otter(1) now takes the game name using a `--game` (`-g`) global
129    option rather than a per-subcommand positional argument.
130
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.
135
136  * otter(1) and otterlib(!) now honour `OTTER_CLI_LOG`
137    (in Rust env_logger format).
138
139  * otter(1) no longer acts on change_directory server config
140    setting (but still resolves paths in config relative to that dir).
141
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.
145
146  * Default table size is now 300,200 (like `penultima` and `mao`; was
147    400,200).
148
149   * otter(1) can be used to issue adhoc management commands supplied
150     on the command line in JSON or RON format.
151
152 Bugfixes
153 --------
154
155  * Fix a serious bug with acl handling which might allow players who
156    can access a game more access than intended.
157
158  * Occult ilks are properly sorted out during piece load and game
159    save/load.  Previously a game with occulted pieces might not be
160    reloadable.
161
162  * Test suite might previously fail with EBADF due to off-by-one error
163    in fd cleanup routiine.
164
165 Documentation
166 -------------
167
168  * Document uploadable bundle format.
169
170  * Document game and piece spec format.
171
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).
175  
176  * De-emphasize docs for for amending the builtin shape libraries;
177    suggest making bundles instead.
178
179  * Examples, of game specs, shape libs, buncdles.
180
181 Installation and deployment changes
182 -----------------------------------
183
184  * usvg is now built shipped by the otter build system.
185
186  * server-config.toml can specify the path to `usvg`, `libexec`,
187    etc.
188
189 Compatibility notes
190 -------------------
191
192  * The otter(1) command line interface has changed and many common
193    operations need to be specified differently.
194
195  * The management API protocol has completely changed.  Old otter(1)
196    clients will not work.
197
198  * Savefiles from older versions of Otter are not loadable.
199
200 Internal and development changes
201 --------------------------------
202
203  * Change CLI to server management wire protocol to binary-framed
204    MessagePack (was newline-framed JSON).
205
206  * Update dependencies.
207
208  * Build system and test suite improvements and fixes.
209
210  * Move game spec parsing from client to server.
211
212  * Better error messages, especially from otter(1)
213
214  * Tests have better error reporting and output capturing.
215
216  * Various substantial refactorings to tests.
217
218  * Test the supplied game specs.
219
220  * Test game save/load.
221
222  * Use the sphinx feature sphinx.ext.autosectionlabel for xrefs.
223
224  * Server management channel now has an idle timout.  Should not be
225    relevant with the supplied otter(1) client.
226
227  * Much internal refactoring, new macros etc., to support the other
228    work.
229
230  * Reset game (game spec parsing and implemnetation) is now
231    done in the server rather than the client.
232  
233  * Improvements and bugfixes to `make-release` and `update-version`
234    scripts.  Fix anomalous (but working) `Cargo.toml` version
235    dependency syntax.
236
237 Version 0.5.1 - 2021-04-19
238 ==========================
239
240 This was the first public release.
241
242 [comment]: # Local variables:
243 [comment]: # mode: text
244 [comment]: # End: