build!: declarative builds
diff --git a/.github/workflows/patch.yml b/.github/workflows/patch.yml
index 2cf4444..4d8c51d 100644
--- a/.github/workflows/patch.yml
+++ b/.github/workflows/patch.yml
@@ -52,7 +52,7 @@
uses: actions/cache@v2
with:
path: ~/.cache/pip
- key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
+ key: ${{ runner.os }}-pip-${{ hashFiles('**/*requirements.txt', '**/pyproject.toml') }}
restore-keys: |
${{ runner.os }}-pip-
${{ runner.os }}-
diff --git a/.github/workflows/server-tests-mariadb.yml b/.github/workflows/server-tests-mariadb.yml
index 91a0114..9dcc656 100644
--- a/.github/workflows/server-tests-mariadb.yml
+++ b/.github/workflows/server-tests-mariadb.yml
@@ -74,7 +74,7 @@
uses: actions/cache@v2
with:
path: ~/.cache/pip
- key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
+ key: ${{ runner.os }}-pip-${{ hashFiles('**/*requirements.txt', '**/pyproject.toml') }}
restore-keys: |
${{ runner.os }}-pip-
${{ runner.os }}-
diff --git a/.github/workflows/server-tests-postgres.yml b/.github/workflows/server-tests-postgres.yml
index d3268e2..f62c22b 100644
--- a/.github/workflows/server-tests-postgres.yml
+++ b/.github/workflows/server-tests-postgres.yml
@@ -61,7 +61,7 @@
uses: actions/cache@v2
with:
path: ~/.cache/pip
- key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
+ key: ${{ runner.os }}-pip-${{ hashFiles('**/*requirements.txt', '**/pyproject.toml') }}
restore-keys: |
${{ runner.os }}-pip-
${{ runner.os }}-
diff --git a/CODEOWNERS b/CODEOWNERS
index bfc2601..f0cb379 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -32,4 +32,4 @@
erpnext/public/ @nextchamp-saqib @marination
.github/ @ankush
-requirements.txt @gavindsouza
+pyproject.toml @gavindsouza @ankush
diff --git a/pyproject.toml b/pyproject.toml
index 8043dd9..b39c4f0 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,3 +1,32 @@
+[project]
+name = "erpnext"
+authors = [
+ { name = "Frappe Technologies Pvt Ltd", email = "developers@frappe.io"}
+]
+description = "Open Source ERP"
+requires-python = ">=3.8"
+readme = "README.md"
+dynamic = ["version"]
+dependencies = [
+ # Core dependencies
+ "pycountry~=20.7.3",
+ "python-stdnum~=1.16",
+ "Unidecode~=1.2.0",
+ "redisearch~=2.1.0",
+
+ # integration dependencies
+ "gocardless-pro~=1.22.0",
+ "googlemaps",
+ "plaid-python~=7.2.1",
+ "python-youtube~=0.8.0",
+ "taxjar~=1.9.2",
+ "tweepy~=3.10.0",
+]
+
+[build-system]
+requires = ["flit_core >=3.4,<4"]
+build-backend = "flit_core.buildapi"
+
[tool.black]
line-length = 99
diff --git a/requirements.txt b/requirements.txt
deleted file mode 100644
index 83e5375..0000000
--- a/requirements.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-# frappe # https://github.com/frappe/frappe is installed during bench-init
-gocardless-pro~=1.22.0
-googlemaps
-plaid-python~=7.2.1
-pycountry~=20.7.3
-python-stdnum~=1.16
-python-youtube~=0.8.0
-taxjar~=1.9.2
-tweepy~=3.10.0
-Unidecode~=1.2.0
-redisearch~=2.1.0
diff --git a/setup.py b/setup.py
index 1faff04..0ea4d07 100644
--- a/setup.py
+++ b/setup.py
@@ -1,23 +1,6 @@
-from setuptools import setup, find_packages
-import re, ast
+# TODO: Remove this file when v15.0.0 is released
+from setuptools import setup
-# get version from __version__ variable in erpnext/__init__.py
-_version_re = re.compile(r"__version__\s+=\s+(.*)")
+name = "frappe"
-with open("requirements.txt") as f:
- install_requires = f.read().strip().split("\n")
-
-with open("erpnext/__init__.py", "rb") as f:
- version = str(ast.literal_eval(_version_re.search(f.read().decode("utf-8")).group(1)))
-
-setup(
- name="erpnext",
- version=version,
- description="Open Source ERP",
- author="Frappe Technologies",
- author_email="info@erpnext.com",
- packages=find_packages(),
- zip_safe=False,
- include_package_data=True,
- install_requires=install_requires,
-)
+setup()