فهرست منبع

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 11 ماه پیش
والد
کامیت
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']