What's Changed
* NetBox 4.0 support and dropped support for earlier versions up to 3.7.8
* Adjusted GitHub workflows to reflect dropped support for Python 3.8 and 3.9
* Replaced references to `extras.plugins` with `netbox.plugins`
* Replaced object references with a reference by object `id`/`pk` in cases where a potentially unsaved object is referenced in `filter()` expressions
* Removed the `ready()` method that accessed the database by calling `ContentType.objects.get_for_model()` because of a `RuntimeWarning` during initialisation
* Changed the `actions` attributes in tables to be dictionaries instead of tuples because of [NetBox PR 14670](https://github.com/netbox-community/netbox/pull/14670)
* Modified the 'Add Record' button in the base template for the zone detail view so it matches the rendition of the other buttons (using `<button>` instead of CSS on the `<a>` element
* Adjusted the menu item buttons to the new UI look by removing the colours
* Refactored filtersets to become compatible with `htmx.ObjectSelectorView`, specifically its `_get_filterset_class()` method.
* Added the `brief_field` attribute to all model serializers
* Added `description` to all models and to `brief_fields` for all serializers matching [NetBox PR 15238](https://github.com/netbox-community/netbox/issues/15238)
* Workaround for [NetBox 15351](https://github.com/netbox-community/netbox/issues/15351): Remove validators from `ZoneSerializer` if `nested=True`
* Renamed `ContentType` to `ObjectType` and changed parameter name to `object_type` [NetBox PR 15327](https://github.com/netbox-community/netbox/pull/15327)
* Added tests for all filter sets to make automated testing by the extended NetBox filter set test framework possible [NetBox PR 15369](https://github.com/netbox-community/netbox/pull/15369)
* Renamed the `object_type` attribute for the IPAM Coupling `ipaddress_dns_zone_id` CF to `related_object_type` [NetBox PR 15366](https://github.com/netbox-community/netbox/pull/15366)
* Added missing filters detected by the new NetBox test functionality from [NetBox PR 15369](https://github.com/netbox-community/netbox/pull/15369)
* Migrated old-style fieldsets to the new `FieldSet` class to remove 'fieldsets contains a non-FieldSet item' warnings [NetBox PR 15415](https://github.com/netbox-community/netbox/pull/15415)
* Reworked the whole GraphQL support to work with Strawberry [NetBox PR 15141](https://github.com/netbox-community/netbox/pull/15141) and added GraphQL tests
* Views are no longer optional with this PR, but a new 'Default View' largely takes the role of the former `view=None` case.
What's Changed
* NetBox 4 Compatibility by peteeckel in https://github.com/peteeckel/netbox-plugin-dns/pull/153
* "Default View" concept by peteeckel in https://github.com/peteeckel/netbox-plugin-dns/pull/242