Commit Graph

15510 Commits

Author SHA1 Message Date
github-actions 6926580124 Update source translation strings 2026-05-08 05:41:23 +00:00
Martin Hauser 770c3647fb feat(ui): Add nested breadcrumb display for GenericForeignKey attrs
Add `nested` and `max_depth` params to GenericForeignKeyAttr to render
hierarchical objects as breadcrumbs when they expose `get_ancestors()`.
Applied to scope fields in IPAM/wireless and circuit termination points.

Fixes #21938
2026-05-07 14:35:59 -04:00
Arthur Hanson c45482c4af
#21934 allow highlight override table stripping (#22018) 2026-05-07 14:33:03 -04:00
Jeremy Stretch 670386ed72 Address PR feedback 2026-05-07 14:26:43 -04:00
Jeremy Stretch 9db8c207a2 Add Claude skills to add and removing config parameters 2026-05-07 13:39:05 -04:00
Jeremy Stretch 3d0308a95f Add Claude skills for removing models & fields 2026-05-07 13:28:38 -04:00
Jason Novinger c20e6dd2ee
Closes #20776: Add changelog message to bulk rename process (#22100)
Add changelog message support to BulkRenameView for models that support
change logging. Introduce NetBoxModelBulkRenameForm as a changelog-aware
wrapper around the existing utilities.forms.BulkRenameForm, preserving the
existing import path while avoiding circular imports.

Set _changelog_message before saving renamed objects in both MPTT and
non-MPTT rename paths, and add a regression test to verify that the
submitted message is recorded on the resulting ObjectChange records.

Remove unused VMInterfaceBulkRenameForm and VirtualDiskBulkRenameForm,
along with their unused view references, since BulkRenameView constructs
its form dynamically.
2026-05-07 18:23:00 +02:00
Jeremy Stretch f2187ceb8f
Closes #22102: Add a GIN index on CablePath to optimize filtering of cable paths by node (#22144) 2026-05-07 11:22:14 -05:00
Jeremy Stretch 088de70b10
Remove prohibition on AI-generated PRs and add guidance to AGENTS.md (#22133) 2026-05-07 18:13:02 +02:00
Jeremy Stretch 2703ff98a3
Closes #22128: Deprecate v1 API tokens (#22143)
Display a warning in the UI whenever a user goes to provision a v1
token (both via the admin token form and the user profile token form).
Update documentation to note that v1 tokens are deprecated and will be
removed in NetBox v5.0.
2026-05-07 08:48:25 -07:00
Jeremy Stretch 734a69c9a7
Closes #22141: Deprecate support for PostgreSQL 14 (#22142) 2026-05-07 17:14:02 +02:00
Jeremy Stretch bd529761bc Remove v4.7 release notes from branch
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 09:18:07 -04:00
Jeremy Stretch b277d92654 Remove the custom querystring template tag (closes #19091)
Removes the deprecated querystring template tag from utilities/templatetags/
helpers.py and updates all 30 call sites across templates to use Django's
built-in querystring tag (available since Django 5.1). The request argument
is dropped since the built-in tag reads from the template context automatically.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 09:18:07 -04:00
Jeremy Stretch 14f3d9c791 Remove v4.7 release notes from branch
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 08:54:50 -04:00
Jeremy Stretch 0ac9f5c174 Raise minimum required PostgreSQL version from 14 to 15 (closes #20546)
PostgreSQL 14 reaches end-of-life in November 2026 and Django 6.1 will
require PostgreSQL 15+. Updates all documentation references from 14 to
15, and removes the "needed on PostgreSQL 15 and later" conditional
comment from the database creation instructions (since 15 is now the
minimum).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 08:54:50 -04:00
Jeremy Stretch 5cfcdf9b7a Remove v4.7 release notes from branch
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 08:51:46 -04:00
Jeremy Stretch 3b145a9c3d Remove the `models` key from the application registry (closes #21891)
Drops the deprecated registry['models'] key, the __getitem__ deprecation
warning, and the population code in register_model(). Registered models
should be retrieved via ObjectType.objects.public() instead.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 08:51:46 -04:00
Jeremy Stretch 4d9e4838d4 Remove v4.7 release notes from branch
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 08:50:10 -04:00
Jeremy Stretch 4418beeb07 Remove support for legacy action views (closes #21888)
Drops the LEGACY_ACTIONS constant and ActionsMixin._convert_legacy_actions()
method. Action views must now define the actions attribute as a list of
ObjectAction subclasses rather than as a legacy permission dict.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 08:50:10 -04:00
Jeremy Stretch ce1691663d Remove v4.7 release notes from branch
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 08:49:19 -04:00
Jeremy Stretch 5b20197e97 Drop support for deprecated Sentry config parameters (closes #21883)
Removes SENTRY_DSN, SENTRY_SAMPLE_RATE, SENTRY_SEND_DEFAULT_PII, and
SENTRY_TRACES_SAMPLE_RATE. These were superseded by SENTRY_CONFIG in
v4.4.2. Documentation updated to use SENTRY_CONFIG exclusively.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 08:49:19 -04:00
Jeremy Stretch 9e70e297a5 Remove v4.7 release notes from branch
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 08:47:03 -04:00
Jeremy Stretch 9275db607e Remove the DEFAULT_ACTION_PERMISSIONS constant (closes #21886)
Removes the deprecated _DEFAULT_ACTION_PERMISSIONS dict and its
__getattr__ compatibility shim from netbox/constants.py. Action
permissions should be defined via ObjectAction subclasses.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 08:47:03 -04:00
Jeremy Stretch 2562216006 Remove v4.7 release notes from branch
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 08:45:20 -04:00
Jeremy Stretch a59ab6f216 Removes the `housekeeping` management command (closes #21565)
The command was deprecated in v4.6.0; all housekeeping tasks are now
handled automatically by NetBox's built-in job scheduler.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 08:45:20 -04:00
Jeremy Stretch 416def1dbc Closes #22054: Remove backward compatibility shim for expand_ipaddress_pattern()
Removes the deprecated `expand_ipaddress_pattern()` alias and the associated
`__getattr__` compatibility hook that redirected callers to `expand_ipnetwork_pattern()`.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 08:08:23 -04:00
Jeremy Stretch caed3812fe Remove backward compatibility shim for OptionalLimitOffsetPagination
Removes the deprecated OptionalLimitOffsetPagination alias (renamed to
NetBoxPagination in a prior release) per the v4.7.0 removal schedule.

Closes #22052

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 08:07:49 -04:00
Jeremy Stretch 6ccd53ec0a Remove backward compatibility shim for ExpandableIPAddressField
Removes the deprecated ExpandableIPAddressField alias (renamed to
ExpandableIPNetworkField in a prior release) per the v4.7.0 removal schedule.

Closes #22053

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 08:07:13 -04:00
Jeremy Stretch e50aff8736
Documentation cleanup (#22127) 2026-05-06 16:58:08 -05:00
Jeremy Stretch b3bc4f8ef2
Closes CAP-100: Adopt AI best practices (#22120) 2026-05-06 13:04:23 -07:00
Martin Hauser 4407505f87 chore(ci): Collect coverage from parallel test workers
Configure coverage.py for multiprocessing so Django's parallel test
workers are included in the coverage data.

Move coverage source and report settings into pyproject.toml,
and combine per-process coverage data before generating the report.

Fixes #22118
2026-05-06 09:55:46 -04:00
github-actions 30f9d3ed60 Update source translation strings 2026-05-06 05:59:55 +00:00
Martin Hauser 7e9eac5b87
Closes #22093: Run coverage only on a single matrix entry (#22117)
Add explicit CI job names showing the Python and Node versions, with the
coverage job clearly marked in the GitHub Actions UI.

Run coverage only for the designated coverage matrix entry to avoid
redundant coverage collection and reporting across the full test matrix.

Also add the YAML document marker and clean up trailing whitespace.
2026-05-05 19:06:26 +02:00
Martin Hauser f3c5b00932
Closes #22056: Clean up obsolete .gitignore entries and add comments (#22116) 2026-05-05 11:25:06 -05:00
Martin Hauser 589169f860 chore(ruff): Consolidate tool config into pyproject.toml
Move Ruff configuration from ruff.toml into pyproject.toml and remove
obsolete Black, isort, and Pylint sections.
Consolidates all Python tooling config in a single file following
modern Python packaging standards.

Fixes #22099
2026-05-05 10:54:55 -04:00
Jeremy Stretch 93176be707
Prohibit AI-generated issues (#22101) 2026-05-05 15:29:57 +02:00
Jeremy Stretch d81c2cb739
Closes #21951: Add convenience scripts for database management (#22113) 2026-05-05 15:28:05 +02:00
Jeremy Stretch 00791344e6 Release v4.6.0 2026-05-05 08:55:05 -04:00
Jeremy Stretch 1e1548edd1
Merge pull request #22111 from netbox-community/feature
Merge `feature` into `main` ahead of v4.6.0 release
2026-05-05 08:22:18 -04:00
Jeremy Stretch 28a5c7d882 Merge branch 'main' into feature 2026-05-04 13:02:42 -04:00
Jeremy Stretch b78bd71329 Release v4.5.10 2026-05-04 12:48:34 -04:00
Martin Hauser 05dcf02dbe fix(dcim): Mark cable_end as nullable in CabledObject Serializer
Use DRF's ChoiceField for `cable_end` to preserve the existing raw
"A"/"B" API output while documenting the allowed values and nullability
in the generated schema.

Fixes #22084
2026-05-04 11:51:25 -04:00
Arthur Hanson 364953edc5
Closes #22034: Fix rack group migration from very old netbox installation (#22063)
* #22034 fix rack group migation from very old netbox installation

* #22034 fix rack group migation from very old netbox installation

* #22034 fix rack group migation from very old netbox installation

* fix after loading old database

* simplify

* fix index name
2026-05-01 14:38:59 -04:00
Jeremy Stretch 8830519da2
Closes #22062: Display API token ID & plaintext one time immediately upon creation (#22064) 2026-05-01 16:04:35 +02:00
Jeremy Stretch 92c5aff713
Closes #22048: Deprecate `expand_ipaddress_pattern()` (#22051) 2026-04-30 16:50:12 +02:00
Jeremy Stretch 1452d57f38
Closes #22047: Deprecate ExpandableIPAddressField (#22050) 2026-04-30 16:49:39 +02:00
Jeremy Stretch a1c529ddbf
Closes #22046: Deprecate OptionalLimitOffsetPagination (#22049) 2026-04-30 16:49:09 +02:00
github-actions fe80048374 Update source translation strings 2026-04-30 06:00:05 +00:00
Jeremy Stretch baa2ff3ade
Fixes #22029: Recast empty string values on unique nullable fields as null (#22035) 2026-04-29 15:36:25 -05:00
bctiemann 166b5f9c0c
Merge pull request #22037 from netbox-community/22031-add-prefix-to-vlan-field-id-expected-a-number-but-got-none
Fixes #22031: Fix error when adding a Prefix from a VLAN with no Tenant or Site
2026-04-29 13:42:57 -04:00