From 989b6de3c0112473b7d0dd4bde1541c04f72254c Mon Sep 17 00:00:00 2001 From: Chris Coutinho Date: Mon, 20 Oct 2025 19:59:41 +0200 Subject: [PATCH] build: Switch to uv build backend --- .github/workflows/release.yml | 30 +++++++++++++++++++++++++++ pyproject.toml | 38 +++++++++++++++++++++++++++++++---- 2 files changed, 64 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..c92cbef --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,30 @@ +name: Release + +on: + push: + tags: + # Publish on any tag starting with a `v`, e.g., v1.2.3 + - v* + +jobs: + pypi: + name: Publish to PyPI + runs-on: ubuntu-latest + # Environment and permissions trusted publishing. + environment: + # Create this environment in the GitHub repository under Settings -> Environments + name: pypi + permissions: + id-token: write + contents: read + steps: + - name: Checkout + uses: actions/checkout@v5 + - name: Install uv + uses: astral-sh/setup-uv@v6 + - name: Install Python 3.11 + run: uv python install 3.11 + - name: Build + run: uv build + - name: Publish + run: uv publish diff --git a/pyproject.toml b/pyproject.toml index 16eaac4..45c0f4e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,12 +1,14 @@ [project] name = "nextcloud-mcp-server" version = "0.17.0" -description = "" +description = "Model Context Protocol (MCP) server for Nextcloud integration - enables AI assistants to interact with Nextcloud data" authors = [ - {name = "Chris Coutinho",email = "chris@coutinho.io"} + {name = "Chris Coutinho", email = "chris@coutinho.io"} ] readme = "README.md" +license = {text = "AGPL-3.0-only"} requires-python = ">=3.11" +keywords = ["nextcloud", "mcp", "model-context-protocol", "llm", "ai", "claude", "webdav", "caldav", "carddav"] dependencies = [ "mcp[cli] (>=1.18,<1.19)", "httpx (>=0.28.1,<0.29.0)", @@ -17,6 +19,24 @@ dependencies = [ "click>=8.1.8", "caldav", ] +classifiers = [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Affero General Public License v3", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Scientific/Engineering :: Artificial Intelligence", + "Topic :: Communications", + "Topic :: Internet :: WWW/HTTP", +] + +[project.urls] +Homepage = "https://github.com/cbcoutinho/nextcloud-mcp-server" +Documentation = "https://github.com/cbcoutinho/nextcloud-mcp-server#readme" +Repository = "https://github.com/cbcoutinho/nextcloud-mcp-server" +"Bug Tracker" = "https://github.com/cbcoutinho/nextcloud-mcp-server/issues" +Changelog = "https://github.com/cbcoutinho/nextcloud-mcp-server/blob/master/CHANGELOG.md" [tool.pytest.ini_options] anyio_mode = "auto" @@ -50,8 +70,12 @@ extend-select = ["I"] caldav = { git = "https://github.com/cbcoutinho/caldav", branch = "feature/httpx" } [build-system] -requires = ["poetry-core>=2.0.0,<3.0.0"] -build-backend = "poetry.core.masonry.api" +requires = ["uv_build>=0.9.4,<0.10.0"] +build-backend = "uv_build" + +[tool.uv.build-backend] +module-name = "nextcloud_mcp_server" +module-root = "" [dependency-groups] dev = [ @@ -67,3 +91,9 @@ dev = [ [project.scripts] nextcloud-mcp-server = "nextcloud_mcp_server.app:run" + +[[tool.uv.index]] +name = "testpypi" +url = "https://test.pypi.org/simple/" +publish-url = "https://test.pypi.org/legacy/" +explicit = true