Revision history for Games-Solitaire-Verify

0.2600  2024-01-31
        - Convert to support the ASCIIfied output of
        Games::Solitaire::BlackHole::Solver version 0.10.0

0.2500  2024-01-31
        - Add support for the "binary_star" variant
            - https://github.com/shlomif/black-hole-solitaire/issues/8
        - Change "\d" to "[0-9]" in regexes
            - https://perl-begin.org/tutorials/bad-elements/#using-character-classes-with-unicode-text

0.2403  2020-05-03
        - Reduce the minimal --severity of Perl-Critic to 1.
            - explicit return values.

0.2402  2020-04-28
        - Add a Perl-Critic check.
        - Refactoring and cleanups.

0.2401  2020-04-27
        - Refactoring and cleanups.

0.2400  2020-04-27
        - Add lib/Games/Solitaire/Verify/App/CmdLine/From_ShirlHartSolver.pm

0.2303  2020-04-22
        - Hyperlink URLs in the documentation.
        - Get rid of old and stale perl-POD sections.

0.2302  2020-04-20
        - Try to Fix "You tried to plan twice" error in t/exception-newline.t .
            - https://github.com/shlomif/fc-solve/issues/39
            - Thanks to SREZIC !

0.2301  2020-04-20
        - Emit trailing newline in Exception::Class errors so the shell
        will not swallow them, and instead display them.

0.2300  2020-03-06
        - Avoid implicit symbol imports
            - https://perl-begin.org/tutorials/bad-elements/#non_explicitly_imported_symbols
        - Convert weaver.ini to @SHLOMIF .

0.2202  2019-07-19
        - Add --help flag.

0.2201  2019-05-19
        - Add tests for some Golf variants.

0.2200  2019-05-15
        - Add POD to lib/Games/Solitaire/Verify/HorneAutomovePrune.pm .
        - Add support for verifying black_hole solutions.

0.2100  2019-04-29
        - Add lib/Games/Solitaire/Verify/Golf.pm and
        lib/Games/Solitaire/Verify/App/Golf.pm .

0.2000  2019-04-04
        - Add lib/Games/Solitaire/Verify/HorneAutomovePrune.pm .

0.1900  2018-08-02
        - Add verify_contents() to ::State and check for initial board sanity
        on the solution.
            - It was an accidental bug/feature.
        - Add the --max-rank flag and options.

0.1800  2018-05-02
        - Add lib/Games/Solitaire/Verify/State/LaxParser.pm .

0.1701  2016-02-28
        - Fix the tests (and the code) of method ->print could not be found in
        IO::Handle/IO::File on older perls.
            - Reported in some CPAN Testers reports.

0.1700  2016-02-26
        - Convert file input to slurping+splitting.
            - This provides a significant (3m05s instead of over 4m)
            speed boost.
        - Some other optimisations.
        - Add Games::Solitaire::Verify::Column->append_cards for faster
        appending.
        - Add Games::Solitaire::Verify::Column->popN for popping multiple
        cards from the top.
        - Add Games::Solitaire::Verify::Card->get_ranks_strings().

0.1601  2015-12-30
        - Fix compatibility with older perls (down to 5.8.9).
            - Several CPAN Tester reports were received.
            - The problem was the /r flag to s///.

0.1600  2015-12-29
        - Alter output to exclude trailing whitespace.
        - Alter input to automatically remove trailing whitespace.
            - These changes are for an upcoming compilation flag in Freecell
            Solver of removing trailing whitespace from output.

0.1500  2015-12-21
        - Remove dependency on MooX::late (and Moo)
        - Some optimizations and cleanups.
        - Removed order prefixes from t/*.t files.

0.1400  2014-11-08
        - Convert to Dist-Zilla
        - Add lib/Games/Solitaire/Verify/App/CmdLine/From_Patsolve.pm and
        convert-patsolve-to-fc-solve-solution
        - Add lib/Games/Solitaire/Verify/Solution/ExpandMultiCardMoves/Lax.pm

0.1300  2014-05-16
        - Some optimizations after noticing that validating the solutions
        of the whole Microsoft Freecell 32K was time consuming.
        - Add examples/benchmark.pl which can be used to benchmark (requires
        the fc-solve distribution in the path).

0.1203  2014-01-30
        - Add LICENSE (as well as COPYING) for CPANTS Kwalitee.
        - Minimum version of perl is 5.8.0 (CPANTS Kwalitee).

0.1202  2013-10-19
        - Update the contact information (it contains an old E-mail.).

0.1201  2013-06-28
        - Add $VERSION to some .pm files that missed it.
            - The PAUSE indexer warned about that.
        - Convert from 'use base' to 'use parent'.

0.1200  2013-06-28
        - Add support for flipped cards to ::Card .
        - Add lib/Games/Solitaire/Verify/KlondikeTalon.pm .
        - Add script/play-and-verify-klondike - it is a work-in-progress
        script used to play the solutions provided by
        https://github.com/ShootMe/KlondikeSolver (also see my fork of it
        at https://github.com/shlomif/KlondikeSolver ), verify them and
        display them in a more user-friendly manner.
        - Add t/cpan-changes.t

0.1103  2013-01-17
        - Update Build.PL (configure_requires + repository link).

0.1102  2012-09-10
        - Add lib/Games/Solitaire/Verify/App/CmdLine/Expand.pm to the
        distribution.
            - This caused script/expand-solitaire-multi-card-moves to
            fail.

0.1101  2012-09-07
        - Add strict, warnings and autodie to requires/build_requires.
            - See for example: http://www.cpantesters.org/cpan/report/52b7a6ba-f548-11e1-bdcc-373e3b6b8117

0.1100  2012-08-31
        - Add lib/Games/Solitaire/Verify/Solution/ExpandMultiCardMoves.pm
        for processing a solution and expanding multi-card (= column) moves
        into single-card moves, which are easier to validate by human players.
            - Now tested using t/08-expand-solution.t
            - Added script/expand-solitaire-multi-card-moves .

0.1001  2012-08-23
        - Add the color_for_suit method to ::Card .
        - Remove trailing space with t/style-trailing-space.t as a test.

0.1000  2011-11-08
        - Add the script/tag-release.pl to tag a release in Subversion.
        - Add script/bump-version-number.pl .
        - lib/Games/Solitaire/Verify/Card.pm :
            - Add the id() slot.
            - Add the data() slot.
        - lib/Games/Solitaire/Verify/State.pm :
            - Add the add_column method.
            - Add the set_foundations() method.
            - Add the set_freecells() method.
        - lib/Games/Solitaire/Verify/State.pm :
            - Fix cloning of states with a "custom" variant and with
            variant_params.

0.0901  2011-06-02
        - Now importing Dumper from Data::Dumper properly.

0.09    2010-07-10
        - Converted from Class-Accessor to Class-XSAccessor (with a function
        emulating mk_accessors for convenience.).
            - This made the test suite run faster.
        - Add the script/verify-solitaire-solution and
        lib/Games/Solitaire/Verify/App/CmdLine.pm .

0.08    2009-07-04
        - Removed the "all rights reserved" language. I was told it is
        incompatible with the MIT/Expat License.
        - Added the COPYING file.

0.07    2009-06-22
        - Added some meta-data (repository, homepage, mailing list and
        keywords) to META.yml.
        - Implemented many missing exceptions.
            - Added tests for some of them.

0.06    2009-05-30
        - Now the module can verify Simple Simon moves and solutions.
            - The support has many loose ends including many non-existent
            exceptions, but it should still yield a true verdict
            if-and-only-if the solution is correct.

0.05    2009-01-24
        - Made sure that when unlimited sequence move takes place, it isn't
        affected by kings_only, etc. I.e: it always allows to move an
        arbitrary number of cards when it is specified.
            - Bug discovered based on this post by larrysan:
            - https://groups.yahoo.com/neo/groups/fc-solve-discuss/conversations/topics/856

0.04    2008-08-07
        - Now verify_and_perform_move in Games::Solitaire::Verify::State
        is returning objects of exception classes, instead of stringified
        errors, to facilitate knowing exactly why the move is invalid.
        - Refactored Games::Solitaire::Verify::State:
            - Extracted methods from verify_and_perform_move
            - Converted to a ->can() dispatch table.

0.03    2008-07-25
        - Added support for more variants of Solitaire, using the
        Freecell Solver-style parameterization:
            - num_freecells
            - num_columns
            - num_decks
            - sequence_move
            - seq_build_by
            - empty_stacks_filled_by
        - Added more support modules:
            - lib/Games/Solitaire/Verify/VariantParams.pm
            - lib/Games/Solitaire/Verify/VariantsMap.pm

0.02    2008-07-10
        - Added another test for a wrong solution.
        - Extracted two classes from Games::Solitaire::Verify::State :
            - lib/Games/Solitaire/Verify/Foundations.pm
            - lib/Games/Solitaire/Verify/Freecells.pm
        - Added List::Util to the "requires" - it was missing.

0.0102  2008-07-10
        - Fixed the script with the absolute path on Makefile.PL
        - Moved bin to script because it's written in pure-Perl.

0.0101  2008-07-09
        - Fixed various bugs:
            - incompatible output between what we had and Freecell Solver
            (trailing whitespace etc.)
            - Added a test assertion for verifying that a wrong solution is
              wrong. (which uncovered the bugs.)
            - Fixed the solution verification logic.

0.01    2008-07-05
        - First version.
        - Can only do Freecell for now, but there's a lot of modularity
        and extensibility infrastrucutre in place.
        - 193 Test Assertions.