# HG changeset patch
# User Vincent Hatakeyama <vincent.hatakeyama@xcg-consulting.fr>
# Date 1595509507 -7200
#      Thu Jul 23 15:05:07 2020 +0200
# Node ID 0c5427adec0e505090a49c77ab7622a40611f6cf
# Parent  40b53081d745b3387b64c5444f1b9f5bbeac2dfc
✨ install pdb++ in image, and 🔨 use it by default

diff --git a/NEWS.rst b/NEWS.rst
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -13,6 +13,8 @@
 
 Fix issue with flake8 call not using :file:`setup.cfg` preferences; it was called from another directory.
 
+Default to pdb with pdb++ instead of ipdb. New option ``--ipdb`` to run ipdb instead if wanted.
+
 4.0
 ---
 
diff --git a/odoo_scripts/docker_build.py b/odoo_scripts/docker_build.py
--- a/odoo_scripts/docker_build.py
+++ b/odoo_scripts/docker_build.py
@@ -158,6 +158,8 @@
                 myfile.write(
                     "python3-watchdog python3-ipdb python3-pyinotify\n"
                 )
+                # Install pdb++
+                myfile.write("RUN pip3 install pdbpp\n")
             elif odoo_type in ("odoo10",):
                 myfile.write("python-ipdb\n")
                 myfile.write(
diff --git a/odoo_scripts/docker_dev_start.py b/odoo_scripts/docker_dev_start.py
--- a/odoo_scripts/docker_dev_start.py
+++ b/odoo_scripts/docker_dev_start.py
@@ -290,9 +290,16 @@
         dest="host_network",
         default=False,
     )
-    parser.add_argument(
+    dev_option_group = parser.add_mutually_exclusive_group()
+    dev_option_group.add_argument(
         "--no-dev", help="No dev options", action="store_false", dest="dev"
     )
+    dev_option_group.add_argument(
+        "--ipdb",
+        help="Use ipdb rather than pdb",
+        action="store_true",
+        dest="ipdb",
+    )
     parser.add_argument(
         "--load-language",
         help="specifies the languages for the translations you want to be"
@@ -372,6 +379,7 @@
     run_isort = nmspc.isort
     odoo_help = nmspc.odoo_help
     dev = nmspc.dev
+    ipdb = nmspc.ipdb
     restore_filename = nmspc.DUMP
     database = nmspc.database
     load_language = ""
@@ -787,8 +795,11 @@
 
     if dev:
         if odoo_type in ("odoo10", "odoo11", "odoo13"):
-            # ipdb should not be run if not interactive
-            arg.append("--dev=reload,ipdb")
+            # pdb should not be run if not interactive
+            if ipdb:
+                arg.append("--dev=reload,ipdb")
+            else:
+                arg.append("--dev=reload,pdb")
         if odoo_type in ("odoo8",):
             arg.append("--auto-reload")
     if odoo_help: