chiark / gitweb /
CHANGELOG.md: Finalise for 0.6.0
[otter.git] / CHANGELOG.md
1 Version 0.6.0 - 2021-05-23
2 ==========================
3
4 New features
5 ------------
6
7  * Support uploading bundles of game materials, so games can be played
8    that are not playable with Otter's provided piece libraries.
9
10  * New `vatikan.game.toml`, suitable for many variants of
11    Manipulation Rummy.
12
13  * New `private.table.toml` and `same-scope.table.toml` for
14    less-public games.
15
16 Command line usage changes, etc.
17 --------------------------------
18
19  * otter(1) now takes the game name using a `--game` (`-g`) global
20    option rather than a per-subcommand positional argument.
21
22  * Library listing, piece identification, and so on, changed,
23    including changes to `otter library-add` and `otter library-list`.
24    Specifically, per-game libraries mean that `library-list` now
25    needs the `--game` option.
26
27  * otter(1) and otterlib(!) now honour `OTTER_CLI_LOG`
28    (in Rust env_logger format).
29
30  * otter(1) no longer acts on change_directory server config
31    setting (but still resolves paths in config relative to that dir).
32
33  * Much better reporting of errors, especially from otter(1).
34    Previously even straightforward errors would result in a controlled
35    `panic`; now a prettier message is printed.
36
37  * Default table size is now 300,200 (like `penultima` and `mao`; was
38    400,200).
39
40   * otter(1) can be used to issue adhoc management commands supplied
41     on the command line in JSON or RON format.
42
43 Bugfixes
44 --------
45
46  * Fix a serious bug with acl handling which might allow players who
47    can access a game more access than intended.
48
49  * Occult ilks are properly sorted out during piece load and game
50    save/load.  Previously a game with occulted pieces might not be
51    reloadable.
52
53  * Test suite might previously fail with EBADF due to off-by-one error
54    in fd cleanup routiine.
55
56 Documentation
57 -------------
58
59  * Document uploadable bundle format.
60
61  * Document game and piece spec format.
62
63  * Document shape library catalogue format (previously this was done
64    with rustdoc annotations on Rust structs used with serde, which
65    produced incomplete and very hard to understand information).
66  
67  * De-emphasize docs for for amending the builtin shape libraries;
68    suggest making bundles instead.
69
70  * Examples, of game specs, shape libs, buncdles.
71
72 Installation and deployment changes
73 -----------------------------------
74
75  * usvg is now built shipped by the otter build system.
76
77  * server-config.toml can specify the path to `usvg`, `libexec`,
78    etc.
79
80 Compatibility notes
81 -------------------
82
83  * The otter(1) command line interface has changed and many common
84    operations need to be specified differently.
85
86  * The management API protocol has completely changed.  Old otter(1)
87    clients will not work.
88
89  * Savefiles from older versions of Otter are not loadable.
90
91 Internal and development changes
92 --------------------------------
93
94  * Change CLI to server management wire protocol to binary-framed
95    MessagePack (was newline-framed JSON).
96
97  * Update dependencies.
98
99  * Build system and test suite improvements and fixes.
100
101  * Move game spec parsing from client to server.
102
103  * Better error messages, especially from otter(1)
104
105  * Tests have better error reporting and output capturing.
106
107  * Various substantial refactorings to tests.
108
109  * Test the supplied game specs.
110
111  * Test game save/load.
112
113  * Use the sphinx feature sphinx.ext.autosectionlabel for xrefs.
114
115  * Server management channel now has an idle timout.  Should not be
116    relevant with the supplied otter(1) client.
117
118  * Much internal refactoring, new macros etc., to support the other
119    work.
120
121  * Reset game (game spec parsing and implemnetation) is now
122    done in the server rather than the client.
123  
124  * Improvements and bugfixes to `make-release` and `update-version`
125    scripts.  Fix anomalous (but working) `Cargo.toml` version
126    dependency syntax.
127
128 Version 0.5.1 - 2021-04-19
129 ==========================
130
131 This was the first public release.
132
133 [comment]: # Local variables:
134 [comment]: # mode: text
135 [comment]: # End: