diff --git a/.gitignore b/.gitignore
index 55ab6d78711f9af47af0458596f474ba44379676..4b4d03f6c9b93f8aba3a28352c46a78728338e1a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,6 +12,8 @@ dist*/
 *.egg
 sdist/
 wheels/
+wheelhouse/
+aidge_export_arm_cortexm/_version.py
 
 # Environments
 .env
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..960e35ce89c65635b69a736cb6aff224f1e94336
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,23 @@
+###############################################################################
+#                 Aidge Continuous Integration and Deployment                 #
+#                                                                             #
+###############################################################################
+
+stages:
+  - static_analysis
+  - build
+  - test
+  - coverage
+  - release
+  - deploy
+
+include:
+  - project: 'eclipse/aidge/gitlab_shared_files' 
+    ref: 'main'
+    file: 
+      # choose which jobs to run by including the corresponding files.
+      - '.gitlab/ci/ubuntu_python.gitlab-ci.yml'
+      - '.gitlab/ci/release/pip.gitlab-ci.yml'
+      #  Since aidge_onnx is a pure python package building on windows and on ubuntu doesn't differ
+      # - '.gitlab/ci/windows_python.gitlab-ci.yml' 
+
diff --git a/aidge_export_arm_cortexm/__init__.py b/aidge_export_arm_cortexm/__init__.py
index 681245bac492c2fe30eb9f3ad963c424d1f2dcc7..c79216345f7afcefb09abcdfe6ee759cf99622c5 100644
--- a/aidge_export_arm_cortexm/__init__.py
+++ b/aidge_export_arm_cortexm/__init__.py
@@ -4,6 +4,4 @@ Use this module to generate CPP exports for ARM CortexM boards.
 This module has to be used with the Aidge suite
 """
 
-__version__ = "0.0.1"
-
 from .export import *
diff --git a/aidge_export_arm_cortexm/unit_tests/dummy_test.py b/aidge_export_arm_cortexm/unit_tests/dummy_test.py
new file mode 100644
index 0000000000000000000000000000000000000000..a3e971785cadff55bc10601e3f90b066241f87eb
--- /dev/null
+++ b/aidge_export_arm_cortexm/unit_tests/dummy_test.py
@@ -0,0 +1,14 @@
+import unittest
+
+class test_dummy(unittest.TestCase):
+
+    def setUp(self):
+        pass
+    def tearDown(self):
+        pass
+
+    def test_converter(self):
+        self.assertEqual(True , True)
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/pyproject.toml b/pyproject.toml
index b81ff2f5caf2439a5fa8fc66305695aa579bf63b..24672c90261f93e892cf53c6eb1e0a3646eb8ed6 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -13,24 +13,20 @@
 # Installation:
 # For development purposes, you can install the package with: 'pip install .'
 
-[build-system]
-requires = ["setuptools", "wheel"]
-build-backend = "setuptools.build_meta"
-
 # Project settings -----------------------------------------------------------------------------------------------------
 [project]
 name = "aidge_export_arm_cortexm"
-dynamic = ["version"]
 description = "Aidge export for ARM CortexM systems"
 readme = "README.md"
 requires-python = ">=3.7"
 license = { "text" = "Eclipse Public License 2.0 (EPL-2.0)" }
+dynamic = ["version"] # defined in tool.setuptools_scm
 
 # Required dependencies ------------------------------------------------------------------------------------------------
 dependencies = [
-    "numpy",
-    "onnx",    # weights loading
-    "Jinja2"
+    "numpy>=1.21.6",
+    "onnx>=1.16.0",    # weights loading
+    "Jinja2>=3.1.2"
 ]
 
 # Optional dependencies ------------------------------------------------------------------------------------------------
@@ -41,17 +37,31 @@ dev = [
     "pytest-cov",
 ]
 
+[build-system]
+requires = [
+    "setuptools>=64",
+    "wheel",
+    "setuptools_scm[toml]==7.1.0",
+    "cmake>=3.27.9",
+    "toml"
+]
+build-backend = "setuptools.build_meta"
+
+
 [project.urls]
 Homepage = 'https://eclipse-aidge.com'
 Source = 'https://gitlab.eclipse.org/eclipse/aidge/aidge_export_arm_cortexm'
 
 # Tools settings -------------------------------------------------------------------------------------------------------
 [tool.setuptools]  # configuration specific to the `setuptools` build backend.
-packages = { find = { where = ["."], include = ["aidge_export_arm_cortexm", "aidge_export_arm_cortexm.*"] } }
-package-data = { "aidge_export_arm_cortexm" = ["**/*.jinja", "**/*.h", "**/*.hpp", "**/*.c", "**/*.cpp"], "aidge_export_arm_cortexm.boards" = ["**/*"] }
-
-[tool.setuptools.dynamic]
-version = { attr = "aidge_export_arm_cortexm.__version__" }
+package-data = { "aidge_export_arm_cortexm" = ["**/*.jinja", "**/*.h", "**/*.hpp", "**/*.c", "**/*.cpp"],    "aidge_export_arm_cortexm.boards" = ["**/*"]}
+[tool.setuptools.packages.find]
+where = ["."]
+include = ["aidge_export_arm_cortexm", "aidge_export_arm_cortexm.*"] 
+exclude = ["aidge_export_arm_cortexm.unit_tests*"]  # exclude packages matching these glob patterns (empty by default)
+# SETUPTOOLS_SCM
+[tool.setuptools_scm]
+write_to = "aidge_export_arm_cortexm/_version.py"
 
 [tool.pytest]
 addopts = "--color=yes"