-
Notifications
You must be signed in to change notification settings - Fork 53
/
Copy pathChangeLog
1643 lines (1473 loc) · 70.9 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
--------------------------------------------------------------------------------
Version 2.0.1 (2024-05-11)
--------------------------------------------------------------------------------
========
Features
========
- None
========
Bugfixes
========
- None
===========
Regressions
===========
- Fixed a bug that caused the app and Fuego to become out of sync when a game
with handicap was started, or when a game with black or white setup stones
was loaded from the archive (#430).
=================
Technical changes
=================
- None
=================
GitHub issue list
=================
A list of all issues closed for this release is available on GitHub:
https://github.com/herzbube/littlego/milestone/24?closed=1
--------------------------------------------------------------------------------
Version 2.0.0 (2024-05-09)
--------------------------------------------------------------------------------
========
Features
========
Support for game variations (#380):
- The app now supports displaying game variations. For that purpose a new view
was added at the bottom of the Play tab.
- The new view displays the tree of nodes formed by all variations of the game.
The view is therefore named "Node tree" view, or just tree view for short.
- The tree view can be resized, zoomed and scrolled, and you can tap on any
node to change the game board to display the content of that node.
- The app also supports creating new game variations: Go back to an older node
and play a move and the app will automatically insert a new game variation.
Note that in previous versions of the app an alert was displayed in this
situation, asking whether you want to discard future board positions.
- A number of new settings were added under "Settings > Tree view" and
"Settings > Game variation" that let you control various aspects of how the
tree view is rendered and how game variations are inserted.
- If you do not want to work with game variations you can also use the settings
to hide the tree view completely and disable creation of new game variations.
========================
Improvements and changes
========================
User manual overhaul (#419):
- The user manual has been rewritten from scratch, complete with icons,
illustrations, a few animatons and hyperlinks.
- Besides the in-app version of the user manual there is now also an identical
online version that can be accessed in any web browser at
https://littlego-usermanual.herzbube.ch/.
- Many users have had trouble with the dry text-only user manual of the past,
often being unable to match textual descriptions of icons to the actual
buttons in the app. Hopefully this is now an issue of the past. Many thanks
go to Andreas Fischlin who gave me the impetus to take on this long overdue
task.
Other changes:
- The content of the node list view (formerly called "board position list view")
was slightly redesigned. Previous app versions used to show a symbol only for
black and white moves, now the app always shows a symbol even if a node does
not contain a move. Also the textual representation of some node types was
slightly changed.
- The setting "Board position setting > Discard future moves alert" was renamed
to the more generic "Discard future nodes alert", because the app now no
longer displays only moves, but arbitrary nodes in the node tree view.
- The hotspot icon is now properly centered.
========
Bugfixes
========
- In-app web views now continue to display their content after an external link
is opened in Safari (#428). Affected views: Help tab, About tab, Credits tab,
Source Code tab, and any one of the entries on the Licenses and the Changelog
tabs.
- The app no longer crashes when a handicap stone is removed while board setup
mode is active (#399).
- Fixed a bug where sometimes handicap stones were not properly marked up while
board setup mode was active (#400).
- Labels placed in markup mode are now no longer displayed while board setup
mode is active (#420). Because board setup mode has its own markup that is
specifically designed to facilitate board setup, it is by design that labels
and other graphical elements placed in markup mode are not shown when board
setup mode is active.
- When the setting "auto-enable board setup" was enabled and a new game was
started with the "rematch" menu option, the app in some cases did not enter
board setup mode as designed. This has been fixed (#411).
- Speculative fix for a potential app crash when the UI changes orientation
from Portrait to Landscape (#406).
===========
Regressions
===========
- Fixed the "Select player" screen to show a non-transparent background color
even when no players are available (#421).
=================
Technical changes
=================
Support for iOS 9 up to 14 has been dropped (#409).
- The minimum required version is now iOS 15.0.
- The following devices are no longer supported:
- iPhone models: iPhone 4S, iPhone 5, iPhone 5C, iPhone 5S, iPhone 6 and
iPhone 6 Plus.
- iPad models: iPad Mini 1st generation, iPad 2, iPad 3rd generation,
iPad 4th generation, iPad Air 1st generation, iPad Mini 2, and iPad Mini 3.
- iPod models: iPod Touch 5th generation, and iPod Touch 6th generation.
- Although the list of devices is quite long it's not as bad as it might seem
because the devices left behind are all quite old. To give an estimate, the
newest devices that are now no longer supported were released by Apple 10
years ago, and were discontinued 7-8 years ago.
- The main reason for the change was that new library versions required
technical features that older iOS versions could not provide. A secondary
reason was to get rid of old cruft in the source code that has accumulated
over the years to keep the app running on old iOS versions.
Other technical changes:
- The project has been upgraded to the iOS 17.2 SDK and Xcode 15.1 (#408).
One notable change that emerged from the upgrade was that the NSCoding
implementation had to be adapted to NSSecureCoding.
- The following third party software has been upgraded to new versions:
SgfcKit and libsgfc++ (from 1.0.0 to 2.0.1), Cocoa Lumberjack (from 3.7.4
to 3.8.2) and Firebase Crashlytics (from 8.11.0 to 10.19.0).
- The structure how user preferences are stored has been slightly changed by
moving top-level entries into child dictionaries (#404).
- The way how the app internally communicates certain state changes has been
changed from the KVO (key-value observing) approach to posting notifications
to the global notification centre (#402). The change fixes at least one
potential but hard-to-pinpoint bug, but also makes the code more maintainable.
=================
GitHub issue list
=================
A list of all issues closed for this release is available on GitHub:
https://github.com/herzbube/littlego/milestone/21?closed=1
--------------------------------------------------------------------------------
Version 1.7.1 (2022-09-23)
--------------------------------------------------------------------------------
========
Features
========
- None
========
Bugfixes
========
- Fixed app crash when board position cells are reused after a new game is
started or loaded from the archive (#397).
- The app no longer crashes when the user performs a board setup operation (e.g.
places a setup stone) and the game has ended without any move because a player
immediately resigned without playing a move (#398).
===========
Regressions
===========
- None
=================
Technical changes
=================
- None
=================
GitHub issue list
=================
A list of all issues closed for this release is available on GitHub:
https://github.com/herzbube/littlego/milestone/22?closed=1
--------------------------------------------------------------------------------
Version 1.7.0 (2022-09-16)
--------------------------------------------------------------------------------
========
Features
========
Smart Game Format (SGF) support:
- The app now supports reading and writing of all SGF node annotation and move
annotation properties (#339). The app also displays these properties' values
and lets you edit them. This means that you can now add a valuation to a move
(e.g. good/bad move) and/or to the entire board position (e.g. good position
for black/white), designate a board position to be a "hotspot" (e.g. it
contains a game-deciding move), annotate a board position with an estimated
score, and finally you can add textual notes to a board position. Annotation
data is displayed by, and can be edited via, an all-new annotation view.
- The app now supports reading and writing of all SGF markup properties (#349).
Except for the DD property (dim parts of the board), the app also displays
these properties' values and lets you edit them. This means that you can now
mark intersections on the board with 5 different symbols (circle, square,
triangle, "X" mark, "selected" symbol), place single-character letter markers
or single-digit number markers, place a free-form label text, and finally you
can draw arrows or plain lines on the board. The app has an all-new markup
editing mode for this (accessible via menu icon) that includes drag & drop
support to move around existing markup.
- A notable consequence of these additions is that board positions without moves
are now possible when loaded from an SGF file (e.g. a board position that
contains only markup and/or annotations), but you cannot create such positions
yet from within the app. This feature will be added in the next release.
- In the Settings screen there are now a number of user preferences that affect
how markup is drawn and that let you tweak some aspects of the markup editing
process.
========================
Improvements and changes
========================
- The general user interface (UI) of Little Go now looks and behaves the same
on all device types (#371). This unification of UI layouts became necessary
because the effort to support different layouts proved to be too much. Also
the unification provided the opportunity to get rid of many behind-the-scenes
hacks. The main changes are: 1) Smaller iPhone devices which only support the
Portrait orientation UI layout, now display board positions and the navigation
buttons differently than before. 2) Larger iPhone devices now display a
tab bar when in Landscape orientation (alas, reducing the size of the board).
3) iPad devices now always show board positions when in Portrait orientation,
and when in Landscape orientation they display board positions and navigation
buttons differently than before.
- Changed the icon of the "More Game Actions" button (#377). The previous icon
was a "curved arrow" symbol, which seemed to confuse many users so that they
couldn't find important actions, such as "New game". The new icon is the
established "hamburger menu" icon, which should now more clearly indicate that
the button pops up a menu with actions to select from.
- Button boxes and the board position list now support Dark mode by switching
to a dark background color (#378 and #379). Thanks to Peter Waldispühl for
reporting this.
- Coordinate labels are now drawn at the board edge instead of at the screen
edge (#147).
- The "Last move" marker is now drawn in red color, to distinguish it from the
new Square markup symbol (#396).
- The Go board is now always properly centered within the screen space that is
available to it (#367).
- Little Go has a technical limit for the number of moves that can be played in
a single game (in case you wonder: the limit currently is 1394 moves). The
app now explicitly checks for this limit when you attempt to place a stone or
pass (#381).
========
Bugfixes
========
- Board position zero (representing the start of the game) sometimes did not
display handicap and komi. This is now fixed (#374).
- Speculative fix for a potential app crash when the board setup is changed
but somehow the board displays a position after the start of the game (#366).
Instead of crashing the app now displays an alert.
- Two speculative fixes (#369 and #370) for potential app crashes in a wide
variety of circumstances.
- Another set of fixes (#364) that helps with app stability and avoids a number
of potential app crashes.
===========
Regressions
===========
- A bug was introduced in version 1.6.0 that would cause Ko detection to fail
after the app was suspended and was forced to restart by the operating system
(a relatively common occurrence). This is now fixed (#372). Because Little Go
has struggled with Ko detection many times in the past, this regression was
particularly painful.
=================
Technical changes
=================
- The project has been upgraded to the iOS 15.2 SDK and Xcode 13.2.1.
- The following third party software has been upgraded to new versions:
Cocoa Lumberjack (from 3.7.0 to 3.7.4) and Firebase Crashlytics (from 4.6.2
to 8.11.0).
- SGF files that were previously locally maintained have now been added to
version control (commit f6aa17eac62bd5594200208d7a657e08297073a4). The manual
testing script in the TESTING document can now be played through by anyone.
=================
GitHub issue list
=================
A list of all issues closed for this release is available on GitHub:
https://github.com/herzbube/littlego/milestone/20?closed=1
--------------------------------------------------------------------------------
Version 1.6.0 (2021-02-26)
--------------------------------------------------------------------------------
========
Features
========
Smart Game Format (SGF) data processing:
- Added an SGF parser (#112). Little Go can now read and write SGF data on its
own without having to delegate this task to Fuego (the built-in computer
player library). The core piece of software is SGFC, the SGF Syntax Checker &
Converter. A big thank you to Arno Hollosi for writing this tool and making it
available under a free license, and also for helping with integrating it into
Little Go.
- When you select an SGF file in the archive you can now see if the file
contains more than just one game. For each game you now get a preview of its
content and you can select which game to load (#338).
- In the Settings screen there are now a number of user preferences that give
you some control over how SGF files are processed (#337). The defaults should
be fine, especially for files that were created by Little Go, but if you have
imported files from an external source you might need to make adjustments.
The in-game manual has all the details.
Other features:
- Added a new user preference to the "Board position" settings screen that lets
you choose whether discarding the computer player's last move also discards
your own last move (#99). The goal is that if the option is enabled you can
immediately play again after a discard and try out a different move.
- Added a new entry to the "More game actions" menu that lets you play a rematch
without showing the "New game" screen first (#313). This is a convenient
shortcut to quickly start a new game with the same parameters as the last one.
- Added a new user preference that lets you choose what kind of computer
assistance you would like to receive. The default is, just like before, to let
the computer make a move on your behalf. What's new is that if you prefer you
can now tell the computer to instead only make a suggestion how to play (#28).
Note that the feature is still a bit rough on the edges. Known issues have
been collected in #363, the polish will come in one of the next releases.
========================
Improvements and changes
========================
- The buttons that let the user navigate between board positions have now more
space between them (#346), making it less likely that the user taps the wrong
button. Thanks to Dan Hassin for both reporting the issue and implementing the
fix.
- Loading a game from the archive now benefits from improved error handling.
If a game cannot be loaded you will now get better error messages that should
be more helpful.
- When a game is saved to the archive the current player names are now written
to the SGF data (#237).
- The user interface has been adapted to newer iOS devices with a sensor notch,
rounded corners and/or a Home indicator instead of a Home button (#336).
- The app now supports Dark Mode (#345). A new, darker wooden background for
the board still needs to be found (#360).
- When Little Go is newly installed from the App Store the default computer
player is now weaker (#358). This should give more users a positive first
app experience. Users who want a challenge can still increase the difficulty
by switching to a stronger computer player. A side effect of this change is
that the default computer player no longer uses the "Pondering" setting, which
means that the iOS device's battery should now be used up a lot less.
- Added another predefined computer player that has "Pondering" disabled. Users
who already have the app installed need to select "Reset to defaults" in the
"Players" settings screen to see the new player.
- The app's user interface no longer exposes GTP engine profiles as a separate
entity, instead the user interface now only displays players (#211). It should
now be easier for users to find the settings for adjusting the computer
player's strength.
========
Bugfixes
========
- The app no longer crashes when a game with many moves (500 or more) is
archived or unarchived (#357).
- The app no longer crashes when a game is loaded while an ended game with
non-alternating dispute resolution is present (#361).
- Speculative fix for a potential app crash when an SGF file is imported (#362).
- The information which player resigned is no longer lost when the user switches
to an earlier board position (#341).
- On iPhone devices with larger displays, when the device is rotated while the
activity indicator is displayed in the status view the activity indicator is
now still displayed after the rotation (#343).
===========
Regressions
===========
- All iPhones: When board setup mode was added in version 1.5.0 a bug was
introduced that made it possible for board position lists to show erroneous
information when moves were discarded and then replayed, or when games were
restarted with different characteristics. This bug has now been fixed (#359).
- iPhone devices with smaller displays: When iOS 13 or newer was installed on
these devices the current board position view stopped responding to taps.
This bug has now been fixed (#344).
=================
Technical changes
=================
- The project has been upgraded to the iOS 14.3 SDK (#335) and
Xcode 12.3 (#334).
- The migration from Twitter Fabric to Google Firebase is now complete (#322).
- Support for iOS 8 has been dropped, the minimum required version is now iOS
9.0 (#305). This should not affect any devices unless they are artificially
held back at iOS 8.
- The project's software build should now work out of the box for new
contributors. Thanks to Dan Hassin for contributing the necessary changes.
=================
GitHub issue list
=================
A list of all issues closed for this release is available on GitHub:
https://github.com/herzbube/littlego/milestone/18?closed=1
--------------------------------------------------------------------------------
Version 1.5.1 (2019-03-23)
--------------------------------------------------------------------------------
========
Features
========
- None
========
Bugfixes
========
- App no longer crashes during launch on iOS 9.x and below (#332). Thanks to
Li Chen Ke and Dennis for reporting the issue.
===========
Regressions
===========
- None
=================
Technical changes
=================
- None
=================
GitHub issue list
=================
A list of all issues closed for this release is available on GitHub:
https://github.com/herzbube/littlego/milestone/19?closed=1
--------------------------------------------------------------------------------
Version 1.5.0 (2019-03-20)
--------------------------------------------------------------------------------
========
Features
========
- Added a board setup mode (#276). When you start a new game, instead of
beginning to play you can now switch to board setup mode. In this mode you can
place black or white stones in any order and combination to set up the initial
board before you begin to play moves. In addition to placing stones, you can
select the side which is to play the first move. Read the "Board setup"
section in the in-game manual for a detailed feature description.
========
Bugfixes
========
- Fix for a memory leak in UnarchiveGameCommand (#331)
===========
Regressions
===========
- None
=================
Technical changes
=================
- Added an initial set of a few automated UI tests (#134)
=================
GitHub issue list
=================
A list of all issues closed for this release is available on GitHub:
https://github.com/herzbube/littlego/milestone/17?closed=1
--------------------------------------------------------------------------------
Version 1.4.1 (2019-01-17)
--------------------------------------------------------------------------------
========
Features
========
- None
========
Bugfixes
========
- Fixed a bug in Fuego that could cause Fuego to play a stone during the opening
game on an intersection that was already occupied by a handicap or setup
stone (#328). In addition, Little Go's error handling is now capable of
dealing with such a situation so that user's are not stuck in a seemingly
endless "computer is thinking" loop.
===========
Regressions
===========
- None
=================
Technical changes
=================
- None
=================
GitHub issue list
=================
A list of all issues closed for this release is available on GitHub:
https://github.com/herzbube/littlego/milestone/16?closed=1
--------------------------------------------------------------------------------
Version 1.4.0 (2019-01-13)
--------------------------------------------------------------------------------
==========
Known bugs
==========
- On iPhone Plus devices as well as on iPhone XS Max, when the user navigates
to the first or last board position most of the time the new current board
position is not displayed with a special background color as it should
(#326).
========
Features
========
- Added support for loading and saving .sgf files that contain stone and/or
player setup nodes (#323). This kind of .sgf files is frequently used for
sharing board positions that teach how to play best in certain game
situations, or that are puzzles to be solved. Notes:
- It was already possible to load these .sgf files before the change, but
Little Go would not display the stones specified by the stone setup nodes,
and playing after loading such an .sgf file would usually result in the
alert message "Your move was rejected by Fuego".
- Even after this change, only those .sgf files are properly handled which
contain setup nodes at the beginning of the file. Little Go still cannot
properly handle .sgf file that contain setup nodes after the first move is
played.
========================
Improvements and changes
========================
- The "New game" screen now displays a recommendation to use the area scoring
system.
- The "Game info" screen now shows stone and player setup information.
- When the app is started for the first time after the update, two new
GTP commands "list_setup" and "list_setup_player" are added to the user's
list of GTP commands (Diagnostics > GTP commands).
- The way how an archived game can be shared was re-implemented
(UIActivityViewController instead of the long deprecated
UIDocumentInteractionController). This may result in users now seeing
different sharing options.
- The Changelog is now available in-app
========
Bugfixes
========
- When playing with area scoring, the Fuego computer player now correctly
includes handicap compensation in its score calculation (#319). Before this
fix, the Fuego computer player was calculating scores without handicap
compensation, which would lead to it resigning (when playing as white) even
though it had actually won the game. Or it might not resign (when playing
as black) even though it had actually lost the game. This serious bug was
reported by dtsudo - thanks a lot!
- The app now synchronizes komi with Fuego when board positions are changed
(#324). Up until now the app never synchronized komi. This omission could
lead to the following problems:
- An .sgf file is saved with the wrong komi value in it.
- Fuego is likely to play wrong moves. For instance, towards the end of the
game Fuego might start to pass because it thinks it is winning, or it
might resign because it thinks it is losing. The probability of misplays
increases when there is a large difference in komi values.
These problems would occur only if the user loaded an .sgf file that
contained a different komi value than the last game that was started with
the "New game" function, and then changed board positions or discarded a
move.
- A bug in the board drawing routines was fixed which caused the app to
occasionally crash (#308).
===========
Regressions
===========
- White player influence is now shown correctly with white squares (#317).
White player influence was erroneously shown with black squares since the
release of version 1.1.0. Thanks for reporting this bug go to ecru86.
- Users that do not have automatic crash reporting enabled are now asked
whether they want to submit a crash report (#321). The alert that asks for
permission was accidentally disabled since the release of version 1.3.0.
Because the alert was disabled, no crash reports were submitted at all
unless the user had automatic crash reporting enabled.
=================
Technical changes
=================
- The project has been upgraded to the iOS 12.1 SDK (#314) and
Xcode 10.1 (#315)
- Code signing overhaul: Code signing is now managed automatically by Xcode
- The project is now built with Bitcode enabled (#295)
- The project now uses libc++ (#181), the C++ standard library implementation
provided by the LLVM project, instead of libstdc++, the GNU project's
implementation.
- Communication between Little Go and Fuego is no longer based on named pipes,
instead it works with a custom stream buffer that acts as an in-memory pipe
(#316). This change was necessary because libc++ has a bug [1] that breaks
the original named pipe communication channel.
[1] https://bugs.llvm.org/show_bug.cgi?id=23078
- Started migration from Twitter Fabric to Google Firebase (#320). A best
effort has been made to disable all other Google services and to only keep
Crashlytics enabled. Notably, Firebase Analytics data collection has been
explicitly disabled! An explanatory side note: This technical change has
become necessary because in January 2017 Google acquired Fabric/Crashlytics
and, after a grace period of 1.5 years, announced in September 2018 that
they will discontinue Fabric in favour of the Firebase platform. It's all
very complicated, but the main point is that Little Go wants to continue to
use the excellent Crashlytics as its crash reporting service, and since that
now requires integration with the Firebase platform, Little Go has no choice
but to follow Google's lead.
- All third party software has been upgraded to their newest versions
(Boost 1.69.0, CocoaPods 1.5.3, MBProgressHUD 1.1.0, Cocoa Lumberjack 3.4.2,
Fabric 1.6.13, Crashlytics 3.8.6)
=================
GitHub issue list
=================
A list of all issues closed for this release is available on GitHub:
https://github.com/herzbube/littlego/milestone/15?closed=1
--------------------------------------------------------------------------------
Version 1.3.1 (2017-01-18)
--------------------------------------------------------------------------------
========
Features
========
- None
========
Bugfixes
========
- Another ko detection problem when viewing an old board position is now
fixed (#307). This was the root cause for the dreaded alert message
"Your move was rejected by Fuego", which must have popped up on quite a few
people's devices, but which I had never been able to reproduce despite the
bug reports that were kindly sent to me by some of the most patient users.
Yesterday, however, I received a report that finally gave me a reproducible
case which allowed me to pinpoint and fix the coding error. Many thanks to
everybody who sent bug reports, but especially to Manuel Braun for
submitting the crucial last bug report.
===========
Regressions
===========
- None
=================
Technical changes
=================
- None
=================
GitHub issue list
=================
A list of all issues closed for this release is available on GitHub:
https://github.com/herzbube/littlego/milestone/14?closed=1
--------------------------------------------------------------------------------
Version 1.3.0 (2016-09-12)
--------------------------------------------------------------------------------
========
Features
========
- iPad Pro is now supported with its native screen resolution (#297)
========================
Improvements and changes
========================
- When the game is resumed to settle a life & death dispute, a "Resume Play"
alert is displayed if the game rules allow resumption with non-alternating
play. Previously the alert buttons were sometimes displayed in the order
Black/White and someteimes in the order White/Black, depending on whose
player's turn it was. Now the alert buttons are always displayed in the
order Black/White (#300)
========
Bugfixes
========
- Ko detection now works correctly if an old board position is viewed (#289).
Many thanks to Denis Martynov for bringing this to my attention. I promised
to release the bugfix "as soon as possible, probably next weekend". This was
in June 2015 - over a year ago :-(
- The status view now displays the correct text after the user discards all
moves at the beginning of a game (#301)
- iPhone n Plus devices: The "Game Info" and "More Game Actions" buttons are
now correctly enabled after rotating the device to landscape (#299)
===========
Regressions
===========
- None
=================
Technical changes
=================
- The project has been upgraded to the iOS 9.3 SDK (#298) and Xcode 7.3.1
- Support for iOS 7 has been dropped, the minimum required version is now iOS
8.1 (#260). The only device that is no longer supported is the iPhone 4.
- The project now uses CocoaPods for most 3rdparty libraries (#291)
- The 3rd party crash reporting library QuincyKit was replaced by a new
library called Crashlytics (#293)
=================
GitHub issue list
=================
A list of all issues closed for this release is available on GitHub:
https://github.com/herzbube/littlego/issues?q=milestone%3A1.3.0+is%3Aclosed
--------------------------------------------------------------------------------
Version 1.2.0 (2015-06-12)
--------------------------------------------------------------------------------
========
Features
========
- iPhone 6/6+ are now supported with their native screen resolution (#263)
- iPhone 6+ has a redesigned user interface that makes better use of the
available screen estate (#253). iPhone 6+ also supports holding the device
in landscape.
- When starting a new game, it is now possible to select from several
predefined rulesets, which allows setting many game rules at once with a
single tap (#274). This makes the "New game" screen less cluttered and more
user friendly. Rule enthusiasts can still adjust each individual game rule
by calling up an "Advanced settings" screen.
- Gameplay mechanics at the end of the game have been significantly revised:
- It is now generally possible to resume play after two pass moves without
having to discard ("undo") the second pass move
- 3 new game rules were added that govern gameplay mechanics at the end of
the game. These rules allow to play games under AGA or IGS rules
(#221, #223), but also under Japanese and Chinese rules where
non-alternating play is possible to resume a game after it has ended after
two pass moves (#275).
- As a consequence of these new gameplay mechanics at the end of the game, a
much wider array of .sgf files can now be loaded from the archive, provided
that the user selects the appropriate rules for the game that is in the .sgf
file.
- Files that contain more than two pass moves at the end of the game. This
is especially useful to load games that were played on IGS (Pandanet),
where games end with 3 instead of 2 pass moves.
- Files that resume play after two pass moves. Again, this is useful for
loading files from IGS (Pandanet), but also for files that contain games
played under any ruleset that allows play to be resumed after two pass
moves.
- Files that contain non-alternating play (e.g. two moves in a row by
black). This is useful to load files that contain game problems where
theoretical board situations are set up by non-alternating play. Also,
games can now be loaded that were played under rulesets (e.g. Chinese,
Japanese) that allow play to be resumed after two pass moves by
non-alternating play.
- Special thanks go to Norbert Langermann and his innocent suggestion to add
support for loading .sgf files with games that were played on IGS. This was
the trigger for adding the new end-of-game gameplay mechanics.
- One more thing: When placing a stone a magnifying glass is now displayed
that shows the area of the board that currently under the user's 'fingertip
(#271). This feature replaces the old "stone distance from fingertip"
feature, which confused and was hated by many users.
========================
Improvements and changes
========================
- Disable Fuego pondering in human vs. human games (#281). This saves *a lot*
of otherwise wasted battery power. Thanks to Ben Jackson for the suggestion.
Unfortunately, a nasty piece of code was required to upgrade existing user
preferences, which may result in unnecessary player and profile backup
copies cluttering the upgraded preferences. Users will get an alert if this
happens so that they can clean up their preferences.
- When a game cannot be loaded from the archive because it has moves after
the game has ended, the error message displayed to the user should now be
less cryptic (#277)
- When the game has ended, the "Scoring" menu item is now shown as a button
so that the user can quickly switch between scoring mode and play mode
without first having to call up the "More game actions" menu (#268)
- A couple of buttons have gotten new icons (#269). Thanks to David Helfand
for the suggestion.
- The status view now always shows the status for the current and the next
board position (#265). Up until now the status view only showed when a
player had passed, and never showed any information about the next board
position.
========
Bugfixes
========
- The app now correctly synchronizes handicap stones with Fuego when board
positions are changed (#279). This is the most important bugfix of this
release because it fixes another source for the infamous
"The computer played an illegal move" and "Your move was rejected by Fuego"
alerts. Many thanks to Laurent Guanzini for providing step-by-step
instructions that helped me with diagnosing the problem!
- The app no longer crashes when a game is loaded from the archive that
contains a board that is larger than 19x19 (#283). The game still cannot be
loaded, but an error message is displayed instead of crashing.
- The app no longer crashes when the last game in the archive is deleted
(#286)
- It is now possible to place a stone when viewing an old board position, even
if the game has already ended (#278). It is thus possible to resume play at
an earlier board position than the last.
- The user interface no longer rotates while a stone is being placed (#272)
- The status view now correctly displays "<color> passed" when a computer vs.
computer game is paused (#266)
- If the user attempts to make an illegal move, the status view now displays
the intersection of the move (#261)
- The device statusbar at the top of the screen no longer disappears when
some screens are displayed (#256)
- iPad only: The board is now rotated correctly even if it is not visible at
the time that the device orientation changes (#255)
- A number of other bugs were fixed that may have caused crashes (#192, #284)
- Other minor bugfixes (#209, #257, #258, #262, #273)
===========
Regressions
===========
- None
=================
Technical changes
=================
- The project has been upgraded to the iOS 8.1 SDK (#248) and Xcode 6.1.1
- 64-bit support was added (#249)
- The Xcode project has been cleaned up (#252, #253)
- The vector graphics sources (.svg files) for all icons in the app were added
to the project and to version control (#264)
- User defaults updating is no longer triggered for fresh installs (#282)
- The 3rd party crash reporting library QuincyKit was upgraded to version 3
(#285)
=================
GitHub issue list
=================
A list of all issues closed for this release is available on GitHub:
https://github.com/herzbube/littlego/issues?q=milestone%3A1.2.0+is%3Aclosed
--------------------------------------------------------------------------------
Version 1.1.2 (2014-09-19)
--------------------------------------------------------------------------------
========
Bugfixes
========
- Interactive UI elements are now disabled while a stone-placing gesture is in
progress (#243). This closes a loop hole that may have been the source for
a number of crashes in the past (e.g. the crash described in #244)
- Stones no longer temporarily disappear from view while dragging a new stone
(#245). Thanks to stfiend for reporting this bug.
- Fixed a potential crash if the computer player starts playing immediately
after a game is loaded from the archive (#247).
===========
Regressions
===========
- It is now possible again to make a move when viewing an old board position
while the game has already ended (#246). This will resume the game, discard
all board positions beyond the one that the user is currently viewing, and
then play the desired move.
--------------------------------------------------------------------------------
Version 1.1.1 (2014-08-15)
--------------------------------------------------------------------------------
========
Bugfixes
========
- App (hopefully) no longer crashes while stone is dragged around the board
(#242)
--------------------------------------------------------------------------------
Version 1.1.0 (2014-08-10)
--------------------------------------------------------------------------------
========================
Improvements and changes
========================
- The app's user interface has been updated to the iOS 7 look & feel (#204)
- The "maximum zoom" user preference has been removed (#217)
- iPad: The "Game Actions" menu is now displayed in a popover (#232)
- The name of the "iPhone 4S" demo profile has been changed to "Strong" (#210)
- The "long press" gesture for placing a stone now has a slightly longer
delay (#241). This should make it less likely that the user places a stone
when instead she wanted to scroll.
========
Bugfixes
========
- Drawing for Retina displays has been fixed (#205). Many thanks to
Eric O. Lebigot for reporting the issue and giving me the necessary KITB to
investigate the problem.
- The app no longer crashes when the "Score" segment is visible on the
"Game Info" screen and player/profile information is edited (#225)
- The app no longer crashes when a player is viewed on the "Game" segment of
the "Game Info" screen and the game ends (#226)
- The app no longer crashes when a saved game is renamed and the new name
contains illegal characters (#235)
- iPad: The list of board positions now shows the correct move after
discard & play (#233)
- iPhone: Potential app crash eliminated if user taps an entry in the list of
board positions (#229)
- Handicap compensation is now shown in the "Game info" screen even if scoring
mode is not enabled (#220)
- The "Minimum number of games" setting in the resign behaviour advanced
settings screen is no longer editable if the "Auto-select" setting is turned
on (#207)
- When the board is zoomed in or out, the internally managed zoom scale can no
longer become lower/higher than the intended minimum/maximum (#139)
===========
Regressions
===========
- The "Load" button on the Archive tab is now disabled again while the
computer is thinking (#227). This was broken when document interaction was
introduced in 0.11.0.
=================
Technical changes
=================
- Memory usage during zooming has been greatly reduced (#212, #214, #215)
- Memory usage for wooden background image has been reduced (#216)
- The project has been upgraded to the iOS 7 SDK (#204) and Xcode Xcode 5.1.1
- Support for iOS 6 has been dropped, the minimum required version is now iOS
7.0. Devices that are no longer supported are the iPhone 3GS and the
iPod Touch 4th generation.
- The user interface now uses Auto Layout instead of manually calculated
frames (#206)
- Unit tests were migrated from SenTestingKit/OCUnit to XCTest (#222)
- No longer use any .xib files, the entire UI is now set up programmatically
=================
GitHub issue list
=================
A list of all issues closed for this release is available on GitHub:
https://github.com/herzbube/littlego/issues?q=milestone%3A1.1.0+is%3Aclosed
--------------------------------------------------------------------------------
Version 1.0.0 (2014-01-06)
--------------------------------------------------------------------------------
========
Features
========
- When a new game is started, it is now possible to select one of several ko
rules. Simple ko remains the default, new choices are positional and
situational superko (#169).
- When a new game is started, it is now possible to select whether area or
territory scoring should be in effect (#30). Area scoring is the default
because the computer player (Fuego) does not properly support territory
scoring.
- During scoring it is now possible to mark stones in seki (#190). Tap the
"Actions" button to find the menu entry that lets you switch from
"mark dead stones" to "mark stones in seki".
- It is now possible to display player influence, aka territory statistics,
for an estimate who owns an area (#18). The feature can be enabled under
"Settings > Display > Display player influence".
==============================
Other improvements and changes
==============================
- Some of the sections on the "Settings" tab have been re-organized (#132)
- Attempting to play an illegal move now displays the reason why the move is
illegal (#182). Examples are suicide, ko or superko.
- When a new game is started and a handicap is selected, komi is adjusted
automatically to 0.5 (#189)
- The computer player's strength has improved because a new version of Fuego
has been integrated into Little Go. It is not possible to quantify the
improvement against human opponents, but if the new and the old versions of
Fuego play against each other, the new version wins 80% - 90% of the games.
- Use pattern-based additive knowledge on devices with more than 512 MB memory
(#187).
========
Bugfixes
========
- iOS 7: The app no longer crashes on startup after a game has been imported
from an external app such as Mail or DropBox (#184)
- The app no longer crashes when game is loaded while "Game Info" screen is
displayed (#191)
- The app no longer hangs after launch if it was previously suspended/killed
during scoring (#203)
- The maximum zoom scale has been reduced to 2.0 for iPad devices, and to 2.5
for iPhone devices (#202). The previous maximum zoom scale 3.0 was too high,
causing crashes on most devices.
- The next stone marker "A" is no longer displayed after all moves have been
discarded (#200)
- The "Start of the game" board position table view cell no longer has a wrong
background color (#199)
- The "Delete all games" button on the "Archive" tab is no longer affected by
edit mode (#185)
- A sliding gesture no longer puts the entire "Players & Profiles" screen into
edit mode (#175)
- A number of memory leaks were fixed (#188 and other, smaller fixes)
=================
Technical changes
=================
- The project has been upgraded to Xcode 5.0 (#183)
- Support for iOS 5 has been dropped, the minimum required version is now
iOS 6.1 (#198). Devices that are no longer supported are iPad 1st generation
and iPod Touch 3rd generation.
- The 3rd party software build process has been completely rewritten (#92)
- All 3rd party software have been upgraded to newest versions
(Fuego trunk r1728, Boost 1.55.0, MBProgressHUD 0.8, Cocoa Lumberjack 1.7.0,
ZipKit 1.0.2, QuincyKit 2.1.9)
--------------------------------------------------------------------------------
Version 0.12.0 (2013-09-09)
--------------------------------------------------------------------------------