Moving a Classic release pipeline to YAML does not automatically replace or delete the Classic pipeline. Azure DevOps creates a separate YAML pipeline, while the original definition and its run history remain in Classic until an owner retires it. Old release records may also remain under the project’s retention rules, even when the YAML pipeline is the active deployment path.
First identify what is still visible
Azure DevOps uses “pipeline,” “release,” and “deployment” for different things. The remedy depends on which object you are looking at.
As an Amazon Associate I earn from qualifying purchases.
| What you see | What it is | Why it can remain |
|---|---|---|
| Classic release pipeline | The Classic definition: its stages, tasks, artifacts, and settings. | Conversion creates a separate YAML pipeline; it does not inherently remove the Classic definition or its history. Microsoft’s migration guide explains that the old pipeline can then be retired. |
| Release | A versioned set of artifacts and settings associated with the Classic release process. | Release records are subject to retention rules. A release is not the same thing as the pipeline definition. |
| Deployment | The execution of tasks for a stage. One release can be deployed more than once. | Deployment activity is recorded separately from the definition and can affect how long a release is retained. See Microsoft’s Classic release overview. |
| Deployment group | A set of target machines, with deployment agents, used by Classic release pipelines. | It is a separate target configuration, not a YAML pipeline or release record. YAML uses environments and deployment jobs instead. |
Why the Classic pipeline remains after migration
Classic-to-YAML migration is not an in-place conversion. Microsoft describes the result as two pipelines: a new YAML pipeline and the original Classic one. Its run history stays with the Classic pipeline, which can be retired after the replacement is ready. Therefore, seeing the old definition after cutover does not by itself mean that it is still deploying.
Free tools Windows power users keep installed
One-click scans. No signup required.
Nor is there a one-step export of an entire Classic release pipeline to YAML. Microsoft says classic release pipelines do not support YAML export; tasks must be exported individually. Treat the change as a deliberate translation and validation exercise, not an automatic switch that carries every setting across. Microsoft’s migration guidance also flags UI-defined variables and schedules as items to review: variables may need to be recreated in YAML or pipeline settings, and schedules need attention because YAML uses UTC by default while Classic uses the organization’s local time zone.
#1 Best Overall
Why old release records remain
Release retention rules control how long release records are kept. To inspect them, open Project settings > Pipelines > Release retention. Check both the days-based rule and the minimum number of releases to retain: the minimum count can keep older releases even after the day limit would otherwise remove them.
The days-based retention timer resets when a release is modified or deployed to a stage. Deleting a release does not necessarily erase it immediately; it may remain until the configured permanent-destruction period has passed. These behaviors are documented in Microsoft’s release retention guidance.
Configuration options differ by product. In Azure DevOps Services, project-level views show the global defaults and maximums, but those values cannot be changed from the project page. Azure DevOps Server has different controls, including project-level release defaults and maximums and collection-level retention controls for Classic build pipelines. Check the guidance for your deployment rather than assuming a setting from Services applies to Server.
Recommended Free Tools
What to verify before retiring the Classic definition
- Confirm the object. Determine whether the item is a Classic definition, a release record, a deployment entry, or a deployment group. They have different lifecycles.
- Confirm the YAML path is ready. Validate that it deploys the intended artifacts and targets, and review task behavior, variables, triggers, approvals, permissions, and environment configuration. Recreating a setting is not the same as proving that it behaves as intended.
- Review retention separately. Check the days rule, minimum release count, recent activity that may reset a timer, and any permanent-destruction period before expecting records to disappear.
- Preserve what you need. Keep required history, audit evidence, or compliance records before retiring or deleting anything. Retirement is an owner-controlled decision; migration does not prescribe universal automatic cleanup.
- Retire the old definition when ready. Once the YAML replacement is confirmed and the required records are preserved, manage the Classic pipeline according to your team’s procedures. Do not treat a lingering record as proof that the old definition must be active.
Account for deployment targets and migration trade-offs
Classic deployment groups do not automatically become YAML environments. A deployment group is for Classic release pipelines and associates deployment agents with target machines; YAML uses deployment jobs and environments. Inventory target machines, agent dependencies, and permissions when translating the deployment path. Microsoft documents these distinct models in its deployment group guidance and YAML environments guidance.
Rank #3
The right transition depends on whether you need a temporary Classic period, a version-controlled YAML workflow, or a copy of an existing Classic definition. The options are not interchangeable:
Quick Recap
Best Value
Rank #4
| Approach | Useful when | Work and cautions |
|---|---|---|
| Continue using Classic temporarily | You need time to validate the replacement or preserve the existing operating process during transition. | Keep track of which definition is authorized to deploy and avoid confusing retained release history with current activity. |
| Translate release tasks into YAML | You want the pipeline definition managed and reviewed as code. | Tasks and settings require deliberate translation and validation; account for variables, schedules, deployment targets, approvals, permissions, and history needs. |
| Clone or import a Classic definition | You need to reproduce a Classic pipeline in another project rather than migrate it to YAML. | Cloning copies settings, but not security; reconfigure permissions. See Microsoft’s Classic release cloning guidance. |
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




