Skip to main content

v2.72.1

Binaries and the merged-pull-request list are on the GitHub releases page.

Plans are byte-identical for identical inputs​

Planning the same intent twice could give two different plan.json files. The checksum, revision.planHash, the revision key, the short plan id that orun plan prints and every job uid changed from run to run. Now the same inputs produce the same bytes, so a plan diff in a pull request shows only real changes (#705).

Plans no longer carry metadata.generatedAt. A wall-clock stamp cannot be in a byte-identical artifact. Older plans that have the field still load, and the field is left out of metadata.checksum and metadata.revision.planHash, so it never changes a plan's identity. See the plan schema.

A profile's step override stays on that profile​

When two execution profiles of one composition rendered the same step with different text, for example a pull-request profile overriding plan with -lock=false, the planner could render one profile's text into jobs on the other profile. Which text won depended on map order, so it changed between runs. Each job now gets the text its own profile declares.

If you plan a composition whose profiles override the same step differently, re-plan after upgrading: plans made before this release may carry the wrong command for some jobs.