diff --git a/.circleci/continue_config.yml b/.circleci/continue_config.yml index 5a1d78015..82653758e 100644 --- a/.circleci/continue_config.yml +++ b/.circleci/continue_config.yml @@ -69,6 +69,7 @@ commands: command: | cd <> pip install git+https://github.com/kedro-org/kedro@main + pip install . pip install -r test_requirements.txt - run: name: Install pre-commit hooks diff --git a/kedro-docker/MANIFEST.in b/kedro-docker/MANIFEST.in new file mode 100644 index 000000000..451642d6f --- /dev/null +++ b/kedro-docker/MANIFEST.in @@ -0,0 +1 @@ +recursive-include kedro_docker/template * diff --git a/kedro-docker/RELEASE.md b/kedro-docker/RELEASE.md index eeb2f0e41..4bd5b8bbd 100644 --- a/kedro-docker/RELEASE.md +++ b/kedro-docker/RELEASE.md @@ -1,4 +1,5 @@ # Upcoming release +* Migrate all project metadata to static `pyproject.toml`. ## Major features and improvements diff --git a/kedro-docker/features/environment.py b/kedro-docker/features/environment.py index 04a5f25cf..930f97a7d 100644 --- a/kedro-docker/features/environment.py +++ b/kedro-docker/features/environment.py @@ -51,7 +51,7 @@ def before_all(context): ) # install the plugin - call([context.python, "setup.py", "install"], env=context.env) + call([context.python, "-m", "pip", "install", "."], env=context.env) def _setup_context_with_venv(context, venv_dir): diff --git a/kedro-docker/pyproject.toml b/kedro-docker/pyproject.toml index 0b54e6e31..cdd273509 100644 --- a/kedro-docker/pyproject.toml +++ b/kedro-docker/pyproject.toml @@ -1,3 +1,58 @@ +[build-system] +requires = ["setuptools>=61.2"] +build-backend = "setuptools.build_meta" + +[project] +name = "kedro-docker" +authors = [ + {name = "Kedro"} +] +description = "Kedro-Docker makes it easy to package Kedro projects with Docker." +requires-python = ">=3.7, <3.11" +license = {text = "Apache Software License (Apache 2.0)"} +dependencies = [ + "anyconfig~=0.10.0", # not directly required, pinned by Snyk to avoid a vulnerability + "kedro>=0.16.0", + "semver~=2.10", # Needs to be at least 2.10.0 to get VersionInfo.match +] +dynamic = ["readme", "version"] + +[project.urls] +Source = "https://github.com/kedro-org/kedro-plugins/tree/main/kedro-docker" +Documentation = "https://github.com/kedro-org/kedro-plugins/blob/main/kedro-docker/README.md" +Tracker = "https://github.com/kedro-org/kedro-plugins/issues" + +[project.entry-points."kedro.project_commands"] +docker = "kedro_docker.plugin:commands" + +[tool.setuptools] +include-package-data = true +zip-safe = false + +[tool.setuptools.packages.find] +include = ["kedro_docker*"] +namespaces = true # To include the template files + +[tool.setuptools.package-data] +kedro_docker = [ + "template/Dockerfile.*", + "template/.dockerignore", + "template/.dive-ci", +] + +[tool.setuptools.dynamic] +readme = {file = "README.md", content-type = "text/markdown"} +version = {attr = "kedro_docker.__version__"} + +[tool.pytest.ini_options] +addopts = """ + --cov-report xml:coverage.xml + --cov-report term-missing + --cov kedro_docker + --cov tests + --no-cov-on-fail + -ra""" + [tool.black] [tool.isort] diff --git a/kedro-docker/requirements.txt b/kedro-docker/requirements.txt deleted file mode 100644 index 86c576113..000000000 --- a/kedro-docker/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -anyconfig~=0.10.0 # not directly required, pinned by Snyk to avoid a vulnerability -kedro>=0.16.0 -semver~=2.10 # Needs to be at least 2.10.0 to get VersionInfo.match diff --git a/kedro-docker/setup.cfg b/kedro-docker/setup.cfg deleted file mode 100644 index 9ba92fe11..000000000 --- a/kedro-docker/setup.cfg +++ /dev/null @@ -1,10 +0,0 @@ -[metadata] -description-file=README.md - -[tool:pytest] -addopts=--cov-report xml:coverage.xml - --cov-report term-missing - --cov kedro_docker - --cov tests - --no-cov-on-fail - -ra diff --git a/kedro-docker/setup.py b/kedro-docker/setup.py deleted file mode 100644 index b2ef23ca3..000000000 --- a/kedro-docker/setup.py +++ /dev/null @@ -1,44 +0,0 @@ -import re -from codecs import open -from os import path - -from setuptools import setup - -name = "kedro-docker" -here = path.abspath(path.dirname(__file__)) - -# get package version -package_name = name.replace("-", "_") -with open(path.join(here, package_name, "__init__.py"), encoding="utf-8") as f: - version = re.search(r'__version__ = ["\']([^"\']+)', f.read()).group(1) - -# get the dependencies and installs -with open("requirements.txt", "r", encoding="utf-8") as f: - requires = [x.strip() for x in f if x.strip()] - -# get the long description from the README file -with open(path.join(here, "README.md"), encoding="utf-8") as f: - readme = f.read() - -setup( - name=name, - version=version, - description="Kedro-Docker makes it easy to package Kedro projects with Docker.", - long_description=readme, - long_description_content_type="text/markdown", - url="https://github.com/kedro-org/kedro-plugins/tree/main/kedro-docker", - license="Apache Software License (Apache 2.0)", - python_requires=">=3.7, <3.11", - install_requires=requires, - author="Kedro", - packages=["kedro_docker"], - package_data={ - "kedro_docker": [ - "template/Dockerfile.*", - "template/.dockerignore", - "template/.dive-ci", - ] - }, - zip_safe=False, - entry_points={"kedro.project_commands": ["docker = kedro_docker.plugin:commands"]}, -) diff --git a/kedro-docker/test_requirements.txt b/kedro-docker/test_requirements.txt index 771ee88a6..01af755ac 100644 --- a/kedro-docker/test_requirements.txt +++ b/kedro-docker/test_requirements.txt @@ -1,4 +1,3 @@ --r requirements.txt bandit>=1.6.2, <2.0 behave>=1.2.6, <2.0 black~=22.0