From 7c4ad06218885321a629e5eb5a923e90906685cf Mon Sep 17 00:00:00 2001 From: Ringo De Smet Date: Tue, 13 Aug 2024 14:19:56 +0200 Subject: [PATCH 1/2] Fix Go version within workspace --- examples/go.mod | 2 +- provider/go.mod | 2 +- sdk/go.mod | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/go.mod b/examples/go.mod index 73cc026..4108da4 100644 --- a/examples/go.mod +++ b/examples/go.mod @@ -1,6 +1,6 @@ module github.com/pulumiverse/pulumi-acme/examples -go 1.20 +go 1.21 require github.com/pulumi/pulumi/pkg/v3 v3.126.0 diff --git a/provider/go.mod b/provider/go.mod index 0f7f20b..9f74941 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -1,6 +1,6 @@ module github.com/pulumiverse/pulumi-acme/provider -go 1.21.12 +go 1.21 replace github.com/hashicorp/terraform-plugin-sdk/v2 => github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20240520223432-0c0bf0d65f10 diff --git a/sdk/go.mod b/sdk/go.mod index 70fa5f1..8d2c4f9 100644 --- a/sdk/go.mod +++ b/sdk/go.mod @@ -1,6 +1,6 @@ module github.com/pulumiverse/pulumi-acme/sdk -go 1.20 +go 1.21 require ( github.com/blang/semver v3.5.1+incompatible From 11d1739bad26389403da190829f775a32ce0ad01 Mon Sep 17 00:00:00 2001 From: Ringo De Smet Date: Tue, 13 Aug 2024 14:20:22 +0200 Subject: [PATCH 2/2] Move Python SDK generation from setup.py to pyproject.toml --- .gitignore | 5 +++ Makefile | 13 +++--- provider/cmd/pulumi-resource-acme/schema.json | 4 +- provider/resources.go | 1 + sdk/python/go.mod | 3 ++ sdk/python/pyproject.toml | 22 ++++++++++ sdk/python/setup.py | 44 ------------------- 7 files changed, 42 insertions(+), 50 deletions(-) create mode 100644 sdk/python/go.mod create mode 100644 sdk/python/pyproject.toml delete mode 100644 sdk/python/setup.py diff --git a/.gitignore b/.gitignore index 423f0f8..b680410 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,8 @@ provider/**/schema-embed.json **/version.txt **/nuget **/dist + +__pycache__ +venv +sdk/python/build +sdk/python/*.egg-info \ No newline at end of file diff --git a/Makefile b/Makefile index b76cec5..72582fc 100644 --- a/Makefile +++ b/Makefile @@ -68,14 +68,17 @@ build_nodejs:: install_plugins tfgen # build the node sdk build_python:: PYPI_VERSION := $(shell pulumictl get version --language python) build_python:: install_plugins tfgen # build the python sdk + rm -rf sdk/python/ $(WORKING_DIR)/bin/$(TFGEN) python --overlays provider/overlays/python --out sdk/python/ cd sdk/python/ && \ + printf "module fake_python_module // Exclude this directory from Go tools\n\ngo 1.17\n" > go.mod && \ cp ../../README.md . && \ - python3 setup.py clean --all 2>/dev/null && \ - rm -rf ./bin/ ../python.bin/ && cp -R . ../python.bin && mv ../python.bin ./bin && \ - sed -i.bak -e 's/^VERSION = .*/VERSION = "$(PYPI_VERSION)"/g' -e 's/^PLUGIN_VERSION = .*/PLUGIN_VERSION = "$(VERSION)"/g' ./bin/setup.py && \ - rm ./bin/setup.py.bak && \ - cd ./bin && python3 setup.py build sdist + rm -rf ./bin/ ../python.bin/ && cp -R . ../python.bin && mv ../python.bin ./bin && \ + rm ./bin/go.mod && \ + python3 -m venv venv && \ + ./venv/bin/python -m pip install build==1.2.1 && \ + cd ./bin && \ + ../venv/bin/python -m build . build_dotnet:: DOTNET_VERSION := $(shell pulumictl get version --language dotnet) build_dotnet:: install_plugins tfgen # build the dotnet sdk diff --git a/provider/cmd/pulumi-resource-acme/schema.json b/provider/cmd/pulumi-resource-acme/schema.json index 6ad6dc2..6f4251d 100644 --- a/provider/cmd/pulumi-resource-acme/schema.json +++ b/provider/cmd/pulumi-resource-acme/schema.json @@ -50,7 +50,9 @@ }, "readme": "\u003e This provider is a derived work of the [Terraform Provider](https://github.com/vancluever/terraform-provider-acme)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-acme` repo](https://github.com/pulumiverse/pulumi-acme/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-acme` repo](https://github.com/vancluever/terraform-provider-acme/issues).", "compatibility": "tfbridge20", - "pyproject": {} + "pyproject": { + "enabled": true + } } }, "config": { diff --git a/provider/resources.go b/provider/resources.go index 759228d..33ba4cd 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -100,6 +100,7 @@ func Provider() tfbridge.ProviderInfo { Requires: map[string]string{ "pulumi": ">=3.0.0,<4.0.0", }, + PyProject: struct{ Enabled bool }{true}, }, Golang: &tfbridge.GolangInfo{ ImportBasePath: filepath.Join( diff --git a/sdk/python/go.mod b/sdk/python/go.mod new file mode 100644 index 0000000..b91fcbc --- /dev/null +++ b/sdk/python/go.mod @@ -0,0 +1,3 @@ +module fake_python_module // Exclude this directory from Go tools + +go 1.17 diff --git a/sdk/python/pyproject.toml b/sdk/python/pyproject.toml new file mode 100644 index 0000000..9d345ba --- /dev/null +++ b/sdk/python/pyproject.toml @@ -0,0 +1,22 @@ +[project] + name = "pulumiverse_acme" + description = "A Pulumi package for creating and managing ACME cloud resources." + dependencies = ["parver>=0.2.1", "pulumi>=3.0.0,<4.0.0", "semver>=2.8.1"] + keywords = ["pulumi", "acme", "category/cloud"] + readme = "README.md" + requires-python = ">=3.8" + version = "0.0.0" + [project.license] + text = "Apache-2.0" + [project.urls] + Homepage = "https://www.pulumi.com" + Repository = "https://github.com/pulumiverse/pulumi-acme" + +[build-system] + requires = ["setuptools>=61.0"] + build-backend = "setuptools.build_meta" + +[tool] + [tool.setuptools] + [tool.setuptools.package-data] + pulumiverse_acme = ["py.typed", "pulumi-plugin.json"] diff --git a/sdk/python/setup.py b/sdk/python/setup.py deleted file mode 100644 index 95f0b04..0000000 --- a/sdk/python/setup.py +++ /dev/null @@ -1,44 +0,0 @@ -# coding=utf-8 -# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -# *** Do not edit by hand unless you're certain you know what you are doing! *** - -import errno -from setuptools import setup, find_packages -from setuptools.command.install import install -from subprocess import check_call - - -VERSION = "0.0.0" -def readme(): - try: - with open('README.md', encoding='utf-8') as f: - return f.read() - except FileNotFoundError: - return "acme Pulumi Package - Development Version" - - -setup(name='pulumiverse_acme', - python_requires='>=3.8', - version=VERSION, - description="A Pulumi package for creating and managing ACME cloud resources.", - long_description=readme(), - long_description_content_type='text/markdown', - keywords='pulumi acme category/cloud', - url='https://www.pulumi.com', - project_urls={ - 'Repository': 'https://github.com/pulumiverse/pulumi-acme' - }, - license='Apache-2.0', - packages=find_packages(), - package_data={ - 'pulumiverse_acme': [ - 'py.typed', - 'pulumi-plugin.json', - ] - }, - install_requires=[ - 'parver>=0.2.1', - 'pulumi>=3.0.0,<4.0.0', - 'semver>=2.8.1' - ], - zip_safe=False)