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.