Просмотр исходного кода

Closes #19535 - Add Project Stanza to pyproject toml (#19643)

* feat(project): Add project metadata to pyproject.toml

Introduces project metadata, including name, version, authors, and
description, to `pyproject.toml` for enhanced package definition.
Also includes URLs for source code, documentation, and issue tracking.

* docs(release): Add checklist item for Python versions in pyproject.toml

Include step to update minimum and supported Python versions
in the project metadata file as part of the release process.

* docs(release): Update checklist to include pyproject.toml versioning

Add a step to update the version in `pyproject.toml` alongside
`release.yaml`.

* feat(project): Update pyproject.toml for best practices

Refreshes metadata to resolve deprecations and follow packaging best
practices. Updates include description, license, Python versions,
classifiers, maintainers, and repository URLs for improved compliance.

* fix(project): Update repository URL key in pyproject.toml

Replaces the 'Repository' key with 'Source' in accordance with updated
metadata conventions. This ensures compliance with modern best
practices for project metadata.

* fix(project): Specify Python 3 :: Only in classifiers

Updates the Python version classifier in `pyproject.toml` to indicate
support exclusively for Python 3. This change ensures clarity in the
supported Python versions for the project metadata.
Martin Hauser 8 месяцев назад
Родитель
Сommit
d68f42140f
2 измененных файлов с 36 добавлено и 1 удалено
  1. 2 1
      docs/development/release-checklist.md
  2. 34 0
      pyproject.toml

+ 2 - 1
docs/development/release-checklist.md

@@ -54,6 +54,7 @@ If a new Django release is adopted or other major dependencies (Python, PostgreS
 * Update the installation guide (`docs/installation/index.md`) with the new minimum versions.
 * Update the upgrade guide (`docs/installation/upgrading.md`) for the current version accordingly.
 * Update the minimum PostgreSQL version in the programming error template (`netbox/templates/exceptions/programming_error.html`).
+* Update the minimum and supported Python versions in the project metadata file (`pyproject.toml`)
 
 ### Manually Perform a New Install
 
@@ -165,7 +166,7 @@ Then, compile these portable (`.po`) files for use in the application:
 
 ### Update Version and Changelog
 
-* Update the version number and date in `netbox/release.yaml`. Add or remove the designation (e.g. `beta1`) if applicable.
+* Update the version number and date in `netbox/release.yaml` and `pyproject.toml`. Add or remove the designation (e.g. `beta1`) if applicable.
 * Update the example version numbers in the feature request and bug report templates under `.github/ISSUE_TEMPLATES/`.
 * Add a section for this release at the top of the changelog page for the minor version (e.g. `docs/release-notes/version-4.2.md`) listing all relevant changes made in this release.
 

+ 34 - 0
pyproject.toml

@@ -1,6 +1,40 @@
 # See PEP 518 for the spec of this file
 # https://www.python.org/dev/peps/pep-0518/
 
+[project]
+name = "netbox"
+version = "4.3.1"
+requires-python = ">=3.10"
+authors = [
+    { name = "NetBox Community" }
+]
+maintainers = [
+    { name = "NetBox Community" }
+]
+description = "The premier source of truth powering network automation."
+readme = "README.md"
+license = "Apache-2.0"
+license-files = ["LICENSE.txt"]
+classifiers = [
+    "Development Status :: 5 - Production/Stable",
+    "Framework :: Django",
+    "Intended Audience :: Developers",
+    "Intended Audience :: System Administrators",
+    "Natural Language :: English",
+    "Programming Language :: Python",
+    "Programming Language :: Python :: 3 :: Only",
+    "Programming Language :: Python :: 3.10",
+    "Programming Language :: Python :: 3.11",
+    "Programming Language :: Python :: 3.12",
+]
+
+
+[project.urls]
+Homepage = "https://netboxlabs.com/products/netbox/"
+Documentation = "https://netboxlabs.com/docs/netbox/"
+Source = "https://github.com/netbox-community/netbox"
+Issues = "https://github.com/netbox-community/netbox/issues"
+
 [tool.black]
 line-length = 120
 target_version = ['py310', 'py311', 'py312']