Changed:
- Migrated
ddev validate cifrom Codecov to Datadog Code Coverage. (#23360) - Require a changelog entry when an integration's
conf.yaml.exampleis modified, and expose the expected path through the newIntegration.example_configproperty. (#23655) - Refresh the
ddev createUX: the command is now a click group with one subcommand per integration type (check,check-only,jmx,logs,event,metrics-crawler). Manifest-less is the new default; pass--include-manifestto keep generating amanifest.json. New per-subcommand options--display-name,--metrics-prefix, and--platformspopulate.ddev/config.tomloverrides. Thetile,snmp_tile, andmarketplacetypes are no longer exposed;--non-interactiveis removed;--skip-manifestis accepted with a deprecation warning;--typeis accepted as a deprecation shim that dispatches to the matching subcommand. (#23859)
Added:
-
Rework event bus error handling around a single
on_errorrouter and a newfail_fastorchestrator policy. Theddev validate allcommand is updated to align with the new lifecycle (the orchestrator no longer aborts the process from insideon_finalize; the command checkshad_failuresand exits accordingly).- Add
fail_fastconstructor option toEventBusOrchestrator(defaultFalse). When anon_errorhandler raises a non-Fatal exception,fail_fast=Truestops the bus whilefail_fast=Falselogs and continues. - Add
EventBusOrchestrator.on_error(error): handleson_initialize,on_message_received, andon_finalizefailures. Default re-raises so unmodified subclasses fall through tofail_fast. BaseProcessor.on_errorsignature changes fromon_error(message, error)toon_error(error). The message is now reachable aserror.messageon the wrapped exception (alongsideerror.processor_nameanderror.original_exception). Existing subclasses that overrideon_errormust update their signature and replacemessagewitherror.message— code using the old signature will fail at runtime. The default implementation now re-raises so unmodified processors fall through to the newfail_fastpolicy.- Add
HookExecutionErrorhierarchy (OrchestratorHookError,ProcessorHookError) andHookNameenum for identifying which hook failed. - Add
SkipMessageError: raise fromon_message_receivedto skip dispatch for the current message and continue the loop. on_initializeandon_finalizefailures now route throughon_errorinstead of always propagating fromrun(). Under defaultfail_fast=Falsethey log and continue; subclasses that need the old behavior should passfail_fast=Trueor overrideon_errorto escalate.ValidationOrchestratoropts intofail_fast=Trueso finalize failures still surface in the validation report. (#23489)
- Add
-
ddev dep promotenow prints a link to the dependency-wheel-promotion workflow's recent runs page after dispatching, so users can jump straight to their queued run. (#23563) -
Add
ddev release changelog showcommand to print the section of a target'sCHANGELOG.mdfor a given version. (#23586) -
Add decibel-milliwatt as a new canonical unit (#23601)
-
Legacy migration:
validate jmx-metricsis now implemented natively in ddev (was previously delegated to datadog_checks_dev). (#23652) -
Add Application.annotate_error/annotate_warning/annotate_display_queue helpers that emit GitHub Actions workflow annotations on CI. (#23654)
-
Restructure
ddev.utils.github_asyncinto a package with lazy model imports, addcreate_pull_requestandadd_labels_to_issueendpoints, and add aFakeAsyncGitHubClienttest helper with amock_responseAPI. (#23685) -
Add
ddev release port-commitcommand to backport a commit to a target branch. (#23686) -
Accept a PR number,
PR-<number>token, or GitHub PR URL as input toport-commit, and fetch the target commit from origin when it is not in the local object database. (#23703) -
Add --explicit-package-bases to default mypy_args (#23742)
-
Add a
validate qa-labelcheck that fails CI unless the pull request carries exactly one of theqa/requiredorqa/skip-qalabels. (#23748) -
Skip integrations pinned in Agent release requirements but not actually shipped in a given Agent release, configurable under
[overrides.release.agent.unreleased-integrations]in.ddev/config.toml. (#23813) -
Print the exact workflow run URL when dispatching
ddev dep promote, via a newreturn_run_detailsoption onGitHubManager.dispatch_workflow. (#23828) -
Add subcommand-based
ddev createinterface (check,check-only,jmx,logs,event,metrics-crawler) with--display-name,--metrics-prefix,--platforms, and--include-manifestoptions for manifest-less integrations. (#23859)
Fixed:
- Include .yaml workflow files in update-python-config so all workflow Python pins are updated. (#23573)
- Fix type annotation of on_error in the EventBusOrchestrator by narrowing it down to OrchestratorHookError. This better represents the actual error passed to the method. (#23575)
- Retry agent check invocations on transient failures to address SNMP E2E flake from autodiscovery reload races. (#23646)
- Derive
Repository.full_nameand a newRepository.orgfrom theorigingit remote so ddev works correctly when run from a worktree or a fork, instead of guessing from the working-directory basename. (#23656) - Allow release branch tagging to continue before the matching Agent branch exists. (#23711)
- Reword the
qa-labelvalidation messages to make explicit that the check refers to the Datadog Agent release cycle. (#23784) - Use registry.datadoghq.com in Agent image examples. (#23790)
- Bump datadog_checks_dev requirement. (#24050)