{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# INSTALL\n", "Installing `JupyterLibrary` will bring along Robot Framework and SeleniumLibrary. Jupyter components, like `notebook`, `jupyterlab` and `nteract_on_jupyter`, and browser executors (e.g. `chromedriver`, `geckodriver`) and various utilities (e.g. `nodejs`) are up to you, depending on what you want to test. Here are some examples." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## `pip`\n", "```bash\n", "pip install robotframework-jupyterlibrary\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## `mamba`\n", "```bash\n", "mamba install -c conda-forge robotframework-jupyterlibrary\n", "```\n", "\n", "> _`conda` also works, usually, but `mamba` is both faster and provides better error messages **when** things go wrong_." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## `main`\n", "`JupyterLibrary` is under active development, and is heavily invested in the `conda` ecosystem, and related tools and `mamba` and `conda-lock`, because of the complexity of managing browser execution dependencies. But `conda` and `mamba` (rightly) make it hard to install _Random Repos from the Internet_, so you'll need a bit of `pip`, too.\n", "\n", "Start with a sensible, activated `base` like [Mambaforge](https://conda-forge.org/miniforge/). Mixing the `miniconda` or `anaconda` distributions' `defaults` (e.g. `anaconda.com` is a recipe for disaster, and may violate the terms of service).\n", "\n", "Here's a complete setup:\n", "\n", "```shell\n", "mamba create \\\n", " # using `--prefix=.venv` is also useful for having predictable file locations, but can confuse IDEs\n", " --name testing-jupyter \\\n", " --channel conda-forge \\ \n", " # CPython 3.8+ required, not tested with pypy, or (near) end-of-life CPython \n", " python=3 \\\n", " jupyterlab \\\n", " robotframework-seleniumlibrary \\\n", " geckodriver \\\n", " # using a Long Term Support (LTS) Firefox is useful for avoiding \"only works in Chrome\"\n", " firefox\n", "```\n", "\n", "Activate the environment:\n", "\n", "```shell\n", "source activate testing-jupyter\n", "```\n", "\n", "Install \"hot\" dependencies:\n", "\n", "```shell\n", "pip install \\\n", " # don't want any \"surprises\"\n", " --no-deps \\\n", " # just to be sure\n", " --ignore-installed \\ \n", " git+http://github.com/robots-from-jupyter/robotframework-jupyterlibrary\n", "```" ] }, { "cell_type": "markdown", "metadata": { "tags": [ "remove-input" ] }, "source": [ "```{include} ../CONTRIBUTING.md\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Appendix: Current `doit` tasks\n", "\n", "`doit` is used heavily in development and continuous integration." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "tags": [ "remove-input" ] }, "outputs": [], "source": [ "!python ../dodo.py list --all" ] } ], "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" }, "nteract": { "version": "nteract-on-jupyter@0.35.4" } }, "nbformat": 4, "nbformat_minor": 4 }