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