{ "cells": [ { "cell_type": "markdown", "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false }, "slideshow": { "slide_type": "slide" } }, "source": [ "# Release Notes for The Debugging Book\n", "\n", "This book comes with version numbers; these correspond to the version numbers in [the Python pip package](Importing.ipynb)." ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Current Version (in progress)\n", "\n", "This is the version we are preparing for the next release (e.g. what you get when you check out the latest version from [the GitHub repo](__GITHUB_HTML__)).\n", "Major changes will show up here as we make them.\n", "\n", "* In notebooks under Python 3.12, automatic garbage collection would cause a method `_clean_thread_parent_frames()` to be executed with certain functions, interfering with tracing and dynamic analysis. This is now disabled." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Version 1.3.2 (also released 2025-01-16)\n", "\n", "* More minor fixes to [Learning from Failures](Alhazen.ipynb), thanks to Laura Plein" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Version 1.3.1 (released 2025-01-16)\n", "\n", "* Set up such that manual installation of `showast` is no longer required\n", "* Minor fixes to [Learning from Failures](Alhazen.ipynb), thanks to Laura Plein" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Version 1.3 (released 2025-01-13)\n", "\n", "* New chapter on [Learning from Failures](Alhazen.ipynb), joining machine learning and debugging\n", "* Updates to `requirements.txt`, using the latest and greatest third-party modules\n", "* Python 3.9 is no longer supported.\n", "\n", "Note that after installation via `pip`, you may have to install our updated `showast` module:\n", "\n", "```shell\n", "$ pip install 'showast@git+https://github.com/andreas-zeller/show_ast.git@andreas'\n", "```" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Version 1.2.3 (released 2024-11-09)\n", "\n", "* Work around an error in the `showast` module, occurring in notebooks running Python 3.12 and later" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Version 1.2.2 (released 2023-11-13)\n", "\n", "* Importing book classes from third-party code would accidentally set a fixed random seed, making all further random decisions deterministic (i.e. produce the same result every time). This is now fixed.\n", "* Minor updates to Python package requirements." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Version 1.2.1 (released 2023-10-24)\n", "\n", "* This version fixes a typo in the `setup.py` requirements." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "\n", "## Version 1.2 (released 2023-10-24)\n", "\n", "* For announcements, we now use Mastodon ([@TheDebuggingBook@mastodon.social](https://mastodon.social/@TheDebuggingBook)) instead of X. Follow us on Mastodon!\n", "* We fixed several typos throughout the book, using the awesome [LTeX](https://github.com/valentjn/vscode-ltex) grammar/spell checker.\n", "* Regular tests ensure that the code runs on Python 3.9, 3.10, 3.11, and 3.12." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Version 1.1.2 (released 2023-01-03)\n", "\n", "* More fixes in `DynamicInvariants`, now allowing access to functions defined outside the current module\n", "* Minor improvements to build system and static type checkers\n", "* Updated `ChangeCounter` to work with recent `PyDriller` versions" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Version 1.1.1 (released 2023-01-02)\n", "\n", "* Class diagrams are now simplified, as we skip non-public methods defined in other chapters.\n", "* Fixed an error in `Slicer`, reporting an unused variable `_data`.\n", "* Fixed an error in `DynamicInvariants`, reversing the order of function arguments in mined invariants\n", "* Made browser header colors reflect menu colors." ] }, { "cell_type": "markdown", "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false }, "slideshow": { "slide_type": "slide" } }, "source": [ "## Version 1.1 (released 2021-10-14)\n", "\n", "* We now support (but also require) Python 3.9 or later. Earlier versions still required Python 3.6 due to some outdated modules such as `astor` and `enforce` we depended upon (and now don't anymore).\n", "* We made an optimization in `DeltaDebugger.dd()` to distribute changes more evenly over the input space. This will change `dd()` results in some cases, but overall improve performance. Thanks to Olad Chitil and Joanna Sharrad for reporting this!\n", "* We fixed two [issues in DeltaDebugger.dd()](https://github.com/uds-se/debuggingbook/commit/95ab3117372bff459eede743e57cf974a9d022c4), specifically \n", "[#45](https://github.com/uds-se/debuggingbook/issues/45) and [#46](https://github.com/uds-se/debuggingbook/issues/46). Thanks to @TheSilvus for reporting this!\n", "* We added missing dependencies to the debuggingbook pip package (Issue [#44](https://github.com/uds-se/debuggingbook/issues/44)) such that `pip install debuggingbook` also installs all the packages it depends upon. Thanks to @TheSilvus for reporting this!\n", "* We fixed a warning '.gitignore is a symbolic link' during git checkout ([Issue #43](https://github.com/uds-se/debuggingbook/issues/43)) Thanks to @rjc for reporting this!" ] }, { "cell_type": "markdown", "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false }, "slideshow": { "slide_type": "slide" } }, "source": [ "## Version 1.0.1 (released 2021-06-08)\n", "\n", "* Typos and other minor fixes." ] }, { "cell_type": "markdown", "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false }, "slideshow": { "slide_type": "slide" } }, "source": [ "## Version 1.0 (released 2021-06-01)\n", "\n", "* First complete version." ] }, { "cell_type": "markdown", "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false }, "slideshow": { "slide_type": "slide" } }, "source": [ "## Version 0.9.0 (released 2021-10-23)\n", "\n", "* Initial beta version." ] } ], "metadata": { "ipub": { "bibliography": "fuzzingbook.bib", "toc": true }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.8" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": true, "title_cell": "", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": true }, "toc-autonumbering": false }, "nbformat": 4, "nbformat_minor": 4 }