Skip to content

Make config entry field required in DuckDNS set_txt action - #177614

Open
tr4nt0r wants to merge 1 commit into
home-assistant:devfrom
tr4nt0r:duckdns_config_entry_required
Open

Make config entry field required in DuckDNS set_txt action#177614
tr4nt0r wants to merge 1 commit into
home-assistant:devfrom
tr4nt0r:duckdns_config_entry_required

Conversation

@tr4nt0r

@tr4nt0r tr4nt0r commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Breaking change

Calling the duckdns.set_txt action without a config entry has been deprecated and is now a required field.

Proposed change

Type of change

  • Dependency upgrade
  • Bugfix (non-breaking change which fixes an issue)
  • New integration (thank you!)
  • New feature (which adds functionality to an existing integration)
  • Deprecation (breaking change to happen in the future)
  • Breaking change (fix/feature causing existing functionality to break)
  • Code quality improvements to existing code or addition of tests

Additional information

  • This PR fixes or closes issue: fixes #
  • This PR is related to issue:
  • Link to documentation pull request:
  • Link to developer documentation pull request:
  • Link to frontend pull request:

Checklist

  • I understand the code I am submitting and can explain how it works.
  • The code change is tested and works locally.
  • Local tests pass. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist
  • I have followed the perfect PR recommendations
  • The code has been formatted using Ruff (ruff format homeassistant tests)
  • Tests have been added to verify that the new code works.
  • Any generated code has been carefully reviewed for correctness and compliance with project standards.

If user exposed functionality or configuration variables are added/changed:

If the code communicates with devices, web services, or third-party tools:

  • The manifest file has all fields filled out correctly.
    Updated and included derived files by running: python3 -m script.hassfest.
  • New or updated dependencies have been added to requirements_all.txt.
    Updated by running python3 -m script.gen_requirements_all.
  • For the updated dependencies a diff between library versions and ideally a link to the changelog/release notes is added to the PR description.

To help with the load of incoming pull requests:

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Finalizes the DuckDNS set_txt action deprecation by requiring a config entry.

Changes:

  • Makes config_entry_id mandatory.
  • Removes legacy fallback and repair-issue handling.
  • Updates tests and quality-scale metadata.

Quality-scale verification found no rule issues.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
homeassistant/components/duckdns/services.py Enforces config-entry selection.
homeassistant/components/duckdns/services.yaml Marks the field required.
homeassistant/components/duckdns/issue.py Removes obsolete deprecation issue.
homeassistant/components/duckdns/quality_scale.yaml Exempts the repairs rule.
tests/components/duckdns/test_init.py Updates service tests for required entries.

Comment thread homeassistant/components/duckdns/services.py
Comment thread homeassistant/components/duckdns/services.yaml
Comment thread homeassistant/components/duckdns/services.py
Copilot AI review requested due to automatic review settings July 30, 2026 03:21
@tr4nt0r
tr4nt0r force-pushed the duckdns_config_entry_required branch from 22ffe79 to 090a8df Compare July 30, 2026 03:21
@tr4nt0r
tr4nt0r marked this pull request as draft July 30, 2026 03:22
@tr4nt0r
tr4nt0r force-pushed the duckdns_config_entry_required branch from 090a8df to 6a85712 Compare July 30, 2026 03:24

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (2)

tests/components/duckdns/test_init.py:168

  • Add a regression test that omits config_entry_id and asserts schema validation fails. The previous missing-entry case was deleted, so the required-field behavior introduced by this PR is not exercised by the remaining tests.
async def test_service_config_entry_not_found(

homeassistant/components/duckdns/services.py:18

  • Fill in the PR's ## Proposed change section. It is currently empty, so the description does not satisfy the required PR template for this breaking schema change.
        vol.Required(ATTR_CONFIG_ENTRY): ConfigEntrySelector({"integration": DOMAIN}),

Copilot AI review requested due to automatic review settings July 30, 2026 03:24
@tr4nt0r
tr4nt0r marked this pull request as ready for review July 30, 2026 03:24

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (2)

tests/components/duckdns/test_init.py:168

  • Keep a test that calls set_txt without config_entry_id and asserts schema validation fails. Replacing the previous missing-entry case removes direct coverage of the required-field behavior that this PR introduces, so the service could become optional again without these tests detecting it.
@pytest.mark.usefixtures("setup_duckdns")
async def test_service_config_entry_not_found(

homeassistant/components/duckdns/services.py:18

  • Complete the PR's ## Proposed change section with the reason for making config entry selection mandatory. That section is currently empty, so the description does not provide the required rationale for this breaking action change.
        vol.Required(ATTR_CONFIG_ENTRY): ConfigEntrySelector({"integration": DOMAIN}),

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants