Skip to content

v6.0.0

Compare
Choose a tag to compare
@roy7 roy7 released this 13 Jun 19:45
· 216 commits to devel since this release
865b516

New changes after gtp2ogs 5.3

Covering main changes, not exhaustive

For users (OGS players):

Reject messages from challenges are clearer and more precise, for example “Allowed boardsize are 9,13,19” is now “Board size 18x18 is not allowed on this bot for ranked games, please choose one of these allowed Board sizes: 9x9, 13x13, 19x19."
Also we now display parsed of rank (17 -> “13k”), time (300 -> “5 minutes”) in reject messages
Adding more chat messages from the bot to the user using sendchat, for example “Waiting for opponent to place all handicap stones”: if bot is waiting for opponent to place all other stones, while player placed only one handicap stone and forgot there are more to place, it would result in a resign from the confused player, so this message sent to the user fixes it: b5bf604
Bot is automatically set to --hidden if --rejectnew is used, since we will never accept games from the user, no need to appear on the dropdown: c758f32
Greet as soon as bot connects to a game, to avoid impatient or confused user from wrongly resigning: fe11699

For users (botadmins):

New wiki readme and documentation b6b5be2
Install method in instructions is not global using -g but local using npm install, which should be run at every gtp2ogs branch change if dependencies are missing
New options-list page where all gtp2ogs options are listed: https://github.com/online-go/gtp2ogs/blob/devel/docs/OPTIONS-LIST.md
Add general/ranked/unranked options for some options such as boardsizes, nopause, minrank, etc: it is possible to either set a common setting for ranked and unranked games (ex: --boardsizes 9,13,19) or specific settings for ranked games different from the ones for unranked games (ex: --boardsizesranked 19 --boardsizesunranked all)
More talkative console, that tells the botadmin about the errors
Add defaults, to make it easier (ex: boardsizes, komis, etc) but also safer (ex: maxconnectedgames, etc) for botadmin. Full list can be found here: https://github.com/online-go/gtp2ogs/blob/devel/docs/OPTIONS-LIST.md#default-values-summary
Add --maxconnectedgames and --maxconnectedgamesperuser to cap max bot load (initally in bbc7d85, has been enhanced since that time)
Clickable variations with winrates, moves, etc: native support for most famous AI: leela zero (ex: --ogspv LeelaZero), katago, sai, etc: https://github.com/online-go/gtp2ogs/blob/devel/docs/OPTIONS-LIST.md#ogspv
--logfile option: you can save console debug output in a log file for future reference if we encounter errors: https://github.com/online-go/gtp2ogs/blob/devel/docs/OPTIONS-LIST.md#logfile
Hide apikey in debug logging: 46f1e84
Kill bot in case of crash and automatically try to restart. At 5th crash automatically resign to avoid gtp2ogs being stuck: 126a997
Handle blitz live correspondence time settings individually based on speed: for example --minmaintimelive 60 (1 minutes) --minmaintimecorr (259200) (3 days)
Display bot command at greeting (ex: show resign rate, network, visits, etc.) https://github.com/online-go/gtp2ogs/blob/devel/docs/OPTIONS-LIST.md#greetingbotcommand
Warning at console start if nopause setting is missing. Pausing during games can make many games stack potentially indefinitely, and it is an option we may forget
Dropped some options and aliases: --botid, --id, --bot (only --username is possible now), using plurals for allowed families (arguments with one or many allowed values ex: --boardsizes 9,13,19) with a deprecation message if they are used, in console
Automatically handle minhandicap > 0 rejecting automatic handicap (-1) (because 0 > -1 so we reject based on minimum required 0 stones higher than -1 stones), by automatically enabling noautohandicap if minhandicap > -1
Add notes about “Submit Move” button to prevent from accidental clicks on the board while logged on the bot account on ogs website game page: https://github.com/online-go/gtp2ogs#submit-move-button
Fixed multiple corrqueue bugs
Add discord and various links
Many other options such as komis, nopauseonweekens, fakerank, snowboard (now optional), etc.

For developers:

Gtp2ogs is now split in modules (config.js, bot.js, game.js, connection.js, etc.): 90c5636
Added basic unit testing: cff3577
Added travisCI testing on the github repo, successfully tested in fe114f9
Added checkChallenge.test.js unit testing: #287 and 310ce13
Updated testing infrastructure (config is now a global let, not a local const, uncached require, added nyc,) #287
0f29e41
Fixed gamedata crashloop in devel (due to server inconsistency, see #296 and #301
Fix double genmove sent at the same time if one is already processing: d71fb14
Added non square boardsizes support in bot.js and game.js: 5bade48
Add some dependencies: mocha, nyc (as seen above), split2 cd4e61d, markdownlint, ESLint (in e8dd6bb), etc.
Added /utils to store functions shared in several modules
Replace != and == with !== and === (avoids some unexpected javascript behaviour) in a8ea184
Replace let with const as much as possible, started in: 5114d9c
Do not use var
Check explicitly for undefined for valid values such as 0 and null which are tested false
Disable no-console eslint rule in config.js, in #287
Added /docs/DEV.md
Commit package-lock.json at every new structure update
Many other fixes and tweaks

Contributors for this release: @anoek @roy7 @lemonsqueeze @wonderingabout @windo @Dorus @eatnow @sanderland , as well as all people who use gtp2ogs and give feedback

Patch notes by @wonderingabout