From 40ec4c49aa46c90b42c189beaf3430918f6110da Mon Sep 17 00:00:00 2001 From: Daniel Segesdi Date: Thu, 27 Oct 2022 13:13:32 +0200 Subject: [PATCH 1/3] Add pyproject.toml with build system dependencies This should fix missing modules when installed with `pip install --use-pep517 horovod` --- pyproject.toml | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 pyproject.toml diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000000..84a65307e0 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["packaging", "setuptools"] + From d521f981aa7de45280609fb7529335ddd447e72b Mon Sep 17 00:00:00 2001 From: Daniel Segesdi Date: Thu, 27 Oct 2022 13:27:37 +0200 Subject: [PATCH 2/3] Update CHANGELOG --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 625085f88e..c965f3e94b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Fixed +- Fixed install with `--use-pep517` by specifying build-system dependencies. ([#3758](https://github.com/horovod/horovod/pull/3758)) + ## [v0.26.1] - 2022-10-14 From c15dfaffae570e06742382edf0d8092ec504fe5c Mon Sep 17 00:00:00 2001 From: Daniel Segesdi Date: Fri, 4 Nov 2022 16:43:32 +0100 Subject: [PATCH 3/3] add tensorflow as "dynamic" dependency --- _custom_build/backend.py | 13 +++++++++++++ pyproject.toml | 2 ++ setup.py | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 _custom_build/backend.py diff --git a/_custom_build/backend.py b/_custom_build/backend.py new file mode 100644 index 0000000000..d8e011c2d2 --- /dev/null +++ b/_custom_build/backend.py @@ -0,0 +1,13 @@ +from setuptools import build_meta as _orig + +prepare_metadata_for_build_wheel = _orig.prepare_metadata_for_build_wheel +build_wheel = _orig.build_wheel +build_sdist = _orig.build_sdist + + +def get_requires_for_build_wheel(self, config_settings=None): + return _orig.get_requires_for_build_wheel(config_settings) + ["tensorflow"] + + +def get_requires_for_build_sdist(self, config_settings=None): + return _orig.get_requires_for_build_sdist(config_settings) + ["tensorflow"] diff --git a/pyproject.toml b/pyproject.toml index 84a65307e0..4f5b3e7554 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,5 @@ [build-system] requires = ["packaging", "setuptools"] +build-backend = "backend" +backend-path = ["_custom_build"] diff --git a/setup.py b/setup.py index e9ef7b1a60..4743ed61e4 100644 --- a/setup.py +++ b/setup.py @@ -28,7 +28,7 @@ from setuptools import setup, Extension, find_packages from setuptools.command.build_ext import build_ext -from horovod import __version__ +__version__ = "0.26.1" _FRAMEWORK_METADATA_FILE = 'horovod/metadata.json'