diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e59e6e7707160cb69e3dac4d0cbca9f246b156f9..d217ebaa9845d2d173070318517166bb626fc2aa 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -128,7 +128,7 @@ build-backend:
       -v $(pwd)/.eggs:/code/.eggs
       -v $(pwd)/jass.egg-info:/code/jass.egg-info
       "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${PATH_TAG}:$CI_COMMIT_SHA"
-      python setup.py test
+      python -m unittest
 
 
 build-client-dev:
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000000000000000000000000000000000000..e82ed6c837119abc49291a903ea65923d8a2bb31
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,46 @@
+[build-system]
+requires = ["setuptools"]
+build-backend = "setuptools.build_meta"
+
+[project]
+name = "jass"
+authors = [
+    {name="Hervé Ménager", email='hmenager@pasteur.fr'},
+    {name="Pierre Lechat", email='pierre.lechat@pasteur.fr'},
+    {name="Carla Lasry", email='carla.lasry@pasteur.fr'},
+    {name="Vincent Guillemot", email='vincent.guillemot@pasteur.fr'},
+    {name="Hugues Aschard", email='hugues.aschard@pasteur.fr'},
+    {name="Hanna Julienne", email='hanna.julienne@pasteur.fr'}
+]
+description="JASS allows for single SNP joint analysis of multiple GWAS summary statistics"
+readme ="README.md"
+dynamic = ["dependencies"]
+version = "2.2"
+requires-python = ">=3.6"
+
+classifiers = [
+        "Programming Language :: Python :: 3",
+        "License :: OSI Approved :: MIT License",
+        "Operating System :: OS Independent",
+]
+
+[tool.setuptools.dynamic]
+dependencies = {file = ["requirements.txt"]}
+
+
+[tool.setuptools.packages.find]
+include = ["jass*"]
+
+[tool.setuptools.package-data]
+jass = ["swagger/swagger.yaml",
+"data/*.tsv"]
+# include-package-data = true
+
+[project.scripts]
+jass="jass.__main__:main"
+
+[project.urls]
+Homepage = "https://gitlab.pasteur.fr/statistical-genetics/jass"
+
+[project.license]
+text = "MIT"
\ No newline at end of file
diff --git a/setup.cfg b/setup.cfg
deleted file mode 100644
index b7e478982ccf9ab1963c74e1084dfccb6e42c583..0000000000000000000000000000000000000000
--- a/setup.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[aliases]
-test=pytest
diff --git a/setup.py b/setup.py
index 429d78ca6b0b71aa135945aaa0ee477d0b1afe96..551bbcd48835c52227ace9ca99cc62efa725dd42 100644
--- a/setup.py
+++ b/setup.py
@@ -2,52 +2,22 @@
 
 import os
 import pathlib
-import pkg_resources
 
-from setuptools import setup, find_packages
 
-NAME = "jass"
-VERSION = "2.2"
+from setuptools import setup
 
-SETUP_DIR = os.path.dirname(__file__)
-README = os.path.join(SETUP_DIR, 'README.md')
-readme = open(README).read()
-
-with pathlib.Path('requirements.txt').open() as requirements_txt:
-    REQUIRES = [
-        str(requirement)
-        for requirement
-        in pkg_resources.parse_requirements(requirements_txt)
-    ]
-
-setup(
-    name=NAME,
-    version=VERSION,
-    description="JASS allows for single SNP joint analysis of multiple GWAS summary statistics",
-    author='Hervé Ménager and Pierre Lechat and Carla Lasry and Vincent Guillemot and Hugues Aschard and Hanna Julienne',
-    author_email="hmenager@pasteur.fr, pierre.lechat@pasteur.fr, carla.lasry@pasteur.fr, vincent.guillemot@pasteur.fr, hugues.aschard@pasteur.fr, hanna.julienne@pasteur.fr",
-    url="https://gitlab.pasteur.fr/statistical-genetics/jass",
-    packages=find_packages(),
-    install_requires=REQUIRES,
-    license="MIT",
-    keywords=["GWAS", "Data analysis", "summary statistics"],
-    package_data={'jass': ['swagger/swagger.yaml', "data/*.tsv"]},
-    include_package_data=True,
-    long_description=readme,
-    long_description_content_type="text/markdown",
-    classifiers=[
-        "Programming Language :: Python :: 3",
-        "License :: OSI Approved :: MIT License",
-        "Operating System :: OS Independent",
-    ],
-    python_requires='>=3.6',
-    setup_requires=[
-        'pytest-runner',
-        'Flask-Testing'
-    ],
-    entry_points={
-        'console_scripts': [
-            'jass=jass.__main__:main',
-        ]
-    }
-)
+# NAME = "jass"
+# VERSION = "2.2"
+#
+# SETUP_DIR = os.path.dirname(__file__)
+# README = os.path.join(SETUP_DIR, 'README.md')
+# readme = open(README).read()
+#
+# with pathlib.Path('requirements.txt').open() as requirements_txt:
+#     REQUIRES = [
+#         str(requirement)
+#         for requirement
+#         in pkg_resources.parse_requirements(requirements_txt)
+#     ]
+if __name__ == "__main__":
+    setup()