Commit Graph

431 Commits

Author SHA1 Message Date
Jeremy Stretch 56693d62ae Merge branch 'main' into feature
# Conflicts:
#	contrib/openapi.json
#	netbox/core/forms/filtersets.py
#	netbox/core/tests/test_openapi_schema.py
#	netbox/dcim/forms/mixins.py
#	netbox/extras/events.py
#	netbox/ipam/forms/bulk_edit.py
#	netbox/ipam/forms/model_forms.py
#	netbox/ipam/models/services.py
#	netbox/ipam/tests/test_forms.py
#	netbox/ipam/tests/test_models.py
#	netbox/ipam/tests/test_views.py
#	netbox/netbox/jobs.py
#	netbox/project-static/dist/netbox.js
#	netbox/project-static/dist/netbox.js.map
#	netbox/release.yaml
#	requirements.txt
2026-09-01 16:46:44 -04:00
Jeremy Stretch c1135de8f5
Closes #23044: Add workflow to enforce milestone assignment on issue closure (#23045)
Reopens any issue that is closed as completed without a milestone
assigned, after a short grace period to allow for the milestone being
set immediately after closure.
2026-08-27 15:42:30 +02:00
Jeremy Stretch c89a544eac Merge branch 'main' into feature 2026-08-25 12:34:17 -04:00
Jeremy Stretch 6578541eee
Add optional suspected cause & suggested fix fields to bug report template (#22971) 2026-08-19 13:31:02 +02:00
Martin Hauser fd4953d772 ci(release): Pin metadata tooling to match publishing action
Pin `twine` and `packaging` versions in build job to match bundled
versions in `gh-action-pypi-publish` v1.14.2.
Enforce Core Metadata 2.4 in wheel and sdist targets with verification
in validation scripts.
2026-08-13 13:56:15 -04:00
Martin Hauser 752dc33ba6 ci(release): Pin metadata tooling to match publishing action
Pin `twine` and `packaging` versions in build job to match bundled
versions in `gh-action-pypi-publish` v1.14.2.
Enforce Core Metadata 2.4 in wheel and sdist targets with verification
in validation scripts.

Fixes #22903
2026-08-13 13:54:09 -04:00
Brian Tiemann fde10cbf22 Merge branch 'feature' into 22896-merge-main-into-feature
Resolves all conflicts between main and feature for #22896. Notable
resolutions:

- dcim/signals.py, dcim/tests/test_signals.py: main's cache_presave_scope_fields
  / sync_cached_scope_fields addition is fully superseded by feature's
  PostgreSQL-trigger-based denormalization (confirmed via feature's own
  migration docstrings); dropped in favor of feature's existing approach.
  Both files now match feature's originals exactly.

- netbox/tables/columns.py: combined main's generic get_ordering_annotation()
  protocol with feature's nulls_first-aware order() override. These two
  mechanisms cannot both apply to the same column (django-tables2 negates an
  entire order_by tuple uniformly on direction toggle, so a fixed nulls_first
  placement and multi-column sort composition are mutually exclusive for one
  column) -- preserved nulls_first (existing, wired through forms/API/GraphQL)
  and removed main's two composition-only tests for CustomFieldColumn. See the
  comment on CustomFieldColumn.order() for full reasoning.

- extras/customfields.py, extras/graphql/mixins.py: combined main's
  request-cache optimization and has_key-scoped batch updates with feature's
  resolve_selection_value() (shared select-field label resolution between
  REST and GraphQL).

- extras/events.py, extras/event_rules.py: main's "Honor Script defaults when
  triggered by Event Rules" (#22852) fix was written against the old inline
  action-type dispatch, which feature had already replaced with a pluggable
  action-provider registry (#22770). Re-applied the same two-line fix
  (notifications/job_timeout) inside ScriptAction.enqueue() in event_rules.py
  instead.

- utilities/jinja2.py: fixed a config-attribute name mismatch the raw merge
  would have introduced (main's JINJA2_FILTERS vs feature's renamed
  JINJA_FILTERS) by updating the shared _jinja2_filters() helper.

- ipam/migrations/: renumbered main's 0094_ipaddress_host_index to 0096 and
  added a merge migration, since main and feature had each independently
  added a migration numbered 0094.

- dcim/tests/query_counts.json: regenerated via UPDATE_QUERY_COUNTS=1 against
  the merged codebase rather than hand-merging counts.

Verified: manage.py check clean, full migration graph applies cleanly from
scratch, ruff clean, and full test suites pass for dcim, ipam, netbox, extras,
circuits, vpn, wireless, tenancy, virtualization, core, users, and account
(fresh databases, no state carried over between runs).
2026-08-10 16:13:01 -04:00
Martin Hauser 642b4e5c2a chore(ci): Add production PyPI publishing workflow
Introduces production PyPI publishing triggered by v* tag pushes, while
Test PyPI now requires manual dispatch. Both indexes never receive the
same run, ensuring proper separation between rehearsal and production.

Fixes #22786
2026-07-30 13:45:12 -04:00
Jeremy Stretch 567524b7b8
Update claude-code-action; change model to Opus 5 (#22788) 2026-07-28 16:25:52 -05:00
Jeremy Stretch e50683fee9 Merge main into feature 2026-07-21 09:09:58 -04:00
Martin Hauser 48ecc712bc
Closes #22603: Add experimental Python packaging support for NetBox (#22605)
Add initial Python package support for NetBox, including wheel and sdist
builds, generated package metadata, and Test PyPI publishing for maintainer
validation.

Add package-aware CLI support, `netbox setup` scaffolding for instance-local
files, and centralized wheel-vs-checkout path handling while preserving the
existing source/archive install layout.

Bundle pre-rendered embedded documentation in the wheel, and extend CI to
verify dependency pins, wheel metadata, artifact contents, CLI behavior, sdist
rebuilds, and smoke-test upgrades.
2026-07-13 16:28:04 +02:00
Jeremy Stretch 3d73b2a166 Release NetBox v4.6.4 2026-06-30 11:23:11 -04:00
Jeremy Stretch 0c26f973ff Release v4.6.3 2026-06-16 11:59:12 -04:00
Jeremy Stretch b55b50b12e
CAP-122: Add GitHub workflow to close new issues missing labels (#22356) 2026-06-02 16:43:52 +02:00
Jeremy Stretch 742f4b4330 Release v4.6.2 2026-06-02 10:11:34 -04:00
Jeremy Stretch 64d3b114bc Release v4.6.1 2026-05-19 11:16:49 -04:00
Jeremy Stretch bad4cc70be
Update PR template (#22218) 2026-05-15 16:56:49 -05:00
Martin Hauser 3e4ad4a5da chore(ci): Collect static files before running tests
Copy frontend-generated files into STATIC_ROOT before tests run so SVG
rendering tests can read their CSS directly.
Also add pull-requests read permission to the workflow.

Fixes #22150
2026-05-11 08:28:01 -04:00
Martin Hauser cd56523cc5 chore(ci): Limit CI push trigger to main and feature
Restrict the CI workflow's push trigger to the main and feature branches
while preserving the existing paths-ignore filters.

This avoids unnecessary push-triggered CI runs on topic branches without
changing pull request workflow behavior.

Fixes #19324
2026-05-08 08:06:34 -04:00
Jeremy Stretch 523ecba867
Closes #22114: Split CI into conditional jobs (#22126) 2026-05-08 09:35:46 +02: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
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
Jeremy Stretch 00791344e6 Release v4.6.0 2026-05-05 08:55:05 -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
Jeremy Stretch 1b1989ea98
Clean up Claude workflows (#22038)
* Clean up Claude workflows

* Tweak triage prompt

* Fix permissions
2026-04-29 16:17:01 +02:00
Jeremy Stretch b76f313ca4
Permit Claude triage workflow for users without write permission (#22026)
* Permit triage workflow for users without write permission

* Bump claude-code-action to v1.0.108
2026-04-28 18:08:03 +02:00
Jeremy Stretch 3ccf4e2d14 Merge branch 'main' into feature 2026-04-28 10:19:36 -04:00
Jeremy Stretch 8fbb6f74d3
Release v4.5.9 (#22024) 2026-04-28 09:45:20 -04:00
Jeremy Stretch d6fdfec0e5 Remove id-token: write; add github_token 2026-04-28 07:53:45 -04:00
Jeremy Stretch ff5f64abf8 Restore id-token write permission 2026-04-27 14:10:44 -04:00
Jeremy Stretch f68645bbad Fix Claude issue triage workflow 2026-04-27 12:34:38 -04:00
Jeremy Stretch 5abcebb67b
Add a GitHub workflow to automate issue triage with Claude (#21998) 2026-04-27 15:40:15 +02:00
Jeremy Stretch df02abbbdf Merge branch 'main' into feature 2026-04-23 11:10:58 -04:00
Jeremy Stretch b2af01c400
Update performance issue template (#21946)
* Update performance issue template

* Update .github/ISSUE_TEMPLATE/03-performance.yaml

Co-authored-by: Martin Hauser <mhauser@netboxlabs.com>
2026-04-16 23:13:16 +02:00
Jeremy Stretch e208a28137 Merge branch 'main' into feature 2026-04-14 08:48:22 -04:00
Jeremy Stretch 75e1b86613
Release v4.5.8 (#21903)
* Release v4.5.8
* Limit django-tables2 to <v2.9
2026-04-14 08:39:16 -04:00
Martin Hauser 9b734bac93 chore(ci): Update GitHub Actions to use commit SHA pinning
Bump actions/create-github-app-token from v1 to v3.1.1 and
EndBug/add-and-commit from v9.1.4 to v10.0.0, both pinned to full commit
SHAs for improved supply chain security.

Fixes #21896
2026-04-13 08:04:55 -04:00
Martin Hauser 0f277894b2 chore(ci): Update ruff-action to v4.0.0
Update ruff GitHub Action from v3.6.1 to v4.0.0 and bump ruff version
from 0.15.2 to 0.15.10 for latest linting improvements.

Fixes #21682
2026-04-13 08:03:58 -04:00
Jeremy Stretch 315fcdffb6 Merge branch 'main' into feature 2026-04-10 14:58:07 -04:00
Jeremy Stretch d0651f6474
Release v4.5.7 (#21838) 2026-04-03 12:24:24 -04:00
Jeremy Stretch b62c5e1ac4 Merge branch 'main' into feature 2026-04-01 13:22:52 -04:00
Jeremy Stretch 05059f4a86 Release v4.5.6 2026-03-31 12:43:26 -04:00
Jeremy Stretch 29239ca58a
Closes #21635: Migrate from mkdocs to Zensical (#21742)
* Drop mkdocs from `requirements.txt` and add Zensical
* Replace mkdocs with Zensical in CI and pre-commit tasks
* Remove `.info` from the `docs/` build directory (obsolete)
* Update the legacy ReadTheDocs configuration
* Update upgrade script to use Zensical
* Remove custom docs footer
* Remove obsolete CSS
2026-03-25 16:48:29 +01:00
bctiemann 83cf193cdc
Merge pull request #21680 from netbox-community/21664-update-github-actions-for-nodejs-24-compatibility
Closes #21664: Update and pin GitHub Actions for Node 24 compatibility
2026-03-24 14:34:57 -04:00
Jeremy Stretch 2b7049c39c
Release v4.5.5 (#21672)
* Release v4.5.5

* Pin django-rq to <4.0
2026-03-17 14:58:14 -04:00
Martin Hauser 268ef4f59f
chore(ci): Pin CodeQL action to commit SHA
Pin GitHub/codeql-action references to full commit SHA v4.33.0 instead
of version tag to reduce supply chain risk from tag retargeting.
2026-03-16 15:14:23 +01:00
Martin Hauser 671b1cd470
chore(ci): Pin GitHub Actions to commit SHAs
Pin GitHub Actions references to full commit SHAs instead of version
tags to reduce supply chain risk from tag retargeting.

Update actions/checkout to v6.0.2, actions/setup-python to v6.2.0,
actions/setup-node to v6.3.0, actions/stale to v10.2.0, and
dessant/lock-threads to v6.0.0.
2026-03-16 14:35:51 +01:00
Jeremy Stretch 3a9d00a537 Update the lock-threads workflow 2026-03-11 08:56:39 -04:00
Jeremy Stretch f938309ed9
Second attempt to fix @claude for PRs from forks (#21633) 2026-03-10 10:35:28 -07:00