From nobody Sun Mar 31 14:37:38 2024 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4V6xZB3WG8z5G9fn; Sun, 31 Mar 2024 14:37:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4V6xZB2J3Zz4g9L; Sun, 31 Mar 2024 14:37:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1711895858; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sQwF754A7M2SSq02LNN3qINgenAR1U/c4fwZpV/+cNE=; b=fzK7j4PkGcjo4VHyez1SFRPor6OdyHFcwjIT8ADvT34l8/nXr97XPuHpYhI3oF3CfjEL81 OfQvedLpwgpbitoMFm91hEpWdXnmMTOqNVm3YmYn4VZy/pPT+FEZ+xZakxlgtmXDgSB0mf 0r/QdTIS/Y8GtTMvTitcjWHjJY8l5r24qD61TPMoVv9vANLTTtqWsQbxBuVe1v1yt2v51c daoG/6NFdnGqEIrl/ml2Ufcsx5dHb8YO0n82GBhmzj17jx21JtIFuOdxy7cY0hwy9to/Ih WhPrR/1lRg9PaorGMnROUatSZz4VDuWYCL7ONLXVyIidYSUVq9zILIunV/M5GQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1711895858; a=rsa-sha256; cv=none; b=K9OmIJcVaevCnzrwx64s5RxAbPDzUT5qgHTAiomOBn+mofv8LH/oJJb16Je7ZgUjrGooav yw3E2DhBBO3bENuOwcQygZdDhc9l3/Bc7X1L6m0QSGQSOB0AqKODBS2CVP9Adq/5GLCWyk tpiZZypggOa0SiDCjLizr7931skHFEJ2WfLvKykO98pwfH7ic1YWBgJbVWEr5hBIabmJyy lwohB0zelkeHQTmXNAlsOgS1zMmktufr+JXTk7mz4Rc+lK7U5EmOaH+AJtqk3XPEZhWXl1 RUqBkdycl8gpGwqy8M5We3/8Mm0jiimS10XuJReDP7PyIi4H3BWGCVEa1botig== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1711895858; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sQwF754A7M2SSq02LNN3qINgenAR1U/c4fwZpV/+cNE=; b=H4/bmKRhcV3W3V8SH05/11eu5zpP6DxrCVLiUfj6Y6J+4/Sysd8+KJpb+3iKYNzHUVXw2A uYkiHi+MFY9Q1V26OImdSw7z1TvSsuzDCGg3m/GUOobW/FXMqkgve8qOFnWkO7/vAL1iwT OfNWzy90S+Y0ZE+Qn1vloe1lkTY4+EK1P7tTM3mMeO9G9nOLJY6eDtdPJeuM2cQxsJzNcs pRAq/fuZEGc4qWYuanuLTZW1QxlCir/joN2pUbu/ieOt/Z3HF4REa/fh4SOLRgRjfQvbiP 8+1sSy3QleEvbqv51XyqDaWErlkWfnAOKDn5fFVCLTe4k4Yezb9JvC1loX1oSw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4V6xZB1tL2zhXN; Sun, 31 Mar 2024 14:37:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 42VEbcAS001804; Sun, 31 Mar 2024 14:37:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 42VEbcrd001801; Sun, 31 Mar 2024 14:37:38 GMT (envelope-from git) Date: Sun, 31 Mar 2024 14:37:38 GMT Message-Id: <202403311437.42VEbcrd001801@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Kai Knoblich Subject: git: 30b5dea292c9 - main - devel/py-strawberry-graphql: New port List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-main@freebsd.org X-BeenThere: dev-commits-ports-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kai X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 30b5dea292c9429fbe34ebe7477b5a193867bf0c Auto-Submitted: auto-generated The branch main has been updated by kai: URL: https://cgit.FreeBSD.org/ports/commit/?id=30b5dea292c9429fbe34ebe7477b5a193867bf0c commit 30b5dea292c9429fbe34ebe7477b5a193867bf0c Author: Kai Knoblich AuthorDate: 2024-03-31 14:14:43 +0000 Commit: Kai Knoblich CommitDate: 2024-03-31 14:34:36 +0000 devel/py-strawberry-graphql: New port Strawberry is a developer friendly GraphQL library for Python, designed for modern development. * Type hints: Leverages Python type hints to provide a great developer experience while creating GraphQL Libraries. * Async Support: Supports async/await out of the box, allowing you to write your resolvers in a non-blocking way. * Extensible: Has support for schema and field extensions, allowing you to extend the schema with custom logic. * Generics: Supports generics, allowing you to create reusable types that can be used in multiple places. * Federation: Supports Federation, allowing you to create a federated GraphQL schema. * Dataloaders: Comes with support for dataloaders, allowing you to batch multiple queries into a single one. * Integrations: Has support for multiple integrations, allowing you to use it with your favorite web framework. https://github.com/strawberry-graphql/strawberry --- devel/Makefile | 1 + devel/py-strawberry-graphql/Makefile | 75 ++++++++++++++++++++++ devel/py-strawberry-graphql/distinfo | 3 + .../files/patch-pyproject.toml | 15 +++++ devel/py-strawberry-graphql/pkg-descr | 23 +++++++ 5 files changed, 117 insertions(+) diff --git a/devel/Makefile b/devel/Makefile index 6222fe53118f..80c6a2f0d7d9 100644 --- a/devel/Makefile +++ b/devel/Makefile @@ -5708,6 +5708,7 @@ SUBDIR += py-stone SUBDIR += py-stopit SUBDIR += py-strategies + SUBDIR += py-strawberry-graphql SUBDIR += py-streamparse SUBDIR += py-strenum SUBDIR += py-strict-rfc3339 diff --git a/devel/py-strawberry-graphql/Makefile b/devel/py-strawberry-graphql/Makefile new file mode 100644 index 000000000000..bd0321e51c38 --- /dev/null +++ b/devel/py-strawberry-graphql/Makefile @@ -0,0 +1,75 @@ +PORTNAME= strawberry-graphql +DISTVERSION= 0.224.1 +CATEGORIES= devel python +MASTER_SITES= PYPI +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} +DISTNAME= strawberry_graphql-${DISTVERSION} + +MAINTAINER= kai@FreeBSD.org +COMMENT= Library for creating GraphQL APIs +WWW= https://github.com/strawberry-graphql/strawberry + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}poetry-core>=0.12.0:devel/py-poetry-core@${PY_FLAVOR} +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}dateutil>=2.7.0:devel/py-dateutil@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}graphql-core>=3.2.0:devel/py-graphql-core@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}typing-extensions>=4.5.0:devel/py-typing-extensions@${PY_FLAVOR} + +USES= python +USE_PYTHON= autoplist pep517 + +NO_ARCH= yes + +OPTIONS_DEFINE= AIOHTTP ASGI CHANNELS CLI DEBUG DEBUG-SERVER DJANGO \ + FASTAPI FLASK OPENTELEMETRY PYDANTIC + +AIOHTTP_DESC= Basic AIOHTTP integration +ASGI_DESC= Basic ASGI integration +CHANNELS_DESC= Support for Django Channels +CLI_DESC= Support for CLI commands +DEBUG-SERVER_DESC= Enable debug server +DEBUG_DESC= Generate verbose debug information +DJANGO_DESC= Basic Django integration +FASTAPI_DESC= Support for FastAPI in conjunction with GraphQLRouter +FLASK_DESC= Basic Flask integration +OPENTELEMETRY_DESC= Generate Open Telemetry compatible tracing information +PYDANTIC_DESC= Support for Pydantic models + +AIOHTTP_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aiohttp>=3.7.4:www/py-aiohttp@${PY_FLAVOR} +ASGI_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}multipart>=0.0.7:devel/py-multipart@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}starlette>=0.18.0:www/py-starlette@${PY_FLAVOR} +CHANNELS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}asgiref>=3.2:www/py-asgiref@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}channels>=3.0.5:www/py-channels@${PY_FLAVOR} +CLI_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}libcst>=0.4.7:devel/py-libcst@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pygments>=2.3:textproc/py-pygments@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}rich>=12.0.0:textproc/py-rich@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}typer>=0.7.0:devel/py-typer@${PY_FLAVOR} +DEBUG-SERVER_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}libcst>=0.4.7:devel/py-libcst@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}multipart>=0.0.7:devel/py-multipart@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pygments>=2.3:textproc/py-pygments@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}rich>=12.0.0:textproc/py-rich@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}starlette>=0.18.0:www/py-starlette@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}typer>=0.7.0:devel/py-typer@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}uvicorn>=0.11.6:www/py-uvicorn@${PY_FLAVOR} +DEBUG_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}libcst>=0.4.7:devel/py-libcst@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}rich>=12.0.0:textproc/py-rich@${PY_FLAVOR} +DJANGO_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}asgiref>=3.2:www/py-asgiref@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pytest-django>0:devel/py-pytest-django@${PY_FLAVOR} +FASTAPI_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}fastapi>=0.62.5:www/py-fastapi@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}multipart>=0.0.7:devel/py-multipart@${PY_FLAVOR} +FLASK_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}flask>=1.1:www/py-flask@${PY_FLAVOR} +OPENTELEMETRY_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}opentelemetry-api<2:devel/py-opentelemetry-api@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}opentelemetry-sdk<2:devel/py-opentelemetry-sdk@${PY_FLAVOR} +# NB: Switch to devel/py-pydantic once www/py-fastapi uses it +PYDANTIC_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pydantic2>1.6.1:devel/py-pydantic2@${PY_FLAVOR} + +.include + +.if ${PYTHON_REL} < 30900 +RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}astunparse>=1.6.3:devel/py-astunparse@${PY_FLAVOR} +.endif + +.include diff --git a/devel/py-strawberry-graphql/distinfo b/devel/py-strawberry-graphql/distinfo new file mode 100644 index 000000000000..36d6c312311e --- /dev/null +++ b/devel/py-strawberry-graphql/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1711883910 +SHA256 (strawberry_graphql-0.224.1.tar.gz) = d1fec0c9896594d271b8932aa97b43db931b14107b96ee1fb3890396c85335fa +SIZE (strawberry_graphql-0.224.1.tar.gz) = 197944 diff --git a/devel/py-strawberry-graphql/files/patch-pyproject.toml b/devel/py-strawberry-graphql/files/patch-pyproject.toml new file mode 100644 index 000000000000..b6623c4bd812 --- /dev/null +++ b/devel/py-strawberry-graphql/files/patch-pyproject.toml @@ -0,0 +1,15 @@ +Use the more lightweight build system "poetry-core". + +--- pyproject.toml.orig 2024-03-24 18:49:43 UTC ++++ pyproject.toml +@@ -30,8 +30,8 @@ include = ["strawberry/py.typed"] + "Sponsor on Open Collective" = "https://opencollective.com/strawberry-graphql" + + [build-system] +-requires = ["poetry>=0.12"] +-build-backend = "poetry.masonry.api" ++requires = ["poetry-core>=0.12"] ++build-backend = "poetry.core.masonry.api" + + [tool.poetry.dependencies] + python = "^3.8" diff --git a/devel/py-strawberry-graphql/pkg-descr b/devel/py-strawberry-graphql/pkg-descr new file mode 100644 index 000000000000..ea25df49f06d --- /dev/null +++ b/devel/py-strawberry-graphql/pkg-descr @@ -0,0 +1,23 @@ +Strawberry is a developer friendly GraphQL library for Python, designed for +modern development. + +* Type hints: Leverages Python type hints to provide a great developer + experience while creating GraphQL Libraries. + +* Async Support: Supports async/await out of the box, allowing you to write + your resolvers in a non-blocking way. + +* Extensible: Has support for schema and field extensions, allowing you to + extend the schema with custom logic. + +* Generics: Supports generics, allowing you to create reusable types that can + be used in multiple places. + +* Federation: Supports Federation, allowing you to create a federated GraphQL + schema. + +* Dataloaders: Comes with support for dataloaders, allowing you to batch + multiple queries into a single one. + +* Integrations: Has support for multiple integrations, allowing you to use it + with your favorite web framework.