diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs
new file mode 100644
index 0000000000000000000000000000000000000000..e2b7222e01f1f04dc55d15852d5f9c8d8ef8a521
--- /dev/null
+++ b/.git-blame-ignore-revs
@@ -0,0 +1,41 @@
+# format (Guilhem Saurel, 2022-04-11)
+a6aa4f4b6cf0a1857fba3075566745dbf4c22e18
+
+# pre-commit clean (Guilhem Saurel, 2022-04-01)
+3ff105e250d5f984d5200a52c2791263be96da5d
+
+# update tooling (Guilhem Saurel, 2022-03-31)
+d27092f3d16c077b70216e47635d1d29247a5dde
+
+# format (Rohan Budhiraja, 2022-03-31)
+98c7ea06d36d670e6d1f6377b2728e33540af4c7
+
+# update python format (Guilhem Saurel, 2022-02-17)
+4dba3f86c0a96379fa479e8b768d315daca70bc2
+
+# Address python code formatting (Julian Viereck, 2021-06-14)
+c3e1dffe22d450e5301d4f7801a14974286d7c61
+
+# format (Guilhem Saurel, 2021-05-26)
+2abddbc5c3833379bace126ab7cb0a07f1addaff
+
+# [cleanup] Fixed code format (Carlos Mastalli, 2021-05-04)
+c89f2524bf9b1a76ec29b99910caea641c1b2496
+
+# python: format (Guilhem Saurel, 2020-10-13)
+2f6b85c741b981d90185e25845a4614a7a97e98b
+
+# [Format] fix linters (Guilhem Saurel, 2019-08-28)
+9f92ecdf27449c8404bce0d5756fa65ab1a4912c
+
+# [format] Formatted the robot_loader script (Carlos Mastalli, 2019-08-28)
+34d3182c9ee99568706921f3e94c5fdd75254c17
+
+# [format] Fixed further errors in the code (Carlos Mastalli, 2019-04-16)
+9ce3cc472c367373812b3401a8efbc85094f8423
+
+# [format] Added format configuration (Carlos Mastalli, 2019-04-16)
+5c6492c035e9f98c686dc8859af1ae0fe56b2b60
+
+# [format] Fixed format issues (Carlos Mastalli, 2019-04-16)
+be1a995b9683a9989755c9a5be8676d82a4589bc
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index c3431968276606d4f3a491d101622a93e5981b11..c87eda336302f3eb155d93b6ab943e1b2dba7a29 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,3 +1,5 @@
+ci:
+    autoupdate_branch: 'devel'
 exclude: tests/test_python-syntax_error.py
 repos:
 -   repo: https://github.com/pre-commit/mirrors-clang-format
diff --git a/python/example_robot_data/robots_loader.py b/python/example_robot_data/robots_loader.py
index 5eda2af0b96badc8583a548c04bfd87b3203d844..a4d7b620b13fc589c8a8c43d22aeb663f9bf04bb 100644
--- a/python/example_robot_data/robots_loader.py
+++ b/python/example_robot_data/robots_loader.py
@@ -11,23 +11,20 @@ pin.switchToNumpyArray()
 def getModelPath(subpath, printmsg=False):
     source = dirname(dirname(dirname(__file__)))  # top level source directory
     paths = [
-        join(
-            dirname(dirname(dirname(source))), "robots"
-        ),  # function called from "make release" in build/ dir
-        join(
-            dirname(source), "robots"
-        ),  # function called from a build/ dir inside top level source
-        join(source, "robots"),  # function called from top level source dir
+        # function called from "make release" in build/ dir
+        join(dirname(dirname(dirname(source))), "robots"),
+        # function called from a build/ dir inside top level source
+        join(dirname(source), "robots"),
+        # function called from top level source dir
+        join(source, "robots"),
     ]
     try:
         from .path import EXAMPLE_ROBOT_DATA_MODEL_DIR, EXAMPLE_ROBOT_DATA_SOURCE_DIR
 
-        paths.append(
-            EXAMPLE_ROBOT_DATA_MODEL_DIR
-        )  # function called from installed project
-        paths.append(
-            EXAMPLE_ROBOT_DATA_SOURCE_DIR
-        )  # function called from off-tree build dir
+        # function called from installed project
+        paths.append(EXAMPLE_ROBOT_DATA_MODEL_DIR)
+        # function called from off-tree build dir
+        paths.append(EXAMPLE_ROBOT_DATA_SOURCE_DIR)
     except ImportError:
         pass
     paths += [join(p, "../../../share/example-robot-data/robots") for p in sys.path]
diff --git a/unittest/test_load.py b/unittest/test_load.py
index e650bdce0b57971c2b255dacb9dc5bec9d3d8910..7e1d4150e910ba4bac958da4214f46776976b42b 100755
--- a/unittest/test_load.py
+++ b/unittest/test_load.py
@@ -50,7 +50,8 @@ class RobotTestCase(unittest.TestCase):
         except ImportError:
             import pinocchio
 
-            self.assertLess(int(pinocchio.__version__.split(".")[0]), 3)
+            pin_version = tuple(int(i) for i in pinocchio.__version__.split("."))
+            self.assertLess(pin_version, (2, 9, 1))
 
     def test_double_pendulum(self):
         self.check("double_pendulum", 2, 2)