<div dir="ltr">When automating the build process for snaps, I'd like to be able to provide the release version as an argument to snapcraft, which could then be used as a variable in the snapcraft.yaml.<div><br></div><div>For example, say I'd like to release "foo" version "1.2.3". I'd then like to build the snap with version: 1.2.3, and use the git tag "v1.2.3" in its source. For example:</div><div><br></div><div><font face="monospace, monospace">name: foo</font></div><div><font face="monospace, monospace">version: ${release-version}</font></div><div><span style="font-family:monospace,monospace">...</span><br></div><div><span style="font-family:monospace,monospace">parts:</span><br></div><div><font face="monospace, monospace">  foo:</font></div><div><font face="monospace, monospace">    source: git@...</font></div><div><font face="monospace, monospace">    source-tag: v${release-version}</font></div><div><br></div><div>The alternatives at the moment seem to be:</div><div><br></div><div>1. Parse the version out of snapcraft.yaml, using that as the authoritative release version string. Workable for new projects, but a tough sell for existing projects with an established release process.</div><div><br></div><div>2. Generate the snapcraft.yaml from a template (jinja, for example), which works but is kind of awkward.</div><div><br></div><div>So, how about a ${release-version} variable in snapcraft.yaml, which you could set on the snapcraft command-line with a --release-version flag? This would be darn useful for Jenkins CI scripts that build snaps.</div><div><br></div><div>Does this sound like a reasonable feature to add to snapcraft? Or is there already a preferred method for managing the release version string?</div><div><br></div><div>-Casey</div></div>