git: 29e1f13de1e7 - main - net-mgmt/netbox: Update to 4.1.6

From: Kai Knoblich <kai_at_FreeBSD.org>
Date: Fri, 01 Nov 2024 15:24:03 UTC
The branch main has been updated by kai:

URL: https://cgit.FreeBSD.org/ports/commit/?id=29e1f13de1e7418c860c5cd701138b621433c3f8

commit 29e1f13de1e7418c860c5cd701138b621433c3f8
Author:     Kai Knoblich <kai@FreeBSD.org>
AuthorDate: 2024-11-01 15:14:14 +0000
Commit:     Kai Knoblich <kai@FreeBSD.org>
CommitDate: 2024-11-01 15:21:10 +0000

    net-mgmt/netbox: Update to 4.1.6
    
    It contains many bugfixes/enhancements and the following new features:
    
    * Circuit Groups
    * VLAN Group ID Ranges
    * Nested Device Modules
    * Rack Types
    * Plugins Catalog Integration
    * User Notifications
    
    https://netbox.readthedocs.io/en/stable/release-notes/version-4.1/
    
    MFH:            No (feature release)
---
 net-mgmt/netbox/Makefile             |  31 +++++-----
 net-mgmt/netbox/distinfo             |   6 +-
 net-mgmt/netbox/files/pkg-message.in |  26 ++++++++
 net-mgmt/netbox/pkg-plist            | 117 ++++++++++++++++++++++++++---------
 4 files changed, 134 insertions(+), 46 deletions(-)

diff --git a/net-mgmt/netbox/Makefile b/net-mgmt/netbox/Makefile
index 985fc97af296..4e7a30b28d45 100644
--- a/net-mgmt/netbox/Makefile
+++ b/net-mgmt/netbox/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	netbox
 DISTVERSIONPREFIX=	v
-DISTVERSION=	4.0.11
+DISTVERSION=	4.1.6
 CATEGORIES=	net-mgmt python
 
 MAINTAINER=	kai@FreeBSD.org
@@ -23,43 +23,44 @@ LICENSE_FILE=	${WRKSRC}/LICENSE.txt
 # - www/py-dj50-django-tables2
 # - www/py-dj50-djangorestframework
 #
-RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}django50>=5.0.8<5.1:www/py-django50@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}dj50-django-cors-headers>=4.4.0<5:www/py-dj50-django-cors-headers@${PY_FLAVOR} \
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}django50>=5.0.9<5.1:www/py-django50@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}dj50-django-cors-headers>=4.6.0<5:www/py-dj50-django-cors-headers@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}dj50-django-debug-toolbar>=4.4.6<4.5:www/py-dj50-django-debug-toolbar@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}dj50-django-filter>=24.2<25:www/py-dj50-django-filter@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}dj50-django-htmx>=1.19.0<2:www/py-dj50-django-htmx@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}dj50-django-filter>=24.3<25:www/py-dj50-django-filter@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}dj50-django-htmx>=1.21.0<2:www/py-dj50-django-htmx@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}dj50-django-mptt>=0.16.0<0.17:www/py-dj50-django-mptt@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}dj50-django-prometheus>=2.3.1<2.4:www/py-dj50-django-prometheus@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}dj50-django-redis>=5.4.0<6:www/py-dj50-django-redis@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}dj50-django-rich>=1.11.0<2:www/py-dj50-django-rich@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}dj50-django-rich>=1.13.0<2:www/py-dj50-django-rich@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}dj50-django-rq>=2.10.2<2.11:devel/py-dj50-django-rq@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}dj50-django-tables2>=2.7.0<2.8:www/py-dj50-django-tables2@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}dj50-django-taggit>=5.0.1<6:www/py-dj50-django-taggit@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}dj50-django-taggit>=6.1.0<7:www/py-dj50-django-taggit@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}dj50-django-timezone-field>=7.0<8:www/py-dj50-django-timezone-field@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}dj50-djangorestframework>=3.15.2<3.16.0:www/py-dj50-djangorestframework@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}dj50-drf-spectacular>=0.27.2<1:www/py-dj50-drf-spectacular@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}dj50-drf-spectacular-sidecar>=2024.7.1:www/py-dj50-drf-spectacular-sidecar@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}dj50-strawberry-graphql>=0.239.2<0.300:devel/py-dj50-strawberry-graphql@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}dj50-strawberry-graphql-django>=0.47.1<1:www/py-dj50-strawberry-graphql-django@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}dj50-strawberry-graphql>=0.247.0<0.300:devel/py-dj50-strawberry-graphql@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}dj50-strawberry-graphql-django>=0.49.1<1:www/py-dj50-strawberry-graphql-django@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}django-pglocks>=1.0.4<1.1:www/py-django-pglocks@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}feedparser>=6.0.11<7:textproc/py-feedparser@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}Jinja2>=3.1.4<4:devel/py-Jinja2@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}markdown>=3.6<3.8:textproc/py-markdown@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}mkdocs-material>=9.5.33<10:textproc/py-mkdocs-material@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}mkdocstrings>=0.26<1:textproc/py-mkdocstrings@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}mkdocs-material>=9.5.43<10:textproc/py-mkdocs-material@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}mkdocstrings>=0.26.2<1:textproc/py-mkdocstrings@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}mkdocstrings-python-legacy>0:textproc/py-mkdocstrings-python-legacy@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}netaddr>=1.3.0<2:net/py-netaddr@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}nh3>=0.2.18<0.3:www/py-nh3@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}pillow>=10.4.0:graphics/py-pillow@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pillow>=11.0.0:graphics/py-pillow@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}psycopg>=3.1.20<4:databases/py-psycopg@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}psycopg-c>=3.1.20<4:databases/py-psycopg-c@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}psycopg-pool>=3.2.1<4:databases/py-psycopg-pool@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}psycopg-pool>=3.2.3<4:databases/py-psycopg-pool@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}requests>=2.32.3<3:www/py-requests@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}rq>=1.16.2<2:devel/py-rq@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}social-auth-app-django>=5.4.2<6:www/py-social-auth-app-django@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}social-auth-core>=4.5.4<5:security/py-social-auth-core@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}svgwrite>=1.4.3<2:graphics/py-svgwrite@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}tablib>=3.6.1<4:textproc/py-tablib@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}tzdata>=2024.1:devel/py-tzdata@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}tablib>=3.7.0<4:textproc/py-tablib@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}tzdata>=2024.2:devel/py-tzdata@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}pyyaml>=6.0.1<7:devel/py-pyyaml@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}gunicorn>=23.0.0<24:www/py-gunicorn@${PY_FLAVOR}
 
diff --git a/net-mgmt/netbox/distinfo b/net-mgmt/netbox/distinfo
index eab9e8912734..4dc261b09462 100644
--- a/net-mgmt/netbox/distinfo
+++ b/net-mgmt/netbox/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1725377596
-SHA256 (netbox-community-netbox-v4.0.11_GH0.tar.gz) = 3775861502bb23caa6d3962d414c7affdcf8c3fb57804194bcb88e7e79daa71c
-SIZE (netbox-community-netbox-v4.0.11_GH0.tar.gz) = 19402442
+TIMESTAMP = 1730457579
+SHA256 (netbox-community-netbox-v4.1.6_GH0.tar.gz) = 8056a84f56fd32f4dd909713f7defdad09ffe245deb738511268085aed8bba36
+SIZE (netbox-community-netbox-v4.1.6_GH0.tar.gz) = 18215808
diff --git a/net-mgmt/netbox/files/pkg-message.in b/net-mgmt/netbox/files/pkg-message.in
index cf841f373300..6114a62bdbb7 100644
--- a/net-mgmt/netbox/files/pkg-message.in
+++ b/net-mgmt/netbox/files/pkg-message.in
@@ -414,4 +414,30 @@ must be checked before proceeding with the upgrade.
       have been removed.
 EOD
 }
+{ type: upgrade
+  maximum_version: 4.1.6
+  message: <<EOD
+1. The NetBox 4.1 release contains some breaking changes, so the following
+   items should be checked before upgrading:
+
+   * Several filters deprecated in v4.0 have been removed.
+
+   * The unit size for "VirtualMachine.disk" and "VirtualDisk.size" has been
+     changed from 1 gigabyte to 1 megabyte. Existing values will be adjusted
+     automatically during the upgrade process.
+
+   * The "min_vid" and "max_vid" fields on the VLAN group model have been
+     replaced with "vid_ranges", an array of starting and ending VLAN ID pairs.
+
+   * The five individual event type fields on the "EventRule" model have been
+     replaced by a single "event_types" array field, which lists applicable
+     event types by name.
+
+   * All UI views & API endpoints associated with change records have been
+     moved from "/extras" to "/core".
+
+   * The "validate()" method on "CustomValidator" subclasses now must accept
+     the request argument.
+EOD
+}
 ]
diff --git a/net-mgmt/netbox/pkg-plist b/net-mgmt/netbox/pkg-plist
index 6fad780e79b5..fed5d995592d 100644
--- a/net-mgmt/netbox/pkg-plist
+++ b/net-mgmt/netbox/pkg-plist
@@ -17,6 +17,7 @@
 %%DATADIR%%/circuits/api/serializers.py
 %%DATADIR%%/circuits/api/serializers_/__init__.py
 %%DATADIR%%/circuits/api/serializers_/circuits.py
+%%DATADIR%%/circuits/api/serializers_/nested.py
 %%DATADIR%%/circuits/api/serializers_/providers.py
 %%DATADIR%%/circuits/api/urls.py
 %%DATADIR%%/circuits/api/views.py
@@ -37,6 +38,7 @@
 %%DATADIR%%/circuits/migrations/0003_squashed_0037.py
 %%DATADIR%%/circuits/migrations/0038_squashed_0042.py
 %%DATADIR%%/circuits/migrations/0043_circuittype_color.py
+%%DATADIR%%/circuits/migrations/0044_circuit_groups.py
 %%DATADIR%%/circuits/migrations/__init__.py
 %%DATADIR%%/circuits/models/__init__.py
 %%DATADIR%%/circuits/models/circuits.py
@@ -59,6 +61,7 @@
 %%DATADIR%%/core/api/schema.py
 %%DATADIR%%/core/api/serializers.py
 %%DATADIR%%/core/api/serializers_/__init__.py
+%%DATADIR%%/core/api/serializers_/change_logging.py
 %%DATADIR%%/core/api/serializers_/data.py
 %%DATADIR%%/core/api/serializers_/jobs.py
 %%DATADIR%%/core/api/urls.py
@@ -67,6 +70,7 @@
 %%DATADIR%%/core/choices.py
 %%DATADIR%%/core/constants.py
 %%DATADIR%%/core/data_backends.py
+%%DATADIR%%/core/events.py
 %%DATADIR%%/core/exceptions.py
 %%DATADIR%%/core/filtersets.py
 %%DATADIR%%/core/forms/__init__.py
@@ -77,6 +81,7 @@
 %%DATADIR%%/core/forms/model_forms.py
 %%DATADIR%%/core/graphql/__init__.py
 %%DATADIR%%/core/graphql/filters.py
+%%DATADIR%%/core/graphql/mixins.py
 %%DATADIR%%/core/graphql/schema.py
 %%DATADIR%%/core/graphql/types.py
 %%DATADIR%%/core/jobs.py
@@ -92,24 +97,32 @@
 %%DATADIR%%/core/migrations/0008_contenttype_proxy.py
 %%DATADIR%%/core/migrations/0009_configrevision.py
 %%DATADIR%%/core/migrations/0010_gfk_indexes.py
+%%DATADIR%%/core/migrations/0011_move_objectchange.py
+%%DATADIR%%/core/migrations/0012_job_object_type_optional.py
 %%DATADIR%%/core/migrations/__init__.py
 %%DATADIR%%/core/models/__init__.py
+%%DATADIR%%/core/models/change_logging.py
 %%DATADIR%%/core/models/config.py
 %%DATADIR%%/core/models/contenttypes.py
 %%DATADIR%%/core/models/data.py
 %%DATADIR%%/core/models/files.py
 %%DATADIR%%/core/models/jobs.py
+%%DATADIR%%/core/plugins.py
+%%DATADIR%%/core/querysets.py
 %%DATADIR%%/core/search.py
 %%DATADIR%%/core/signals.py
 %%DATADIR%%/core/tables/__init__.py
+%%DATADIR%%/core/tables/change_logging.py
 %%DATADIR%%/core/tables/columns.py
 %%DATADIR%%/core/tables/config.py
 %%DATADIR%%/core/tables/data.py
 %%DATADIR%%/core/tables/jobs.py
 %%DATADIR%%/core/tables/plugins.py
 %%DATADIR%%/core/tables/tasks.py
+%%DATADIR%%/core/tables/template_code.py
 %%DATADIR%%/core/tests/__init__.py
 %%DATADIR%%/core/tests/test_api.py
+%%DATADIR%%/core/tests/test_changelog.py
 %%DATADIR%%/core/tests/test_filtersets.py
 %%DATADIR%%/core/tests/test_models.py
 %%DATADIR%%/core/tests/test_views.py
@@ -128,6 +141,7 @@
 %%DATADIR%%/dcim/api/serializers_/devicetype_components.py
 %%DATADIR%%/dcim/api/serializers_/devicetypes.py
 %%DATADIR%%/dcim/api/serializers_/manufacturers.py
+%%DATADIR%%/dcim/api/serializers_/nested.py
 %%DATADIR%%/dcim/api/serializers_/platforms.py
 %%DATADIR%%/dcim/api/serializers_/power.py
 %%DATADIR%%/dcim/api/serializers_/racks.py
@@ -175,6 +189,10 @@
 %%DATADIR%%/dcim/migrations/0185_gfk_indexes.py
 %%DATADIR%%/dcim/migrations/0186_location_facility.py
 %%DATADIR%%/dcim/migrations/0187_alter_device_vc_position.py
+%%DATADIR%%/dcim/migrations/0188_racktype.py
+%%DATADIR%%/dcim/migrations/0189_moduletype_rack_airflow.py
+%%DATADIR%%/dcim/migrations/0190_nested_modules.py
+%%DATADIR%%/dcim/migrations/0191_module_bay_rebuild.py
 %%DATADIR%%/dcim/migrations/__init__.py
 %%DATADIR%%/dcim/models/__init__.py
 %%DATADIR%%/dcim/models/cables.py
@@ -212,7 +230,9 @@
 %%DATADIR%%/dcim/utils.py
 %%DATADIR%%/dcim/views.py
 %%DATADIR%%/docs/_theme/main.html
-%%DATADIR%%/docs/administration/authentication/microsoft-azure-ad.md
+%%DATADIR%%/docs/_theme/partials/copyright.html
+%%DATADIR%%/docs/administration/authentication/google.md
+%%DATADIR%%/docs/administration/authentication/microsoft-entra-id.md
 %%DATADIR%%/docs/administration/authentication/okta.md
 %%DATADIR%%/docs/administration/authentication/overview.md
 %%DATADIR%%/docs/administration/error-reporting.md
@@ -224,6 +244,7 @@
 %%DATADIR%%/docs/configuration/default-values.md
 %%DATADIR%%/docs/configuration/development.md
 %%DATADIR%%/docs/configuration/error-reporting.md
+%%DATADIR%%/docs/configuration/graphql-api.md
 %%DATADIR%%/docs/configuration/index.md
 %%DATADIR%%/docs/configuration/miscellaneous.md
 %%DATADIR%%/docs/configuration/plugins.md
@@ -268,6 +289,7 @@
 %%DATADIR%%/docs/features/ipam.md
 %%DATADIR%%/docs/features/journaling.md
 %%DATADIR%%/docs/features/l2vpn-overlay.md
+%%DATADIR%%/docs/features/notifications.md
 %%DATADIR%%/docs/features/power-tracking.md
 %%DATADIR%%/docs/features/search.md
 %%DATADIR%%/docs/features/synchronized-data.md
@@ -301,7 +323,9 @@
 %%DATADIR%%/docs/media/authentication/azure_ad_client_secret.png
 %%DATADIR%%/docs/media/authentication/azure_ad_client_secret_created.png
 %%DATADIR%%/docs/media/authentication/azure_ad_login_portal.png
+%%DATADIR%%/docs/media/authentication/google_login_portal.png
 %%DATADIR%%/docs/media/authentication/netbox_azure_ad_login.png
+%%DATADIR%%/docs/media/authentication/netbox_google_login.png
 %%DATADIR%%/docs/media/authentication/netbox_okta_login.png
 %%DATADIR%%/docs/media/authentication/okta_create_app_registration.png
 %%DATADIR%%/docs/media/authentication/okta_integration_parameters.png
@@ -315,8 +339,6 @@
 %%DATADIR%%/docs/media/development/transifex_sync.png
 %%DATADIR%%/docs/media/installation/netbox_application_stack.png
 %%DATADIR%%/docs/media/installation/upgrade_paths.png
-%%DATADIR%%/docs/media/misc/netbox_cloud.png
-%%DATADIR%%/docs/media/misc/netbox_logo.png
 %%DATADIR%%/docs/media/misc/reference_architecture.png
 %%DATADIR%%/docs/media/models/dcim_cable_trace.png
 %%DATADIR%%/docs/media/power_distribution.png
@@ -328,6 +350,8 @@
 %%DATADIR%%/docs/media/screenshots/prefixes-list.png
 %%DATADIR%%/docs/media/screenshots/rack.png
 %%DATADIR%%/docs/models/circuits/circuit.md
+%%DATADIR%%/docs/models/circuits/circuitgroup.md
+%%DATADIR%%/docs/models/circuits/circuitgroupassignment.md
 %%DATADIR%%/docs/models/circuits/circuittermination.md
 %%DATADIR%%/docs/models/circuits/circuittype.md
 %%DATADIR%%/docs/models/circuits/provider.md
@@ -369,6 +393,7 @@
 %%DATADIR%%/docs/models/dcim/rack.md
 %%DATADIR%%/docs/models/dcim/rackreservation.md
 %%DATADIR%%/docs/models/dcim/rackrole.md
+%%DATADIR%%/docs/models/dcim/racktype.md
 %%DATADIR%%/docs/models/dcim/rearport.md
 %%DATADIR%%/docs/models/dcim/rearporttemplate.md
 %%DATADIR%%/docs/models/dcim/region.md
@@ -387,8 +412,11 @@
 %%DATADIR%%/docs/models/extras/exporttemplate.md
 %%DATADIR%%/docs/models/extras/imageattachment.md
 %%DATADIR%%/docs/models/extras/journalentry.md
+%%DATADIR%%/docs/models/extras/notification.md
+%%DATADIR%%/docs/models/extras/notificationgroup.md
 %%DATADIR%%/docs/models/extras/savedfilter.md
 %%DATADIR%%/docs/models/extras/stagedchange.md
+%%DATADIR%%/docs/models/extras/subscription.md
 %%DATADIR%%/docs/models/extras/tag.md
 %%DATADIR%%/docs/models/extras/webhook.md
 %%DATADIR%%/docs/models/ipam/aggregate.md
@@ -431,11 +459,12 @@
 %%DATADIR%%/docs/models/wireless/wirelesslan.md
 %%DATADIR%%/docs/models/wireless/wirelesslangroup.md
 %%DATADIR%%/docs/models/wireless/wirelesslink.md
-%%DATADIR%%/docs/netbox_logo.png
-%%DATADIR%%/docs/netbox_logo.svg
-%%DATADIR%%/docs/plugins/development/background-tasks.md
+%%DATADIR%%/docs/netbox_logo_dark.svg
+%%DATADIR%%/docs/netbox_logo_light.svg
+%%DATADIR%%/docs/plugins/development/background-jobs.md
 %%DATADIR%%/docs/plugins/development/dashboard-widgets.md
 %%DATADIR%%/docs/plugins/development/data-backends.md
+%%DATADIR%%/docs/plugins/development/event-types.md
 %%DATADIR%%/docs/plugins/development/exceptions.md
 %%DATADIR%%/docs/plugins/development/filtersets.md
 %%DATADIR%%/docs/plugins/development/forms.md
@@ -478,6 +507,7 @@
 %%DATADIR%%/docs/release-notes/version-3.6.md
 %%DATADIR%%/docs/release-notes/version-3.7.md
 %%DATADIR%%/docs/release-notes/version-4.0.md
+%%DATADIR%%/docs/release-notes/version-4.1.md
 %%DATADIR%%/extras/__init__.py
 %%DATADIR%%/extras/api/__init__.py
 %%DATADIR%%/extras/api/customfields.py
@@ -487,7 +517,6 @@
 %%DATADIR%%/extras/api/serializers_/__init__.py
 %%DATADIR%%/extras/api/serializers_/attachments.py
 %%DATADIR%%/extras/api/serializers_/bookmarks.py
-%%DATADIR%%/extras/api/serializers_/change_logging.py
 %%DATADIR%%/extras/api/serializers_/configcontexts.py
 %%DATADIR%%/extras/api/serializers_/configtemplates.py
 %%DATADIR%%/extras/api/serializers_/customfields.py
@@ -496,6 +525,7 @@
 %%DATADIR%%/extras/api/serializers_/events.py
 %%DATADIR%%/extras/api/serializers_/exporttemplates.py
 %%DATADIR%%/extras/api/serializers_/journaling.py
+%%DATADIR%%/extras/api/serializers_/notifications.py
 %%DATADIR%%/extras/api/serializers_/objecttypes.py
 %%DATADIR%%/extras/api/serializers_/savedfilters.py
 %%DATADIR%%/extras/api/serializers_/scripts.py
@@ -506,7 +536,6 @@
 %%DATADIR%%/extras/choices.py
 %%DATADIR%%/extras/conditions.py
 %%DATADIR%%/extras/constants.py
-%%DATADIR%%/extras/context_managers.py
 %%DATADIR%%/extras/dashboard/__init__.py
 %%DATADIR%%/extras/dashboard/forms.py
 %%DATADIR%%/extras/dashboard/utils.py
@@ -532,6 +561,7 @@
 %%DATADIR%%/extras/graphql/mixins.py
 %%DATADIR%%/extras/graphql/schema.py
 %%DATADIR%%/extras/graphql/types.py
+%%DATADIR%%/extras/jobs.py
 %%DATADIR%%/extras/lookups.py
 %%DATADIR%%/extras/management/__init__.py
 %%DATADIR%%/extras/management/commands/__init__.py
@@ -562,14 +592,19 @@
 %%DATADIR%%/extras/migrations/0114_customfield_add_comments.py
 %%DATADIR%%/extras/migrations/0115_convert_dashboard_widgets.py
 %%DATADIR%%/extras/migrations/0116_custom_link_button_color.py
+%%DATADIR%%/extras/migrations/0117_move_objectchange.py
+%%DATADIR%%/extras/migrations/0118_customfield_uniqueness.py
+%%DATADIR%%/extras/migrations/0119_notifications.py
+%%DATADIR%%/extras/migrations/0120_eventrule_event_types.py
+%%DATADIR%%/extras/migrations/0121_customfield_related_object_filter.py
 %%DATADIR%%/extras/migrations/__init__.py
 %%DATADIR%%/extras/models/__init__.py
-%%DATADIR%%/extras/models/change_logging.py
 %%DATADIR%%/extras/models/configs.py
 %%DATADIR%%/extras/models/customfields.py
 %%DATADIR%%/extras/models/dashboard.py
 %%DATADIR%%/extras/models/mixins.py
 %%DATADIR%%/extras/models/models.py
+%%DATADIR%%/extras/models/notifications.py
 %%DATADIR%%/extras/models/scripts.py
 %%DATADIR%%/extras/models/search.py
 %%DATADIR%%/extras/models/staging.py
@@ -580,15 +615,14 @@
 %%DATADIR%%/extras/search.py
 %%DATADIR%%/extras/signals.py
 %%DATADIR%%/extras/tables/__init__.py
+%%DATADIR%%/extras/tables/columns.py
 %%DATADIR%%/extras/tables/tables.py
-%%DATADIR%%/extras/tables/template_code.py
 %%DATADIR%%/extras/templatetags/__init__.py
 %%DATADIR%%/extras/templatetags/custom_links.py
 %%DATADIR%%/extras/templatetags/dashboard.py
 %%DATADIR%%/extras/templatetags/log_levels.py
 %%DATADIR%%/extras/tests/__init__.py
 %%DATADIR%%/extras/tests/test_api.py
-%%DATADIR%%/extras/tests/test_changelog.py
 %%DATADIR%%/extras/tests/test_conditions.py
 %%DATADIR%%/extras/tests/test_custom_validation.py
 %%DATADIR%%/extras/tests/test_customfields.py
@@ -615,6 +649,7 @@
 %%DATADIR%%/ipam/api/serializers_/asns.py
 %%DATADIR%%/ipam/api/serializers_/fhrpgroups.py
 %%DATADIR%%/ipam/api/serializers_/ip.py
+%%DATADIR%%/ipam/api/serializers_/nested.py
 %%DATADIR%%/ipam/api/serializers_/roles.py
 %%DATADIR%%/ipam/api/serializers_/services.py
 %%DATADIR%%/ipam/api/serializers_/vlans.py
@@ -649,6 +684,7 @@
 %%DATADIR%%/ipam/migrations/0054_squashed_0067.py
 %%DATADIR%%/ipam/migrations/0068_move_l2vpn.py
 %%DATADIR%%/ipam/migrations/0069_gfk_indexes.py
+%%DATADIR%%/ipam/migrations/0070_vlangroup_vlan_id_ranges.py
 %%DATADIR%%/ipam/migrations/__init__.py
 %%DATADIR%%/ipam/models/__init__.py
 %%DATADIR%%/ipam/models/asns.py
@@ -695,6 +731,7 @@
 %%DATADIR%%/netbox/api/serializers/__init__.py
 %%DATADIR%%/netbox/api/serializers/base.py
 %%DATADIR%%/netbox/api/serializers/features.py
+%%DATADIR%%/netbox/api/serializers/fields.py
 %%DATADIR%%/netbox/api/serializers/generic.py
 %%DATADIR%%/netbox/api/serializers/nested.py
 %%DATADIR%%/netbox/api/views.py
@@ -709,9 +746,11 @@
 %%DATADIR%%/netbox/configuration_testing.py
 %%DATADIR%%/netbox/constants.py
 %%DATADIR%%/netbox/context.py
+%%DATADIR%%/netbox/context_managers.py
 %%DATADIR%%/netbox/context_processors.py
 %%DATADIR%%/netbox/data_backends.py
 %%DATADIR%%/netbox/denormalized.py
+%%DATADIR%%/netbox/events.py
 %%DATADIR%%/netbox/filtersets.py
 %%DATADIR%%/netbox/forms/__init__.py
 %%DATADIR%%/netbox/forms/base.py
@@ -722,6 +761,7 @@
 %%DATADIR%%/netbox/graphql/schema.py
 %%DATADIR%%/netbox/graphql/types.py
 %%DATADIR%%/netbox/graphql/views.py
+%%DATADIR%%/netbox/jobs.py
 %%DATADIR%%/netbox/middleware.py
 %%DATADIR%%/netbox/models/__init__.py
 %%DATADIR%%/netbox/models/features.py
@@ -770,6 +810,7 @@
 %%DATADIR%%/netbox/tests/test_config.py
 %%DATADIR%%/netbox/tests/test_graphql.py
 %%DATADIR%%/netbox/tests/test_import.py
+%%DATADIR%%/netbox/tests/test_jobs.py
 %%DATADIR%%/netbox/tests/test_plugins.py
 %%DATADIR%%/netbox/tests/test_registry.py
 %%DATADIR%%/netbox/tests/test_search.py
@@ -836,11 +877,6 @@
 %%DATADIR%%/project-static/dist/Inter-roman.var-EDENVCUS.woff2
 %%DATADIR%%/project-static/dist/Inter.var-FTIQFLGO.woff2
 %%DATADIR%%/project-static/dist/cable_trace.css
-%%DATADIR%%/project-static/dist/graphiql.css
-%%DATADIR%%/project-static/dist/graphiql.js
-%%DATADIR%%/project-static/dist/graphiql.js.map
-%%DATADIR%%/project-static/dist/graphiql.min.css
-%%DATADIR%%/project-static/dist/graphiql.min.js
 %%DATADIR%%/project-static/dist/graphiql/graphiql.min.css
 %%DATADIR%%/project-static/dist/graphiql/graphiql.min.js
 %%DATADIR%%/project-static/dist/graphiql/index.umd.js
@@ -848,23 +884,15 @@
 %%DATADIR%%/project-static/dist/graphiql/plugin-explorer-style.css
 %%DATADIR%%/project-static/dist/graphiql/react-dom.production.min.js
 %%DATADIR%%/project-static/dist/graphiql/react.production.min.js
-%%DATADIR%%/project-static/dist/index.umd.js
-%%DATADIR%%/project-static/dist/js.cookie.min.js
 %%DATADIR%%/project-static/dist/materialdesignicons-webfont-4ZM36VVG.woff
 %%DATADIR%%/project-static/dist/materialdesignicons-webfont-7OXPFKOV.woff2
 %%DATADIR%%/project-static/dist/materialdesignicons-webfont-A5TO3SM5.eot
 %%DATADIR%%/project-static/dist/materialdesignicons-webfont-OFFE53R5.ttf
-%%DATADIR%%/project-static/dist/netbox-dark.css
 %%DATADIR%%/project-static/dist/netbox-external.css
-%%DATADIR%%/project-static/dist/netbox-light.css
-%%DATADIR%%/project-static/dist/netbox-print.css
 %%DATADIR%%/project-static/dist/netbox.css
 %%DATADIR%%/project-static/dist/netbox.js
 %%DATADIR%%/project-static/dist/netbox.js.map
-%%DATADIR%%/project-static/dist/plugin-explorer-style.css
 %%DATADIR%%/project-static/dist/rack_elevation.css
-%%DATADIR%%/project-static/dist/react-dom.production.min.js
-%%DATADIR%%/project-static/dist/react.production.min.js
 %%DATADIR%%/project-static/dist/roboto-mono-latin-100-JQJ4Z5FD.woff2
 %%DATADIR%%/project-static/dist/roboto-mono-latin-100-SMKVIC22.woff
 %%DATADIR%%/project-static/dist/roboto-mono-latin-100italic-DARDHGP2.woff
@@ -894,9 +922,11 @@
 %%DATADIR%%/project-static/dist/roboto-mono-latin-700italic-KTWD2UYU.woff
 %%DATADIR%%/project-static/dist/roboto-mono-latin-700italic-WWLRMKIN.woff2
 %%DATADIR%%/project-static/docs/.info
+%%DATADIR%%/project-static/img/logo_netbox_bright_teal.svg
+%%DATADIR%%/project-static/img/logo_netbox_dark_teal.svg
+%%DATADIR%%/project-static/img/motif.svg
 %%DATADIR%%/project-static/img/netbox.ico
 %%DATADIR%%/project-static/img/netbox_icon.svg
-%%DATADIR%%/project-static/img/netbox_logo.svg
 %%DATADIR%%/project-static/img/netbox_touch-icon-180.png
 %%DATADIR%%/project-static/img/rest-api.ico
 %%DATADIR%%/project-static/js/setmode.js
@@ -905,6 +935,7 @@
 %%DATADIR%%/project-static/src/bs.ts
 %%DATADIR%%/project-static/src/buttons/connectionToggle.ts
 %%DATADIR%%/project-static/src/buttons/depthToggle.ts
+%%DATADIR%%/project-static/src/buttons/floatBulk.ts
 %%DATADIR%%/project-static/src/buttons/index.ts
 %%DATADIR%%/project-static/src/buttons/markdownPreview.ts
 %%DATADIR%%/project-static/src/buttons/moveOptions.ts
@@ -948,9 +979,11 @@
 %%DATADIR%%/project-static/src/util.ts
 %%DATADIR%%/project-static/styles/_variables.scss
 %%DATADIR%%/project-static/styles/custom/_code.scss
+%%DATADIR%%/project-static/styles/custom/_dashboard.scss
 %%DATADIR%%/project-static/styles/custom/_interfaces.scss
 %%DATADIR%%/project-static/styles/custom/_markdown.scss
 %%DATADIR%%/project-static/styles/custom/_misc.scss
+%%DATADIR%%/project-static/styles/custom/_notifications.scss
 %%DATADIR%%/project-static/styles/external.scss
 %%DATADIR%%/project-static/styles/netbox.scss
 %%DATADIR%%/project-static/styles/overrides/_bootstrap.scss
@@ -968,6 +1001,7 @@
 %%DATADIR%%/project-static/styles/transitional/_tabs.scss
 %%DATADIR%%/project-static/tsconfig.json
 %%DATADIR%%/project-static/yarn.lock
+%%DATADIR%%/release.yaml
 %%DATADIR%%/reports/__init__.py
 %%DATADIR%%/scripts/__init__.py
 %%DATADIR%%/templates/403.html
@@ -975,9 +1009,11 @@
 %%DATADIR%%/templates/500.html
 %%DATADIR%%/templates/account/base.html
 %%DATADIR%%/templates/account/bookmarks.html
+%%DATADIR%%/templates/account/notifications.html
 %%DATADIR%%/templates/account/password.html
 %%DATADIR%%/templates/account/preferences.html
 %%DATADIR%%/templates/account/profile.html
+%%DATADIR%%/templates/account/subscriptions.html
 %%DATADIR%%/templates/account/token.html
 %%DATADIR%%/templates/account/token_list.html
 %%DATADIR%%/templates/base/40x.html
@@ -985,6 +1021,8 @@
 %%DATADIR%%/templates/base/layout.html
 %%DATADIR%%/templates/circuits/circuit.html
 %%DATADIR%%/templates/circuits/circuit_terminations_swap.html
+%%DATADIR%%/templates/circuits/circuitgroup.html
+%%DATADIR%%/templates/circuits/circuitgroupassignment.html
 %%DATADIR%%/templates/circuits/circuittermination.html
 %%DATADIR%%/templates/circuits/circuittype.html
 %%DATADIR%%/templates/circuits/inc/circuit_termination.html
@@ -997,8 +1035,13 @@
 %%DATADIR%%/templates/core/datafile.html
 %%DATADIR%%/templates/core/datasource.html
 %%DATADIR%%/templates/core/inc/config_data.html
+%%DATADIR%%/templates/core/inc/plugin_installation.html
 %%DATADIR%%/templates/core/job.html
 %%DATADIR%%/templates/core/object_jobs.html
+%%DATADIR%%/templates/core/objectchange.html
+%%DATADIR%%/templates/core/objectchange_list.html
+%%DATADIR%%/templates/core/plugin.html
+%%DATADIR%%/templates/core/plugin_list.html
 %%DATADIR%%/templates/core/rq_queue_list.html
 %%DATADIR%%/templates/core/rq_task.html
 %%DATADIR%%/templates/core/rq_task_list.html
@@ -1042,9 +1085,13 @@
 %%DATADIR%%/templates/dcim/inc/cable_termination.html
 %%DATADIR%%/templates/dcim/inc/cable_toggle_buttons.html
 %%DATADIR%%/templates/dcim/inc/connection_endpoints.html
+%%DATADIR%%/templates/dcim/inc/devicetype_breadcrumbs.html
 %%DATADIR%%/templates/dcim/inc/endpoint_connection.html
 %%DATADIR%%/templates/dcim/inc/interface_vlans_table.html
+%%DATADIR%%/templates/dcim/inc/moduletype_buttons.html
 %%DATADIR%%/templates/dcim/inc/panels/inventory_items.html
+%%DATADIR%%/templates/dcim/inc/panels/racktype_dimensions.html
+%%DATADIR%%/templates/dcim/inc/panels/racktype_numbering.html
 %%DATADIR%%/templates/dcim/inc/rack_elevation.html
 %%DATADIR%%/templates/dcim/interface.html
 %%DATADIR%%/templates/dcim/inventoryitem.html
@@ -1054,7 +1101,6 @@
 %%DATADIR%%/templates/dcim/module.html
 %%DATADIR%%/templates/dcim/modulebay.html
 %%DATADIR%%/templates/dcim/moduletype.html
-%%DATADIR%%/templates/dcim/moduletype/base.html
 %%DATADIR%%/templates/dcim/moduletype/component_templates.html
 %%DATADIR%%/templates/dcim/platform.html
 %%DATADIR%%/templates/dcim/powerfeed.html
@@ -1069,6 +1115,7 @@
 %%DATADIR%%/templates/dcim/rack_list.html
 %%DATADIR%%/templates/dcim/rackreservation.html
 %%DATADIR%%/templates/dcim/rackrole.html
+%%DATADIR%%/templates/dcim/racktype.html
 %%DATADIR%%/templates/dcim/rearport.html
 %%DATADIR%%/templates/dcim/region.html
 %%DATADIR%%/templates/dcim/site.html
@@ -1119,11 +1166,10 @@
 %%DATADIR%%/templates/extras/inc/format_toggle.html
 %%DATADIR%%/templates/extras/inc/result_pending.html
 %%DATADIR%%/templates/extras/journalentry.html
+%%DATADIR%%/templates/extras/notificationgroup.html
 %%DATADIR%%/templates/extras/object_changelog.html
 %%DATADIR%%/templates/extras/object_configcontext.html
 %%DATADIR%%/templates/extras/object_journal.html
-%%DATADIR%%/templates/extras/objectchange.html
-%%DATADIR%%/templates/extras/objectchange_list.html
 %%DATADIR%%/templates/extras/report/base.html
 %%DATADIR%%/templates/extras/report/jobs.html
 %%DATADIR%%/templates/extras/report/source.html
@@ -1155,6 +1201,7 @@
 %%DATADIR%%/templates/home.html
 %%DATADIR%%/templates/htmx/delete_form.html
 %%DATADIR%%/templates/htmx/form.html
+%%DATADIR%%/templates/htmx/notifications.html
 %%DATADIR%%/templates/htmx/object_selector.html
 %%DATADIR%%/templates/htmx/object_selector_results.html
 %%DATADIR%%/templates/htmx/table.html
@@ -1168,6 +1215,7 @@
 %%DATADIR%%/templates/inc/light_toggle.html
 %%DATADIR%%/templates/inc/messages.html
 %%DATADIR%%/templates/inc/missing_prerequisites.html
+%%DATADIR%%/templates/inc/notification_bell.html
 %%DATADIR%%/templates/inc/paginator.html
 %%DATADIR%%/templates/inc/panel_table.html
 %%DATADIR%%/templates/inc/panels/comments.html
@@ -1265,6 +1313,7 @@
 %%DATADIR%%/tenancy/api/serializers.py
 %%DATADIR%%/tenancy/api/serializers_/__init__.py
 %%DATADIR%%/tenancy/api/serializers_/contacts.py
+%%DATADIR%%/tenancy/api/serializers_/nested.py
 %%DATADIR%%/tenancy/api/serializers_/tenants.py
 %%DATADIR%%/tenancy/api/urls.py
 %%DATADIR%%/tenancy/api/views.py
@@ -1339,6 +1388,7 @@
 %%DATADIR%%/users/api/nested_serializers.py
 %%DATADIR%%/users/api/serializers.py
 %%DATADIR%%/users/api/serializers_/__init__.py
+%%DATADIR%%/users/api/serializers_/nested.py
 %%DATADIR%%/users/api/serializers_/permissions.py
 %%DATADIR%%/users/api/serializers_/tokens.py
 %%DATADIR%%/users/api/serializers_/users.py
@@ -1425,16 +1475,19 @@
 %%DATADIR%%/utilities/object_types.py
 %%DATADIR%%/utilities/ordering.py
 %%DATADIR%%/utilities/paginator.py
+%%DATADIR%%/utilities/password_validation.py
 %%DATADIR%%/utilities/permissions.py
 %%DATADIR%%/utilities/query.py
 %%DATADIR%%/utilities/query_functions.py
 %%DATADIR%%/utilities/querydict.py
 %%DATADIR%%/utilities/querysets.py
 %%DATADIR%%/utilities/relations.py
+%%DATADIR%%/utilities/release.py
 %%DATADIR%%/utilities/request.py
 %%DATADIR%%/utilities/rqworker.py
 %%DATADIR%%/utilities/serialization.py
 %%DATADIR%%/utilities/serializers/json.py
+%%DATADIR%%/utilities/socks.py
 %%DATADIR%%/utilities/string.py
 %%DATADIR%%/utilities/tables.py
 %%DATADIR%%/utilities/templates/builtins/badge.html
@@ -1452,6 +1505,7 @@
 %%DATADIR%%/utilities/templates/buttons/edit.html
 %%DATADIR%%/utilities/templates/buttons/export.html
 %%DATADIR%%/utilities/templates/buttons/import.html
+%%DATADIR%%/utilities/templates/buttons/subscribe.html
 %%DATADIR%%/utilities/templates/buttons/sync.html
 %%DATADIR%%/utilities/templates/form_helpers/render_custom_fields.html
 %%DATADIR%%/utilities/templates/form_helpers/render_errors.html
@@ -1493,6 +1547,7 @@
 %%DATADIR%%/utilities/tests/test_api.py
 %%DATADIR%%/utilities/tests/test_choices.py
 %%DATADIR%%/utilities/tests/test_counters.py
+%%DATADIR%%/utilities/tests/test_data.py
 %%DATADIR%%/utilities/tests/test_filters.py
 %%DATADIR%%/utilities/tests/test_forms.py
 %%DATADIR%%/utilities/tests/test_managers.py
@@ -1509,6 +1564,7 @@
 %%DATADIR%%/virtualization/api/serializers.py
 %%DATADIR%%/virtualization/api/serializers_/__init__.py
 %%DATADIR%%/virtualization/api/serializers_/clusters.py
+%%DATADIR%%/virtualization/api/serializers_/nested.py
 %%DATADIR%%/virtualization/api/serializers_/virtualmachines.py
 %%DATADIR%%/virtualization/api/urls.py
 %%DATADIR%%/virtualization/api/views.py
@@ -1530,6 +1586,8 @@
 %%DATADIR%%/virtualization/migrations/0023_squashed_0036.py
 %%DATADIR%%/virtualization/migrations/0037_protect_child_interfaces.py
 %%DATADIR%%/virtualization/migrations/0038_virtualdisk.py
+%%DATADIR%%/virtualization/migrations/0039_virtualmachine_serial_number.py
+%%DATADIR%%/virtualization/migrations/0040_convert_disk_size.py
 %%DATADIR%%/virtualization/migrations/__init__.py
 %%DATADIR%%/virtualization/models/__init__.py
 %%DATADIR%%/virtualization/models/clusters.py
@@ -1596,6 +1654,7 @@
 %%DATADIR%%/wireless/api/nested_serializers.py
 %%DATADIR%%/wireless/api/serializers.py
 %%DATADIR%%/wireless/api/serializers_/__init__.py
+%%DATADIR%%/wireless/api/serializers_/nested.py
 %%DATADIR%%/wireless/api/serializers_/wirelesslans.py
 %%DATADIR%%/wireless/api/serializers_/wirelesslinks.py
 %%DATADIR%%/wireless/api/urls.py
@@ -1614,11 +1673,13 @@
 %%DATADIR%%/wireless/graphql/schema.py
 %%DATADIR%%/wireless/graphql/types.py
 %%DATADIR%%/wireless/migrations/0001_squashed_0008.py
+%%DATADIR%%/wireless/migrations/0009_wirelesslink_distance.py
 %%DATADIR%%/wireless/migrations/__init__.py
 %%DATADIR%%/wireless/models.py
 %%DATADIR%%/wireless/search.py
 %%DATADIR%%/wireless/signals.py
 %%DATADIR%%/wireless/tables/__init__.py
+%%DATADIR%%/wireless/tables/template_code.py
 %%DATADIR%%/wireless/tables/wirelesslan.py
 %%DATADIR%%/wireless/tables/wirelesslink.py
 %%DATADIR%%/wireless/tests/__init__.py