# Changelog All notable changes to the protowhat project will be documented in this file. ## 2.1.0 - Support Python version 3.9 - Update dependencies to up-to-date versions ## 2.0.1 - Expose `prepare_validation` from `protowhat.checks` ## 2.0.0 - Refactor SCT syntax to be an execution graph and enable derived features - Split SCT syntax and SCT context code - Refactor exceptions to share an interface to simplify logic - Refactor feedback to be centralized and built from formalized components - Add support for embedding xwhats - Add `prepare_validation` helper for checking bash history - Add autodebug (`_debug` will be invoked automatically for instructor errors) ## 1.14.1 - Fix final feedback message after append_messsage(s) from having duplicate information ## 1.14.0 - Add (default off) append_message functionality to check_node, check_edge and has_eqaul_ast ## 1.13.0 - Add include_head option to Selector ## 1.12.0 - Add messaging helpers ## 1.11.2 - Proper handling of `ast.get_text` returning `None` in `has_code` ## 1.11.1 - Handle highlight position absence (in combination with `antlr-ast` v0.7.0) ## 1.11.0 - Add bash history SCTs - Add `State.is_root` property - Return file path in feedback if set ## 1.10.0 - Pass file path to SCT chain after `check_file` ## 1.9.0 - Add `allow_errors` ## 1.8.2 - Support unicode when checking files - Fix disabling parsing file content ## 1.8.0 - `Feedback` doesn't need to be subclassed in depending SCT libraries. - `_debug` now has an `on_error` argument which can be set to `True` to show debugging info on the next failure or before finishing. - No NumPy dependency - Simplified `State.report` ## 1.7.0 This release improves the base functionality for all depending SCT libraries. - Add `_debug` SCT introspection function - Add `State.parent_state` and `State.state_history` as a general state linking mechanism (using `State.creator`) - Add `TestRunner` and `TestRunnerProxy` and make `Reporter` a `TestRunnerProxy` - Add AST and text offset support in `Runner` - Improve `Dispatcher`, `Feedback` and `Test` interfaces ## 1.6.0 This release enables protowhat to be the base for pythonwhat. - `do_test` now runs a `Test` as in pythonwhat, instead of accepting a feedback string. - the explicit Fail subclass should be used instead of relying on the old default implementation of `Test` - the `report(feedback: Feedback)` method on the `State` class reintroduces a short way to gather exercise feedback, equivalent to `do_test(Fail(Feedback(msg)))`, while also setting highlight info. - the `legacy_signature` decorator enables to call a function using old argument names when they are passed as keyword arguments - AST utils to dump and load a tree structure to be used in e.g. dispatching are improved ## 1.5.0 - Update parsing class interface for compatibility with antlr-ast - Support finding dynamic nodes in AST tree (instead of just custom defined nodes) - Change `ckeck_edge` default value of `index` argument from `None` to `0` - This is done to break less content - Now: explicitly define the value of the `index` argument - Later: revert default change and remove unnecessary explicit setting of the `index` argument ## 1.4.0 - Refactor based on refactor in `antlr-ast>=0.4.1`, `antlr-plsql>=0.7.0` and `antlr-tsql>=0.11.0` ## 1.3.0 - Support `force_diagnose` State option to force passing `diagnose` tests in `check_correct`. ## 1.2.0 - Update to work with new ANTLR library versions ## 1.1.2 - Fix in `has_code()` that was causing issues in some cases. ## 1.1.1 - Maintenance on docs. ## 1.1.0 - Update argument names and argument defaults for file-related checks. ## 1.0.2 - Re-exposing the `state_dec` object in the SCT context so it can be used by `shellwhat_ext` and `sqlwhat_ext`. ## 1.0.1 - In `shellwhat`, it is possible that `_msg` is None after calling `state.ast_dispatcher.describe`. This is now handled by including a default message for `_msg`. ## 1.0.0 **Contains breaking changes!** ### Added - More tests - `State` now has functionality to stack messages in an array, so you can prepend messages from earlier `check` functions, similar to `pythonwhat` (using Jinja) ### Changed - `check_field` renamed to `check_edge`. - `test_student_typed` renamed to `has_code`. - `test_or`, `test_correct` and `test_not` renamed to `check_or`, `check_correct` and `check_not`. - `has_equal_ast` messaging improved (more suggestive). - `check_node` and `check_edge` mesaging improved (more suggestive). - `has_equal_ast` argument names and defaults changed. - The way the reporter raises errors has been improved, allowing for interactive experimentation with SCT functions in the future and easier testing. - Error handling in the reporter has been cleaned up ### Removed - Most of the AST-related documentation has been moved to `sqlwhat`.