bkiele's avatar
bkiele
New Member
3 hours ago
Status:
New

Deployment Pipelines: ignore JSON element ordering when comparing items (avoid false differences)

When comparing items across stages (e.g. Dev vs Test vs Prod), Deployment Pipelines sometimes flags a pipeline (Data Factory pipeline) as “different” even though its logic and configuration are identical. The only difference is the order of elements in the underlying JSON definition, for example:

  • The order of activities in the activities array
  • The order of properties within an object
  • The order of parameters, variables, or dependsOn entries

This is a false positive. The compare view shows a difference, the item is marked as changed, and users have to redeploy or resync it even though nothing functional has changed.

Impact

  • Noise in the compare view makes it hard to spot real changes.
  • Unnecessary deployments add risk and extend release cycles.
  • Teams lose trust in the “no differences” indicator, which undermines the value of the comparison.
  • Extra manual review is needed to confirm that a flagged difference is only cosmetic.

Expected behavior
Two pipeline definitions that are semantically identical should be reported as “same”, regardless of the order in which elements are serialized.

Proposed solution
One or both of the following:

  1. Semantic comparison: Normalize both definitions before comparing, by sorting object properties alphabetically and ordering arrays where order has no functional meaning (e.g. activities, parameters, variables). Arrays where order is meaningful should be kept as they are.
  2. Deterministic serialization: Make the pipeline JSON serializer always write elements in a canonical, stable order, whether the item is saved from the UI, Git integration, REST API, or a deployment. The same pipeline would then always produce the same JSON.

Steps to reproduce

  1. Create a pipeline in Dev and deploy it to Test.
  2. Make a change that results in a reordering only (e.g. open and save the pipeline, move an activity on the canvas, or save via a different route such as Git sync or the API).
  3. Open the deployment pipeline’s compare view.
  4. The pipeline is flagged as different, but the content differs only in element order.

Workaround today
Redeploy or resync the item to clear the difference, which is manual and has to be repeated.

No CommentsBe the first to comment

Recent ideas