{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# HISTORY"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 0.5.0a0\n",
    "\n",
    "| Products under test         | Versions              |\n",
    "|-----------------------------|-----------------------|\n",
    "| Python                      | `3.8.16`<br/>`3.11.3` |\n",
    "| CodeMirror                  | `5`<br/>`6`           |\n",
    "| Robot Framework             | `5.0.1`<br/>`6.0.2`   |\n",
    "| Jupyter Notebook            | `6.5.4`<br/>`7.0.0b3` |\n",
    "| JupyterLab                  | `3.6.4`<br/>`4.0.1`   |\n",
    "| Jupyter Server              | `2.6.0`               |"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 0.4.3\n",
    "\n",
    "| Products under test         | Versions                          |\n",
    "|-----------------------------|-----------------------------------|\n",
    "| Python                      | `3.7.12`<br/>`3.10.6`<br/>`3.11.0` |\n",
    "| Robot Framework             | `4.1.3`<br/>`6.0.1` |\n",
    "| Jupyter Notebook Classic    | `6.5.2`                           |\n",
    "| JupyterLab                  | `1.2.21`<br/>`2.3.2`<br/>`3.5.2`  |\n",
    "| Jupyter Server              | `1.21.0`<br/>`1.23.4`<br/>`2.0.6` |"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 0.4.2\n",
    "\n",
    "| Products under test         | Versions                          |\n",
    "|-----------------------------|-----------------------------------|\n",
    "| Python                      | `3.7.12`<br/>`3.10.6`<br/>`3.11.0` |\n",
    "| Robot Framework             | `4.1.3`<br/>`6.0.1` |\n",
    "| Jupyter Notebook Classic    | `6.5.2`                           |\n",
    "| JupyterLab                  | `1.2.21`<br/>`2.3.2`<br/>`3.5.2`  |\n",
    "| Jupyter Server              | `1.21.0`<br/>`1.23.4`<br/>`2.0.6` |\n",
    "\n",
    "- supports `robotframework` 6\n",
    "- drops support for `robotframework` 3\n",
    "- tests `jupyter_server` 2\n",
    "  - to account for some deprecations, the _app name_ may need to be set\n",
    "    when starting a managed Jupyter/notebook server\n",
    "  - the new keywords `Set Default Jupyter App` and `Get Jupyter App Name`\n",
    "    allow for changing auto-detection based on CLI command\n",
    "  - an environment variable `%{JUPYTER_LIBRARY_APP}` (_default_: `NotebookApp`)\n",
    "    can be set to `ServerApp` for when combinations of `notebook`,\n",
    "    `nbclassic`, `jupyter_server` and `jupyterlab` break autodetection.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 0.4.1\n",
    "\n",
    "| Products under test         | Versions                 |\n",
    "|-----------------------------|--------------------------|\n",
    "| Jupyter Notebook Classic    | `6.5.1`                    |\n",
    "| JupyterLab                  | `1.2.21`<br/>`2.3.2`<br/>`3.4.8`     |\n",
    "\n",
    "- `selenium` 4.5 is now supported\n",
    "  - `Get WebElements Relative To` (and the singular) are now available as keywords\n",
    "- `%%robot` magic ignores `--pretty` if `robot.tidy` is unavailable\n",
    "- Some keywords now have type hints."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 0.4.0\n",
    "\n",
    "| Products under test         | Versions                 |\n",
    "|-----------------------------|--------------------------|\n",
    "| Jupyter Notebook Classic    | `6.4.6`                    |\n",
    "| JupyterLab                  | `1.2.21`<br/>`2.3.2`<br/>`3.2.5` |\n",
    "\n",
    "\n",
    "| Products under review         | Versions                 |\n",
    "|-----------------------------|--------------------------|\n",
    "| Retrolab                  | `0.3.13` |\n",
    "| Voila                  | `0.3.0` |\n",
    "\n",
    "- Kernel launcher keywords are more lax to account for more-spefic names, e.g. `Python 3 (ipykernel)`\n",
    "- Put all robot source code under formatting/linting by [robotidy] and [robocop]\n",
    "- The minimum Python has been raised to 3.7, replacing the now-EOL Python 3.6 in the test matrix\n",
    "- Python 3.10 replaces Python 3.8 in the CI test matrix\n",
    "\n",
    "[robotidy]: https://github.com/MarketSquare/robotframework-tidy\n",
    "[robocop]: https://github.com/MarketSquare/robotframework-robocop"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 0.3.1\n",
    "\n",
    "| Products under test         | Versions                 |\n",
    "|-----------------------------|--------------------------|\n",
    "| Jupyter Notebook Classic    | `6.3.0`                    |\n",
    "| JupyterLab                  | `1.2.16`<br/>`2.3.1`<br/>`3.0.14` |\n",
    "\n",
    "\n",
    "| Products under review         | Versions                 |\n",
    "|-----------------------------|--------------------------|\n",
    "| JupyterLab Classic                  | `0.1.10` |\n",
    "| Voila                  | `0.2.9` |\n",
    "\n",
    "- Several JupyterLab keywords now accept an `${n}` argument to handle multiple documents on the page.\n",
    "- Many JupyterLab keywords that wait for certain events can be configured with `${timeout}` and `${sleep}` to suit.\n",
    "- Properly pass library initialization options to `SeleniumLibrary`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 0.3.0\n",
    "\n",
    "| Products under test         | Versions                 |\n",
    "|-----------------------------|--------------------------|\n",
    "| Jupyter Notebook Classic    | `6.1.5`                    |\n",
    "| JupyterLab                  | `1.2.16`<br/>`2.2.9`<br/>`3.0.0rc10` |\n",
    "\n",
    "- Require SeleniumLibrary 4.5 and RobotFramework 3.2\n",
    "- Expanded support for newer Notebook Classic and JupyterLab versions in keywords\n",
    "- Dropped support for `nteract_on_jupyter`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 0.2.0\n",
    "- Require SeleniumLibrary 3.3.0 and remove backport of `Press Keys`\n",
    "- `Start New Jupyter Server` now has a default `command` of `jupyter-notebook` (instead of `jupyter`)\n",
    "- `Build Jupyter Server Arguments` no longer returns `notebook` as the first argument\n",
    "- Fix homepage URL for PyPI\n",
    "- Test on Chrome/Windows"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 0.1.0\n",
    "- Initial Release"
   ]
  }
 ],
 "metadata": {
  "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.11.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
