Skip to content

Migrate package metadata to [project] and enable uv project - #265

Merged
shchur merged 3 commits into
masterfrom
pyproject-project-table
Aug 7, 2026
Merged

Migrate package metadata to [project] and enable uv project#265
shchur merged 3 commits into
masterfrom
pyproject-project-table

Conversation

@shchur

@shchur shchur commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

What

Adds a [build-system] + [project] table to pyproject.toml so uv recognizes this as a project — uv sync / uv lock now work (previously there was no [project], so uv had nothing to resolve).

How the split works

  • Static metadata → [project]: name, description, readme, license (SPDX), license-files, authors, classifiers, requires-python, [project.urls], [project.scripts] entry point.
  • Dynamic → still owned by setup.py: version, dependencies, optional-dependencies. These stay in setup.py so the release-flow logic (RELEASE=1 → clean 0.5.1, else 0.5.1.dev0) is preserved untouched. setup.py is trimmed to just those + version-file generation and package discovery.

Note: [project].version and dynamic = ["version"] are mutually exclusive, so hardcoding the version in pyproject would have reintroduced the manual per-release edit we removed in #264. Keeping it dynamic avoids that.

Consistency with the main autogluon repo

  • Same build backend: setuptools.build_meta (not hatchling).
  • setuptools>=77 — required for the PEP 639 SPDX license = "Apache-2.0" expression (matches autogluon's floor; >=64 would mishandle the license field).
  • description set to "Train and deploy ML models in the cloud" to match the GitHub repo tagline.

Other

  • uv.lock is gitignored — this is a library, not an app, so we don't pin the (huge, churny) transitive tree.
  • Fixed the Documentation URL to https://auto.gluon.ai/cloud.
  • The old License :: OSI Approved classifier is replaced by the PEP 639 License-Expression (setuptools bundles LICENSE/NOTICE).

Verification

Built the wheel (uvx --from build pyproject-build --wheel) and inspected METADATA:

  • Name: autogluon.cloud, Version: 0.5.1.dev0 (dynamic version resolves)
  • Summary: Train and deploy ML models in the cloud
  • Requires-Python: <3.14,>=3.10, all Project-URLs present
  • License-Expression: Apache-2.0; LICENSE + NOTICE packaged
  • Entry point autogluon-cloud = autogluon.cloud.cli:main
  • Core deps + ray / all / tests extras all correct
  • uv lock resolves the full dependency tree

Adds [build-system] + [project] to pyproject.toml so uv recognizes a project
(uv sync / uv lock now work). Static metadata (description, readme, license,
classifiers, urls, entry point, requires-python) moves into [project]; version,
dependencies, and optional-dependencies stay dynamic in setup.py so the
RELEASE=1 -> clean version, else .dev0 logic is preserved.

setup.py is trimmed to just the dynamic bits + version-file generation and
package discovery. uv.lock is gitignored (library, not app).

Matches the main autogluon repo's packaging: setuptools.build_meta backend,
setuptools>=77 (needed for the PEP 639 SPDX license expression), and the
description matches the GitHub repo tagline.
@shchur
shchur force-pushed the pyproject-project-table branch from 28f2bb5 to 80929aa Compare August 7, 2026 12:16
@shchur
shchur merged commit 923022e into master Aug 7, 2026
8 checks passed
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown

Job PR-265-09f8018 is done.
Docs are uploaded to https://d12sc05jpx1wj5.cloudfront.net/PR-265/09f8018/index.html

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown

Job PR-265-e347dc7 is done.
Docs are uploaded to https://d12sc05jpx1wj5.cloudfront.net/PR-265/e347dc7/index.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant