From 52aa85fa5a36b0746134725732ca4a123b4b1eae Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Tue, 25 Feb 2025 14:55:59 -0800 Subject: [PATCH 01/14] Add pyproject.toml Signed-off-by: Logan Adams --- pyproject.toml | 10 ++++++++++ setup.py | 5 +++-- 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 pyproject.toml diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..1d869c44 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,10 @@ +[build-system] +requires = [ + "setuptools>=64", + "wheel", + "ninja", + "typing-extensions>=4.10.0", + "torch" +] +# Use legacy backend to import local packages in setup.py +build-backend = "setuptools.build_meta:__legacy__" \ No newline at end of file diff --git a/setup.py b/setup.py index aecebcf6..70e642ce 100644 --- a/setup.py +++ b/setup.py @@ -93,8 +93,9 @@ def command_exists(cmd): packages=find_packages(exclude=("tests", )), classifiers=[ - 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', - 'Programming Language :: Python :: 3.10' + 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: 3.12' ]) From 9fe529cd025f5dfe25e055e0b1778c05dfaab8ff Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Tue, 25 Feb 2025 15:02:08 -0800 Subject: [PATCH 02/14] Fix EOF Signed-off-by: Logan Adams --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 1d869c44..86031c75 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,4 +7,4 @@ requires = [ "torch" ] # Use legacy backend to import local packages in setup.py -build-backend = "setuptools.build_meta:__legacy__" \ No newline at end of file +build-backend = "setuptools.build_meta:__legacy__" From e83f6fa1053b1c42dbaf8e352c81225b94a6fdee Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Mon, 24 Mar 2025 17:00:02 -0700 Subject: [PATCH 03/14] Update references to requirements Signed-off-by: Logan Adams --- pyproject.toml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 86031c75..8db16976 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,10 +1,13 @@ [build-system] requires = [ "setuptools>=64", - "wheel", - "ninja", - "typing-extensions>=4.10.0", - "torch" + "wheel" ] # Use legacy backend to import local packages in setup.py build-backend = "setuptools.build_meta:__legacy__" + +[tool.setuptools.dynamic] +dependencies = {file = ["requirements.txt"]} + +[project.optional-dependencies] +dev = {file = ["requirements-dev.txt"]} From 62a8dc59bcdcc60be8732f96cbb0f603db8d6310 Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Tue, 25 Mar 2025 08:36:59 -0700 Subject: [PATCH 04/14] Add requirements folder to path Signed-off-by: Logan Adams --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 8db16976..61575554 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ requires = [ build-backend = "setuptools.build_meta:__legacy__" [tool.setuptools.dynamic] -dependencies = {file = ["requirements.txt"]} +dependencies = {file = ["requirements/requirements.txt"]} [project.optional-dependencies] -dev = {file = ["requirements-dev.txt"]} +dev = {file = ["requirements/requirements-dev.txt"]} From 978e1b6140cf4f9b6c914758e3165df874559d19 Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Tue, 25 Mar 2025 09:02:51 -0700 Subject: [PATCH 05/14] Move to setuptools modern build system Signed-off-by: Logan Adams --- pyproject.toml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 61575554..a581c253 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,10 +3,14 @@ requires = [ "setuptools>=64", "wheel" ] -# Use legacy backend to import local packages in setup.py -build-backend = "setuptools.build_meta:__legacy__" +build-backend = "setuptools.build_meta" + +[project] +name = "deepspeed-mii" +dynamic = ["version", "dependencies"] [tool.setuptools.dynamic] +version = {file = ["version.txt"]} dependencies = {file = ["requirements/requirements.txt"]} [project.optional-dependencies] From 396f0ec176984495458806b22143df5445fa70ec Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Tue, 25 Mar 2025 16:20:47 -0700 Subject: [PATCH 06/14] Update and move requirements files Signed-off-by: Logan Adams --- pyproject.toml | 32 +++++++++++++++++++++++++++++-- requirements/requirements-dev.txt | 8 -------- requirements/requirements.txt | 18 ----------------- 3 files changed, 30 insertions(+), 28 deletions(-) delete mode 100644 requirements/requirements-dev.txt delete mode 100644 requirements/requirements.txt diff --git a/pyproject.toml b/pyproject.toml index e23a2501..b19d09e2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,9 +10,37 @@ build-backend = "setuptools.build_meta" name = "deepspeed-mii" dynamic = ["version", "dependencies"] +[project.dependencies] +accelerate = "*" +asyncio = "*" +deepspeed = ">=0.15.0" +deepspeed-kernels = "*" +fastapi = "*" +fastchat = "*" +Flask-RESTful = "*" +grpcio = "*" +grpcio-tools = "*" +Pillow = "*" +pydantic = ">=2.0.0" +pyzmq = "*" +safetensors = "*" +shortuuid = "*" +torch = "*" +transformers = "*" +ujson = "*" +Werkzeug = "*" + [tool.setuptools.dynamic] version = {file = ["version.txt"]} -dependencies = {file = ["requirements/requirements.txt"]} [project.optional-dependencies] -dev = {file = ["requirements/requirements-dev.txt"]} +dev = [ + "clang-format==18.1.3", + "einops", + "pre-commit>=2.20.0", + "pytest", + "pytest-forked", + "sentencepiece", + "tiktoken", + "transformers-stream-generator" +] diff --git a/requirements/requirements-dev.txt b/requirements/requirements-dev.txt deleted file mode 100644 index 88d0d08e..00000000 --- a/requirements/requirements-dev.txt +++ /dev/null @@ -1,8 +0,0 @@ -clang-format==18.1.3 -einops -pre-commit>=2.20.0 -pytest -pytest-forked -sentencepiece -tiktoken -transformers-stream-generator diff --git a/requirements/requirements.txt b/requirements/requirements.txt deleted file mode 100644 index 8ca8791c..00000000 --- a/requirements/requirements.txt +++ /dev/null @@ -1,18 +0,0 @@ -accelerate -asyncio -deepspeed>=0.15.0 -deepspeed-kernels -fastapi -fastchat -Flask-RESTful -grpcio -grpcio-tools -Pillow -pydantic>=2.0.0 -pyzmq -safetensors -shortuuid -torch -transformers -ujson -Werkzeug From cf92465761d3926782e2d12dc11cbe1ca45ccdb9 Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Tue, 25 Mar 2025 16:25:24 -0700 Subject: [PATCH 07/14] Update to move requirements to pyproject.toml Signed-off-by: Logan Adams --- .github/workflows/formatting.yml | 2 +- .github/workflows/nv-v100-legacy.yml | 2 +- setup.py | 12 ------------ 3 files changed, 2 insertions(+), 14 deletions(-) diff --git a/.github/workflows/formatting.yml b/.github/workflows/formatting.yml index 9705869a..611790d1 100644 --- a/.github/workflows/formatting.yml +++ b/.github/workflows/formatting.yml @@ -28,7 +28,7 @@ jobs: - name: Install dependencies run: | - grep -E "clang-format|pre-commit" requirements/requirements-dev.txt | xargs pip install + grep -E "clang-format|pre-commit" pyproject.toml | xargs pip install - name: Formatting checks run: | diff --git a/.github/workflows/nv-v100-legacy.yml b/.github/workflows/nv-v100-legacy.yml index 283702bd..e3e0cb33 100644 --- a/.github/workflows/nv-v100-legacy.yml +++ b/.github/workflows/nv-v100-legacy.yml @@ -10,7 +10,7 @@ on: - 'mii/legacy/**' - 'tests/legacy/**' - '.github/workflows/nv-v100-legacy.yml' - - 'requirements/**' + - 'pyproject.toml' - 'setup.py' concurrency: diff --git a/setup.py b/setup.py index 89b828ba..c5ccbce8 100644 --- a/setup.py +++ b/setup.py @@ -8,16 +8,6 @@ from setuptools import setup, find_packages -def fetch_requirements(path): - with open(path, 'r') as fd: - return [r.strip() for r in fd.readlines()] - - -install_requires = fetch_requirements('requirements/requirements.txt') - -extras_require = {"dev": fetch_requirements('requirements/requirements-dev.txt')} - - def command_exists(cmd): if sys.platform == "win32": result = subprocess.Popen(f'{cmd}', stdout=subprocess.PIPE, shell=True) @@ -88,8 +78,6 @@ def command_exists(cmd): 'Documentation': 'https://github.com/deepspeedai/DeepSpeed-MII', 'Source': 'https://github.com/deepspeedai/DeepSpeed-MII', }, - install_requires=install_requires, - extras_require=extras_require, packages=find_packages(exclude=("tests", )), classifiers=[ From 458e981a7bcca0b54c6f4bcfc6fc182e50836b67 Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Tue, 25 Mar 2025 16:49:41 -0700 Subject: [PATCH 08/14] Update dependencies Signed-off-by: Logan Adams --- pyproject.toml | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index b19d09e2..325650c0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,27 +8,27 @@ build-backend = "setuptools.build_meta" [project] name = "deepspeed-mii" -dynamic = ["version", "dependencies"] - -[project.dependencies] -accelerate = "*" -asyncio = "*" -deepspeed = ">=0.15.0" -deepspeed-kernels = "*" -fastapi = "*" -fastchat = "*" -Flask-RESTful = "*" -grpcio = "*" -grpcio-tools = "*" -Pillow = "*" -pydantic = ">=2.0.0" -pyzmq = "*" -safetensors = "*" -shortuuid = "*" -torch = "*" -transformers = "*" -ujson = "*" -Werkzeug = "*" +dynamic = ["version"] +dependencies = [ + "accelerate", + "asyncio", + "deepspeed>=0.15.0", + "deepspeed-kernels", + "fastapi", + "fastchat", + "Flask-RESTful", + "grpcio", + "grpcio-tools", + "Pillow", + "pydantic>=2.0.0", + "pyzmq", + "safetensors", + "shortuuid", + "torch", + "transformers", + "ujson", + "Werkzeug" +] [tool.setuptools.dynamic] version = {file = ["version.txt"]} From 798acc971076650098f3e68ee0563eb33d406959 Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Tue, 25 Mar 2025 17:07:24 -0700 Subject: [PATCH 09/14] More updates Signed-off-by: Logan Adams --- pyproject.toml | 10 ++++++++++ setup.py | 14 -------------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 325650c0..ddbe4c36 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,6 +9,12 @@ build-backend = "setuptools.build_meta" [project] name = "deepspeed-mii" dynamic = ["version"] +description = "deepspeed mii" +long_description = {file = "README.md"} +long_description_content_type = "text/markdown" +authors = [{name = "DeepSpeed Team", email = "deepspeed-mii@microsoft.com"}] +homepage = "http://deepspeed.ai" +repository = "https://github.com/deepspeedai/DeepSpeed-MII" dependencies = [ "accelerate", "asyncio", @@ -30,6 +36,10 @@ dependencies = [ "Werkzeug" ] +[project.urls] +Documentation = "https://github.com/deepspeedai/DeepSpeed-MII" +Source = "https://github.com/deepspeedai/DeepSpeed-MII" + [tool.setuptools.dynamic] version = {file = ["version.txt"]} diff --git a/setup.py b/setup.py index c5ccbce8..028b181e 100644 --- a/setup.py +++ b/setup.py @@ -61,23 +61,9 @@ def command_exists(cmd): with open("mii/version.py", 'w') as fd: fd.write(f"__version__ = '{version_str}'\n") -# Parse README.md to make long_description for PyPI page. -thisdir = os.path.abspath(os.path.dirname(__file__)) -with open(os.path.join(thisdir, 'README.md'), encoding='utf-8') as fin: - readme_text = fin.read() print("PACKAGES", find_packages()) setup(name="deepspeed-mii", version=version_str, - long_description=readme_text, - long_description_content_type='text/markdown', - description='deepspeed mii', - author='DeepSpeed Team', - author_email='deepspeed-mii@microsoft.com', - url='http://deepspeed.ai', - project_urls={ - 'Documentation': 'https://github.com/deepspeedai/DeepSpeed-MII', - 'Source': 'https://github.com/deepspeedai/DeepSpeed-MII', - }, packages=find_packages(exclude=("tests", )), classifiers=[ From cc40e45eaba25430c252509493d4e089b8a3b870 Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Tue, 25 Mar 2025 17:08:52 -0700 Subject: [PATCH 10/14] Move more things Signed-off-by: Logan Adams --- pyproject.toml | 27 ++++++++++++++++++++------- setup.py | 10 +--------- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index ddbe4c36..52eb0068 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,13 +36,6 @@ dependencies = [ "Werkzeug" ] -[project.urls] -Documentation = "https://github.com/deepspeedai/DeepSpeed-MII" -Source = "https://github.com/deepspeedai/DeepSpeed-MII" - -[tool.setuptools.dynamic] -version = {file = ["version.txt"]} - [project.optional-dependencies] dev = [ "clang-format==18.1.3", @@ -54,3 +47,23 @@ dev = [ "tiktoken", "transformers-stream-generator" ] + +[project.urls] +Documentation = "https://github.com/deepspeedai/DeepSpeed-MII" +Source = "https://github.com/deepspeedai/DeepSpeed-MII" + +[tool.setuptools.dynamic] +version = {file = ["version.txt"]} + +[tool.setuptools] +classifiers = [ + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", +] + +[tool.setuptools.packages] +find = true +exclude = ["tests"] diff --git a/setup.py b/setup.py index 028b181e..53f73359 100644 --- a/setup.py +++ b/setup.py @@ -64,12 +64,4 @@ def command_exists(cmd): print("PACKAGES", find_packages()) setup(name="deepspeed-mii", version=version_str, - packages=find_packages(exclude=("tests", - )), - classifiers=[ - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3.9', - 'Programming Language :: Python :: 3.10', - 'Programming Language :: Python :: 3.11', - 'Programming Language :: Python :: 3.12' - ]) +) From 743602f18df85e0e3a6822040674bd6dc8f3313f Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Tue, 25 Mar 2025 17:11:47 -0700 Subject: [PATCH 11/14] Update fields not permitted Signed-off-by: Logan Adams --- pyproject.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 52eb0068..e81f4ff3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,11 +10,7 @@ build-backend = "setuptools.build_meta" name = "deepspeed-mii" dynamic = ["version"] description = "deepspeed mii" -long_description = {file = "README.md"} -long_description_content_type = "text/markdown" authors = [{name = "DeepSpeed Team", email = "deepspeed-mii@microsoft.com"}] -homepage = "http://deepspeed.ai" -repository = "https://github.com/deepspeedai/DeepSpeed-MII" dependencies = [ "accelerate", "asyncio", @@ -64,6 +60,10 @@ classifiers = [ "Programming Language :: Python :: 3.12", ] +[tool.setuptools.package-data] +long_description = {file = "README.md"} +long_description_content_type = "text/markdown" + [tool.setuptools.packages] find = true exclude = ["tests"] From fe4346ba815ee19118a36d43976d5f19efe92bcf Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Tue, 25 Mar 2025 17:15:18 -0700 Subject: [PATCH 12/14] Update Signed-off-by: Logan Adams --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index e81f4ff3..631235c9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -64,6 +64,6 @@ classifiers = [ long_description = {file = "README.md"} long_description_content_type = "text/markdown" -[tool.setuptools.packages] -find = true +[tool.setuptools.packages.find] +where = ["."] exclude = ["tests"] From a1045feecaba8ffe514dd151f66d7e2aa95b4f29 Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Tue, 25 Mar 2025 17:17:27 -0700 Subject: [PATCH 13/14] long dictionary Signed-off-by: Logan Adams --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 631235c9..3a3b4371 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -61,7 +61,7 @@ classifiers = [ ] [tool.setuptools.package-data] -long_description = {file = "README.md"} +long_description = ["README.md"] long_description_content_type = "text/markdown" [tool.setuptools.packages.find] From 73acfe9976b2e482fe070b47ad14d475fd3ec8be Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Tue, 25 Mar 2025 17:19:11 -0700 Subject: [PATCH 14/14] content type too Signed-off-by: Logan Adams --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 3a3b4371..d1581a25 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -62,7 +62,7 @@ classifiers = [ [tool.setuptools.package-data] long_description = ["README.md"] -long_description_content_type = "text/markdown" +long_description_content_type = ["text/markdown"] [tool.setuptools.packages.find] where = ["."]