Skip to content

Releases: chesskit-app/chesskit-swift

ChessKit 0.13.0

03 Oct 22:05
b90faac
Compare
Choose a tag to compare
ChessKit 0.13.0 Pre-release
Pre-release

New Features

  • BoardDelegate now notifies when king is in check, and provides the color of the checked king, see Issue #38.
  • Move.checkState and Move.disambiguation are now publicly accessible, see Issue #38.

Technical Changes

  • Enable Swift 6 language mode package-wide.
  • Game and MoveTree are now Sendable types.

Full Changelog: 0.12.1...0.13.0

ChessKit 0.12.1

11 Sep 20:30
5e982e8
Compare
Choose a tag to compare
ChessKit 0.12.1 Pre-release
Pre-release

Bug Fixes

  • Fix MoveTree.fullVariation(for:) returning blank array when .minimum is passed as the index.
    • If this index is passed, it will automatically start from the next (valid) index and return the moves for that index.
    • In practice this will mean the main variation will be returned (starting from white's first move).

Full Changelog: 0.12.0...0.12.1

ChessKit 0.12.0

21 Aug 17:22
9bdb462
Compare
Choose a tag to compare
ChessKit 0.12.0 Pre-release
Pre-release

Improvements

  • Conform more types to Hashable such as Game and MoveTree.
  • Game.Tag now publicly exposes name.
  • Game.Tags is now Hashable and Sendable.

Full Changelog: 0.11.0...0.12.0

ChessKit 0.11.0

06 Aug 01:45
3c8e1b8
Compare
Choose a tag to compare
ChessKit 0.11.0 Pre-release
Pre-release

New Features

  • A draw result is now published by BoardDelegate when the board encounters a threefold repetition (by @joee-ca).
  • Convenience directional properties added to Square such as up, down, left, and right to obtain squares in relation to the given Square.

Bug Fixes

  • File.init(_ number: Int) now correctly bounds invalid values.
    • i.e. Values less than 1 become File.a and values greater than 8 become File.h.

Technical Changes

  • Test coverage has been improved.
  • Parsers (EngineLANParser, FENParser, PGNParser, SANParser) have been converted from classes to caseless enums.
    • This should have no effect on existing code since the class versions had private initializers.

Full Changelog: 0.10.0...0.11.0

ChessKit 0.10.0

21 Jun 20:14
cf39da1
Compare
Choose a tag to compare
ChessKit 0.10.0 Pre-release
Pre-release

Improvements

  • Update tools version to Swift 5.9 (requires Xcode 15.0 or greater).
  • Conform to Swift strict concurrency and add Sendable conformance to most objects

Breaking Changes

  • Game is now a struct and no longer conforms to ObservableObject.
    • If observation semantics are required, consider using didSet property observers or an object that utilizes the @Observable macro.

Full Changelog: 0.9.0...0.10.0

ChessKit 0.9.0

15 Jun 18:27
ef0523d
Compare
Choose a tag to compare
ChessKit 0.9.0 Pre-release
Pre-release

Improvements

  • MoveTree now conforms to BidirectionalCollection, allowing for more standard collection-based semantics in Swift.
    • Should not affect any existing functionality or API usage.
    • Several methods on MoveTree have been deprecated in favor of their Collection counterparts:
      • previousIndex(for:)index(before:) / hasIndex(before:)
      • nextIndex(for:)index(after:) / hasIndex(after:)
      • move(at:)subscript(_:) (e.g. tree[index])
  • MoveTree.annotate() now optionally returns the Move object after annotation.
  • MoveTree.path() now returns tuple with named parameters (direction and index).

Bug Fixes

  • Removed CustomDebugStringConvertible conformance from Bitboard to avoid affecting all UInt64 debug prints.
    • To print the string representation of Bitboard use Bitboard.chessString().

Full Changelog: 0.8.0...0.9.0

ChessKit 0.8.0

07 Jun 14:22
dd6eb04
Compare
Choose a tag to compare
ChessKit 0.8.0 Pre-release
Pre-release

Improvements

  • Add support for draw by insufficient material (by @joee-ca).
    • Once this condition is reached .draw(.insufficientMaterial) will be published via the BoardDelegate.didEnd(with:) method.
  • Add unicode variant selector when printing black pawn icon to avoid displaying emoji (by @joee-ca).

Bug Fixes

  • Fix issue where king could castle through other pieces (by @TigranSaakyan).

New Contributors

Full Changelog: 0.7.1...0.8.0

ChessKit 0.7.1

07 May 02:16
445d1fd
Compare
Choose a tag to compare
ChessKit 0.7.1 Pre-release
Pre-release
  • Fix MoveTree.previousIndex(for:) when provided index is one after minimumIndex.

Full Changelog: 0.7.0...0.7.1

ChessKit 0.7.0

30 Apr 02:41
46befc2
Compare
Choose a tag to compare
ChessKit 0.7.0 Pre-release
Pre-release

Improvements

  • Add startingIndex and startingPosition to Game.
    • startingIndex takes into account the sideToMove of startingPosition.

Bug Fixes

  • Fix rare en passant issue that could allow the king to be left in check, see Issue #18.

New Contributors

Full Changelog: 0.6.0...0.7.0

ChessKit 0.6.0

20 Apr 00:55
3efd7e0
Compare
Choose a tag to compare
ChessKit 0.6.0 Pre-release
Pre-release

Improvements

  • Enable chesskit-swift to run on oldest platform possible without code changes.
    • Now works on iOS 13+, macOS 10.15+, tvOS 13+, watchOS 6+.
  • Annotations on moves in the MoveTree can now also be updated via Game.annotate(moveAt:assessment:comment:).

Bug Fixes

  • Fix MoveTree not properly publishing changes via Game.
  • Fix Board.EndResult.repetition spelling.
    • This isn't made available yet but will be implemented in an upcoming release.

Full Changelog: 0.5.0...0.6.0