What’s New in tsh

A chronological list of changes to tsh.

Updated Fri Apr 28 08:55:14 EDT 2006 for tsh 3.080.

Changes are made to tsh for just about every tournament at which it is used. This means two things: firstly, you should be sure to update to the most recent version before your tournament; and secondly, if there’s a feature that you’d like added please be sure to mention it, preferably with about a month’s lead time.

VersionEventChanges
3.080BAT 2006
  • config initial_schedule” specifies number of rounds of InitFontes pairings to use at start of default pairings
  • If “config html_directory” does not exist and cannot be created, an error message says so.
  • ShowPairings” command shows table numbers in alpha mode, correctly handles byes in alpha mode.
  • Added “util/multiroto” to report on rotisserie pools that span more than one tournament.
  • Fixed a semi-obscure bug in “ChewPair”. When using pairings based on the second preceding round, the number of rounds used to compute the contender cap had been too large by one.
3.070NSSC 2006
  • RANDomscores” command now generates who goes first randomly to improve verisimilitude of reports on simulated runs
3.060Toronto vs. Mississauga 2006
  • Added “exagony” configuration option.
  • Added “TeamStandings” command
  • RATings” command correctly accounts for scoreless byes
  • STandings” command correctly accounts for scoreless byes
3.050Dallas Open 2006
  • If you are using xterm terminal emulation and have specified the “event_name” configuration option, tsh will identify itself in your window title bar.
  • ShowscoreCard” formats correctly even when first and seconds are not assigned.
  • Under some circumstances, the downloaded executable files would not be executable for OS/X users. I think I've fixed the problem, and documented how to fix it locally if it recurs.
  • At Kath Mullholand's request, the “high-win” external command (and the other three similar ones) now display a header that identifies the division.
  • Quality of pairings is slightly improved by disabling a speed optimization that tries to pair first those players with a smaller number of candidate opponents, when the number of players to be paired in a group is no more than twelve.
  • At Mary Rhoades' request, the “ShowPairings” command now also generates alphabetical pairings listings in addition to the old rank-based listings.
  • The “Addscore” no longer accepts scores outside the range [-150,1500].
  • Added “UPSETs” command to list top ratings upset games.
  • The munge-scores.pl utility, used by several external and utility commands, now reports player numbers, so those external commands will report them too.
3.040Oshawa 2006
  • Colour prompts for Windows users disabled by default, still optionally selectable. Windows colour is apparently broken in the most recent ActivePerl distribution.
  • If an html_directory needs to be created, lib/tsh.css is copied into it.
  • Fixed an obscure bug in “ChewPair” that made it occasionally crash.
  • Utility command “util/truncate_t” is tolerant of blank lines.
  • Added top-level script “get-tsh.pl”, built using “update” external command, to act as a standalone download tool for tsh. That is, you can if you want to download just this one script, run it and it will fetch everything else for you. Useful if you have a mostly complete installation but have somehow managed to wreck either your “tsh.pl” or part of the software update mechanism.
  • The “update” external command was saying that some files had been updated even when no files had been updated. That bug is fixed.
3.030WSC 2005
  • Support for scoreless byes.
  • Fixed a bug that caused starts/replies to be instable.
  • Fixed “ChewPair” command and pairing system: Gibson spread threshold now based on some historical data, leaders paired against lower-ranked contenders.
  • Addscore” won't let you switch to a division whose results have all been entered.
  • AUPAIR command supports byes.
  • Added “player_number_format” configuration option.
  • Added “show_teams” configuration option.
  • RATings” command shows next opponent if paired. (Suggested by David Acton.)
  • 0-point bye counts as a loss, not a tie.
  • Fixed a bug where pairings display would stop if a table was unoccupied.
  • Fixed a bug in bin/munge-scores that led to games with byes appearing in high/low win/loss lists.
  • MISSing” command lists players in current standing order.
  • Tweaked code for reserved table assignments, think there might still be a problem.
  • For a few versions, you had to specify the max_rounds configuration option to make pairings commands work. This should no longer be necessary, though it is still recommended.
3.020Kingston 2005
("Now... with tint control!")
  • All remaining commands converted to using newer parsing code.
  • LOOK” command checks for dictionary at runtime.
  • UnPairRound” command does not affect inactive players, minor bugs fixed.
  • EditScores” command deletes future byes when a player is (re)activated.
  • RANDomscores” command sets spread to 50 points for scheduled byes.
  • Fixed a bug where if you asked for pairings too far in advance, inactive player records would still have byes added.
  • Colour prompts for Windows users too.
  • MISSing” command ignores inactive players, displays board numbers when known.
  • ShowscoreCard” shows board numbers.
  • UPDATE” command will delete read-only files (like src/TSH/blib/lib/TSH/Pair.pm) to make way for their replacements.
  • Addscore” prevents entry of Rd. N+1 results when Rd. N is incomplete even when switching divisions.
  • Several commands explicitly report when pairings have failed.
  • Added “RandomPair” command.
  • Added “etc team” extension field.
  • Added “config initial_exagony” configuration parameter.
3.010Kingston 2005
  • Added “ON” and “OFF” subcommands to“EditScore” to permit enabling and disabling a player.
  • ShowscoreCard” detects truncated .t files.
  • ShowscoreCard” reports nonstandard spreads for inactive players.
  • Removed a bug that caused multiple byes to be appended each round to inactive players.
  • Removed two bugs introduced in 3.000 that caused odd divisions to severely misbehave.
  • Removed bug introduced in 3.000 that caused round robins to fail sometimes.
  • UnPairRound command will delete scored byes if they are the only scores in round.
  • RANDomscores command deals more appropriately with partially scored rounds, completing them rather than adding one score to each player regardless of number of scores recorded.
  • Deprecated PartialSWiss command finally deleted.
  • First sample folder cleaned up.
  • RoundRobin command works with inactive players.
  • In many places, the division name is now not displayed if the tournament has only one division.
  • PAIRPairMany> commands allows either player number to be zero for a bye.
  • PAIR, PairMany commands unpairs opponents of repaired players, assigning 50-point byes if necessary.
  • KOTH, Pair1324 commands works with inactive players, uses consecutive repeat avoidance, matching starts and replies, minimizing repeats as secondary criteria.
  • FactorPair” command released.
3.000MWMST 2005
  • Finished implementing “ChewPair” command and pairing system, which is now the default if pairings are asked for and no other system was specified.
  • Added HUH” command for explaining error messages.
  • Rewrote HELP” command to give detailed help about individual commands.
  • Added AUPAIR command for exporting to that ratings file format.
  • Many commands rewritten to conform to new internal code standards to support faster software updates and smaller runtime memory usage.
  • Fixed a bug in “ShowPairings” which had caused it to omit boards where more than two players had erroneously been scheduled to play.
  • Added DEBUG command for selectively toggling debugging on and off.
  • SWiss” command is now just an alias for “NewSwiss”.
  • Added “config external_path” to allow user plug-in directories.
2.980NSC 2005
  • ResultsByRound” command creates printable HTML files.
  • Added very experimental versions of “FactorPair1” and “FactorPair” commands.
  • Added “config prize_bands” to expand support for Chew pairings.
  • Added “config save_interval” to auto-save when entering a large number of scores.
  • Added “config rating_system” to allow computation of ABSP tournament ratings in “rat” command.
  • Added “maketm” external command to generate TourneyMan data files.
  • Added “high-loss-round” external command to list high losses in each round.
  • Added “high-win-round” external command to list high wins in each round.
  • Added “util/parsetm” utility to import TourneyMan data files.
  • roto” allows any number of players per team.
  • showWallChart” syntax does not require “-f” before round number anymore.
  • External command “show12” shows counts of firsts and seconds for each player.
  • The board at which each game was played is recorded (in “etc board”) and will not change once assigned.
2.975ABSP compatibility
  • Added “ABSPgrid” command.
  • Added “config colour”.
  • Made external commands work with Windows XP.
  • Reorganized search algorithm for configuration files. It’s now (1) files or directories specified on the command line, (2) the most recently changed among */config.tsh and */tsh.config, or (3) tsh.config. The intent is that users should have one tsh directory with a subdirectory for each event.
  • Added “update” external command, which downloads updates to the distribution.
2.960Albany NY
  • Added “tuffluck” external command.
  • Partly functional version of “ChewPair” command added.
  • ScoreCard command generates HTML version that can be printed as replacement for lost scorecard.
  • WallChart command generates HTML version.
  • Round-by-round HTML files are automatically indexed.
  • New RATING subcommand in EditScores.
  • Contextual help in EditScores.
  • EditScores can be used before any results are entered.
  • Initial .t files may omit trailing semicolon.
2.950Toronto LCT
  • Addscore prevents entry of Rd. N+1 results when Rd. N is incomplete.
  • New external command “show12” displays table of firsts/seconds.
  • First/second forecasts/assignments are now more accurate.
2.940Stamford CT
  • Optional specification of configuration file on command line.
  • NewSwiss tries to minimize repeat pairings.
2.930CNSC 2005
  • Addscore reports how many scores remain unentered.
  • Two-part tournaments are correctly split-rated.
2.920Thunder Bay ON 2005
  • Added some more three-word names to tourney.pl.
2.910BAT 2005
  • Added config gibson.
  • Added config max_rounds.
  • The timestamp of the most recent score entered for each player is now recorded.
  • Added ROTO command.
  • Code for reserved table assignments is working again.
  • Forecasts of firsts and seconds are purged before new forecasts are generated, which addresses a potential problem with corrupt stale data when players have systematically misreported firsts and seconds.
  • Added config no_text_files.
  • Added config html_directory.
  • Autopair supports PAIR1324.
  • Fixed a bug that prevented calculation of the ratings of unrated players.
2.900BAT 2005
2.850NSSC 2005
  • Fixed a bug introduced to RoundStanding in 2.800 (?).
2.840NSSC 2005
  • Fixed a bug introduced in 2.800 (?) where missing pairs were displayed twice.
2.830NSSC 2005
  • Generated HTML is somewhat more legible and conformant.
2.820NSSC 2005
  • Corrected determination of firsts and seconds.
2.810NSSC 2005
  • Added external command (plug-in) interface
  • Partial support for active/inactive players
  • 'off' extension field in '.t' files
  • MISSING and ShowPairings show "draws" if players must draw
  • config name_format = "%-22s"
  • config max_name_length = 22
  • config assign_firsts = 0
  • showWallChart and showScoreCard adjust column with to widest team name.
2.800NSSC 2005
  • EditScore now displays the current scorecard before each prompt, rather than after changes.
  • You can now enter the word first or second at the EditScore prompt to specify that the player went first or second.
  • MISSING and ShowPairings display firsts and seconds if known.
  • config track_firsts = 1 enables tracking of who went first or second in each game. tsh will use NSA rules for determining firsts and seconds, and complain if scores are not entered in order of play if known.
  • Auto-pairing used to be available only when a division was completely unpaired. Now, you can still auto-pair even after entering a few manual pairings.
  • You can now write config variable = value instead of perl $config'variable = value in tsh.config.
  • Byes are automatically chosen and assigned by the NS, KOTHand Pair1324commands.
  • The BYE command is now deprecated. It is no longer documented, and will be deactivated soon. Use the PAIR and Addscore commands instead.
  • The ShowPairings command used to always list everyone and their opponent (if any). Now, if no players are paired, it says so rather than listing everyone as unpaired.
  • The PAIR command used to always echo back the names and standings of the players you just (manually) paired. Now it only does so if you changed an existing pairing.
  • The SWiss, PartialSWiss, PRESWiss and PrePreSWiss commands are now deprecated. They are no longer documented, and will be deactivated completely soon. Use NewSwiss instead.
  • You can now enter 'es' when in Addscore mode, to go into EditScore on the most recently entered (and presumably mistaken) score.
  • EditScore command sometimes didn’t correctly record changes when editing multiple divisions, does so now.
  • UnPairRound command used to sometimes give incorrect error messages, but no longer does so.
  • Pair1324 documentation used to say that below 4th place, pairings were KOTH. This is untrue (they continue 5-7, 6-8, etc.) and the documentation has been corrected.
  • All command parsers rewritten to give consistent response and more specific descriptions of syntax errors.
  • RoundStandings used to misreport results in the current round, if not all scores had been entered, now reports correctly.
  • Division name may now be specified in command lines, even when event only has one division.
  • Distribution now in ZIP format.
  • Documentation rewritten.
  • Randomization of player orderings is now much less random, so first-round table assignments stay stable unless roster is changed.
  • Some spurious warning messages deleted.
  • Support added for new generalized .t files.
  • ShowPairings now generates HTML.
  • Trailing commas in player names are suppressed.
2.740Newsday SSC
  • PairMany debugged.
2.730Newsday SSC
  • ShowPairings catches and shows more pairing errors.
2.720Newsday SSC
  • PairMany added.
2.710Newsday SSC
  • Player names may include nonterminal numerals.
2.700Newsday SSC
  • HTML output from standings command.
2.600Oshawa 2005
  • RoundRobin command added.
  • RATings command added.
2.500MWMST 2004
  • Trying to autopair a round twice doesn’t crash tsh.pl.
2.400Albany 2004
  • Fixed wc -f #.
  • Autopair works at start of tournament.
  • MISSING lists divisions in alphabetical order.
  • 'm' synonym for 'missing' in score entry mode.
2.300BAT 2004
  • Autopair added.
  • EditScore emits updated scorecard.
2.210Montreal QC 2004-03 LCT
  • Suppressed a spurious error message.
2.200Cambridge ON 2004
  • "Cambridge pairings" added.
2.100CNSC 2003
  • Addscore gives updated cumes as a check.
2.000MWMST 2003
  • MISSING lists missing data in score entry mode.
  • Teed log files have '.doc' extension, no embedded spaces.
1.900CWSCQT 2003
  • Added ShowPairings -p as kludge to work with make-rr.pl.
1.800Albany 2003
  • ScoreCard shows opp ratings.
  • UnPairRound reports on problem players.
  • Table numbers can be arbitrary strings .
  • Entering a division name changes divisions in score entry mode.
  • ShowWallChart -f r lists beginning with round r only.
1.700Boston 2003
  • EditScore added.
  • NewSwiss code added, first manually paired player can be 0 for an unscored bye pairing.
1.600Boston 2001
  • InitFontes works for any number of players, not just 4n and 4n+2.
1.500Toronto 2001
  • Various changes.
1.400Boston 2001
  • Various changes.
1.300Danbury 2001
  • Various changes.
1.2002000 CNSC
  • Various changes.
1.1031999 MWMST
  • First production use
1.000None
  • First release