chiark / gitweb /
91ab4e1f26f3546b61e43dec5917406d44299719
[disorder] / CHANGES
1 * Changes up to version 3.1
2
3 ** Server
4
5 The 'gap' directive will no longer work.  It could be restored if there
6 is real demand.
7
8 *** Random Track Choice
9
10 This has been completely rewritten to support new features:
11    - tracks in the recently-played list or in the queue are no longer
12      eligible for random choice
13    - there is a new 'weight' track preference allowing for non-uniform
14      track selection.  See disorder(1) for details.
15    - there is a new configuration item replay_min defining the minimum
16      time before a played track can be picked at random.  The default is
17      8 hours (which matches the earlier behaviour).
18
19 ** Disobedience
20
21 There is now a new user management window.  From here you can add and
22 remove users or modify their settings.
23
24 * Changes up to version 3.0.2
25
26 Builds --without-server should work again.
27
28 The web interface is a bit more liberal in the cookie value syntax it
29 will accept.
30
31 Clients fail more gracefully if no password is available.
32
33 * Changes up to version 3.0.1
34
35 Debian upgrades from 2.0.x should now work better.
36
37 * Changes up to version 3.0
38
39 Important!  See README.upgrades when upgrading.
40
41 ** Platforms And Installation
42
43 Mac OS X and FreeBSD are somewhat supported.  There is now a bash script
44 in scripts/setup which will automate the setup after 'make install'.
45
46 ** Server
47
48 Users are now stored in the database rather than a configuration file.
49
50 The server now has a built-in list of stopwords and players, so only
51 additions to these need be mentioned in the configuration file.
52
53 The default inter-track gap is now 0s.
54
55 How sound is played is now controlled via the new 'api' configuration
56 command.  This also controls how the volume is set, which now works with
57 ALSA as well as OSS.
58
59 A bug in the MP3 decoder was fixed (also in 2.0.4).
60
61 ** Web Interface
62
63 The web interface now uses cookies to remember user identity, and allows
64 online registration of new users.  Also it is no longer necessary to
65 manually specify the URL of the web interface (but you can override it
66 if you don't like the value it figures out).
67
68 It is possible to allow users to register via the web interface.
69
70 The web interface's browser support has been improved.  It has been
71 tested with Firefox 2, Safari 3, Konqueror 3, Internet Explorer 7 and
72 Opera 9.
73
74 ** Disobedience
75
76 A bug which would cause a crash if you attempt to rearrange the queue
77 while no track was playing has been fixed.  There is a new 'deselect all
78 tracks' option, mirroring 'select all tracks.
79
80 * Changes up to version 2.0
81
82 ** General
83
84 Tracks can now have tags associated with them.  See tags in disorder(1)
85 or the preferences documentation for the web interface or Disobedience.
86
87 The search facility knows how to limit results by tag (see search
88 documentation for any interface) as well as by word search.  It is
89 possible to limit random play by tag (see required-tags and
90 prohibited-tags in disorder_config(5)).
91
92 Unicode support is improved.  Case-folding and word breaking now follows
93 the rules given in the Unicode standard (with a bit of tailoring in the
94 latter case).
95
96 ** Disobedience
97
98 There is a new client, 'Disobedience', that depends on the GTK+ library.
99 Feedback on the interface would be very welcome.
100
101 ** Web Interface
102
103 The "New" screen display tracks recently added to the database.  From
104 here they can be played or their preferences changed.
105
106 Long track names are truncated so they fit better on the screen.  Hover
107 for the full name.
108
109 ** Network Play
110
111 DisOrder can broadcast audio over a network, allowing it to be played on
112 multiple client machines.  See README.streams for details.
113
114 ** Server
115
116 Slow file lookups are cached in the server.  This should help
117 installations with large collections and/or slow platforms.
118
119 The 'enabled' and 'random_enabled' configuration options are now gone.
120 Instead the state survives from one run of the server to the next.
121 'disable now' is gone as well - if you want to emulate it disable
122 playing and then scratch the current track.
123
124 The 'pick' plugin has been abolished.  All the logic formerly done there
125 is now built into the server, where it can be done much more
126 efficiently.
127
128 'tracklength' plugins must be explicitly specified.
129
130 A bug where removing a collection (from the configuration) could cause a
131 crash when random play was enabled has been fixed.
132
133 A new configuration option 'queue_pad' allows the number of random
134 tracks kept on the queue to be controlled.
135
136 There is a new utility disorder-decode which can decode OGG, MP3, WAV
137 and FLAC.  The example config file uses it.
138
139 Database statistics are computed in a subprocess so that the main server
140 (and all clients) are not blocked for the duration.
141
142 ** disorderfm
143
144 There is a new command line tool called 'disorderfm' which is designed
145 for filename translation on (for instance) digital audio repositories.
146 It is not yet feature-complete.  See its man page for additional
147 details.
148
149 ** Build And Configuration
150
151 You can control which components are built with new --with options.  See
152 README.
153
154 options.transform and the 'transform' web option have gone, replaced
155 with a 'transform' configuration command.  Both this and 'namepart' are
156 now optional.
157
158 ** Thanks
159
160 Ross Younger, Colin Watson, Michael Stevens and Mark Wooding all
161 contributed in some way to this release.
162
163 * Changes up to version 1.5.1
164
165 ** Web Interface
166
167 Correct regexp for non-alpha tracks.
168
169 * Changes up to version 1.5
170
171 ** Web Interface
172
173 Regexp-based filtering of tracks (for instance as used by the initial
174 'Choose' page) now does the regexp matching in the server, limiting the
175 amount of data transferred to the web interface only to be discarded.
176
177 ** Client
178
179 Regexp-base filtering of tracks is now available to the command line
180 client.
181
182 ** Server
183
184 New server_nice, speaker_nice and rescan_nice configuration options
185 allow independent control of process priorities.
186
187 Scratches are now attributed to the user who requested them.
188
189 Bugs fixed:
190   A file descriptor was leaked for each track played.
191   The amount of a track played so far was not reported.
192   The speaker process could crash on underrun.
193   The server would crash if you paused a non-pause capable track.
194   Regexp matching in the file and directory list commands was not
195   reliable.
196   Handling of variable-argument commands in the client was broken.
197
198 * Changes up to version 1.4
199
200 ** General
201
202 Raw format players are now supported.  See README.upgrades and
203 README.raw for details.  This allows pausing and eliminating the
204 inter-track gap.
205
206 Pausing is also supported with suitably modified standalone player
207 plugins, though none of the supplied ones are capable of this.
208
209 When random play is enabled the randomly picked track now appears in the
210 queue, and can be moved around the queue, removed from it, etc.
211
212 ** Web Interface
213
214 Switches (random play, pause, ...) are now presented as a
215 fixed-appearance switch with an adjacent state indicator.
216
217 The 'Manage' screen has new buttons to move tracks to the head or tail
218 of the queue.
219
220 You can now edit the preferences for all the tracks in an album in a
221 single screen, rather than having to visit each separately.  For the
222 time being the raw preferences editing has gone; it can be reintroduced
223 on some form if there is demand.  (You can still edit raw preferences
224 from the command line.)
225
226 Labels are now documented in options.labels rather than
227 disorder_config(5).
228
229 ** Server
230
231 If you tried to start up on any empty database with random play enabled
232 the server would exit with an error.
233
234 The server no longer risks failing if you strace its player
235 subprocesses.
236
237 It was possible for the server to hang when a 'reconfigure' command was
238 issued.  This should no longer be the case.
239
240 The default signal to forcibly terminate players is now SIGKILL.
241
242 ** Plugins
243
244 Plugins must now declare a type word.  This allows them to document
245 whether they are a standalone player or a raw-format player, and whether
246 they support pausing.  They can also arrange to get setup and cleanup
247 calls in the main server.  See disorder(3) for more details.
248
249 * Changes up to version 1.3
250
251 ** Dependencies
252
253 Berkeley DB 4.2 is no longer supported.  Use 4.3.
254
255 ** Client
256
257 There is a new 'authorize' command to simplify the addition of local
258 users.  Please report successes as well as failures.
259
260 There is a new 'resolve' command to return the real track name behind an
261 alias.
262
263 The 'rescan' command no longer takes an argument.
264
265 ** Server
266
267 The track database code has been largely rewritten to improve
268 maintainability.
269
270 There is a new 'lock' directive.  By default the server uses a lockfile
271 to prevent multiple copies of itself running simultaneously; this can be
272 inhibited e.g. if you are using a filesystem that does not support
273 locking and are confident you can prevent concurrent running yourself.
274
275 Aliases for track names, constructed from trackname_display_
276 preferences, now appear in the virtual filesystem.  
277
278 The server now executes a subprocess for the rescan operation.  It also
279 runs a separate deadlock manager.
280
281 Standard output and standard error from subprocesses are now logged.
282 This is handy if you need to figure out why a player failed unexpectedly
283 but might lead to huge log files if you have needlessly verbose players.
284
285 ** Web Interface
286
287 Enable/disable buttons are now colored to reflect current state.
288
289 Entering numeric volume values (rather than clicking on the arrows) now
290 works.
291
292 Connection errors are reported more gracefully.
293
294 ** Plugins
295
296 Scanner plugins are now always invoked in a subprocess.
297
298 disorder_track_count() and disorder_track_getn() are no longer
299 available.  Instead use disorder_track_random().
300
301 Plugins are now opened with RTLD_NOW, so link errors are detected
302 immediately.
303
304 ** Tools
305
306 disorder-dump now insists on the input/output file being a named regular
307 file, rather than using stdin or stdout.
308
309 ** Other
310
311 Some missing files have been added, and some notes added regarding
312 getting text encoding right.
313
314 * Changes up to version 1.2
315
316 See README.upgrades when upgrading to this version.
317
318 ** Bugs Fixed
319
320 Avoid accumulating overlarge recently played list.
321
322 When the server was stopped, the currently playing track would not be
323 added to the recently played list.  This has been fixed.
324
325 Reloading the 'volume' page no longer repeats the last volume-changing
326 action.
327
328 The search facility now works properly for multiple hits within a single
329 artist or album.
330
331 ** Server
332
333 New namepart directive replaces web interface's trackname-part.  There
334 are associated changes to the protocol and clients.
335
336 The number of database queries per candidate match required when
337 searching has been reduced.
338
339 The operator can control the signal used to scratch playing tracks.  The
340 default has been changed to SIGINT from SIGKILL.
341
342 The 'log' command now provides a formalised event log, rather than raw
343 access to the server's ordinary log output.
344
345 ** Web Interface Changes
346
347 *** Choosing Tracks
348
349 When picking a track the client now stays on the same screen rather than
350 redirecting back to the 'Playing' screen.  So that the user gets
351 feedback from their action, playing and queued tracks are now marked as
352 such in the track picking screen.
353
354 It is possible to revert to the old behaviour by removing the back=
355 argument from the choose.html and search.html templates (and optionally
356 the trackstate lines).
357
358 *** Search
359
360 Non-ASCII characters are now properly supported in search terms.
361
362 *** Syntax
363
364 The template syntax has been changed slightly to ignore whitespace in
365 certain places.
366
367 *** Miscellaneous
368
369 Some formerly textual buttons are now replaced by images (with ALT text
370 reflecting the old value).  The stylesheet is now a .css file (installed
371 in the same place as the images) rather than being embedded into every
372 template.
373
374 Artist and album names in the playing and recently-played lists are now
375 links to the corresponding directory.
376
377 More functions are now available from the 'manage' screen.
378
379 The menus are now (by default) across the top of the screen instead of
380 down the side.  Set the 'menu' label to 'sidebar' to restore the old
381 appearance.  'Volume' is not present in this new menu, use 'Manage'
382 instead (or edit the template).
383
384 ** tkdisorder
385
386 tkdisorder now displays artist, album and title in the queue and
387 recently played widgets, rather than just the title (as formerly).
388
389 * Changes up to version 1.1
390
391 ** Bugs Fixed
392
393 Corrected various problems with UTF-8 parsing.
394
395 In the web interface, "The Beatles" (etc) are now grouped under 'B' not
396 'T' when grouping tracks by initial letter.
397
398 ** Server
399
400 The list of recently played tracks is now preserved across server
401 restarts.
402
403 Track IDs are more compact.
404
405 Versions of libdb before 4.2 are no longer supported.  4.2 and 4.3 both
406 work now.  4.2 support will be removed in some future release.
407
408 Prehistoric backwards-compatibility logic removed.  Only affects people
409 upgrading from long before 1.0 (who should upgrade to 1.0 and then to
410 1.1.)
411
412 ** Command Line
413
414 Tracks can be moved in the queue from the command line.
415
416 'disorder queue' now reports track IDs.
417
418 $pkgdatadir/completion.bash provides tab completion over commands and
419 options.
420
421 ** Web Interface
422
423 New 'cooked' preferences interface saves users having to know arcane
424 details of trackname preferences and so on.  Non-ASCII characters are
425 now properly supported in this context.
426
427 CGI arguments to the web interface are now checked for UTF-8 compliance.
428
429 Local Variables:
430 mode:outline
431 fill-column:72
432 End: