Ability to do a find/replace on resulting tags prior to sorting
What steps did you take:
vendir tools sort-semver -v "v1.17.16_vmware.2-tkg.1 v1.17.16_vmware.2-tkg.2 v1.17.16_vmware.3-tkg.1 v1.18.16_vmware.1-tkg.1 v1.18.16_vmware.1-tkg.2 v1.18.16_vmware.3-tkg.1 v1.18.17_vmware.1-tkg.1 v1.18.17_vmware.2-tkg.1 v1.19.12_vmware.1-tkg.1 v1.19.12_vmware.1-tkg.2 v1.19.12_vmware.1-tkg.3-tf-v0.10.1 v1.19.16_vmware.1-tkg.1 v1.19.8_vmware.1-tkg.1 v1.19.8_vmware.1-tkg.2 v1.19.8_vmware.3-tkg.1 v1.19.9_vmware.1-tkg.1 v1.19.9_vmware.2-tkg.1 v1.20.11_vmware.1-tkg.1-tf-v0.10.1 v1.20.14_vmware.1-tkg.1 v1.20.14_vmware.1-tkg.2 v1.20.14_vmware.1-tkg.4 v1.20.14_vmware.1-tkg.4-tf-v0.11.2 v1.20.14_vmware.1-tkg.5 v1.20.4_vmware.1-tkg.1 v1.20.4_vmware.1-tkg.2 v1.20.4_vmware.3-tkg.1 v1.20.5_vmware.1-tkg.1 v1.20.5_vmware.2-fips.1-tkg.1 v1.20.5_vmware.2-tkg.1 v1.20.8_vmware.1-fips.1-tkg.2 v1.20.8_vmware.1-tkg.2 v1.20.8_vmware.1-tkg.3 v1.21.2_vmware.1-fips.1-tkg.1 v1.21.2_vmware.1-tkg.1 v1.21.2_vmware.1-tkg.2 v1.21.5_vmware.1-tkg.1-tf-v0.10.1 v1.21.8_vmware.1-tkg.1 v1.21.8_vmware.1-tkg.2 v1.21.8_vmware.1-tkg.4 v1.21.8_vmware.1-tkg.4-tf-v0.11.2 v1.21.8_vmware.1-tkg.5 v1.22.5_vmware.1-tkg.1 v1.22.5_vmware.1-tkg.3 v1.22.5_vmware.1-tkg.3-tf-v0.11.2 v1.22.5_vmware.1-tkg.4 "
Versions
Version
Succeeded
What happened: Nothing is properly detected as semantic versioned.
What did you expect:
Replacing + with _ is a common change since container tags cannot have a + in them. In fact most systems (like containerd) will actually replace the + into a _ for you.
vendir tools sort-semver -v "v1.17.16+vmware.2-tkg.1 v1.17.16+vmware.2-tkg.2 v1.17.16+vmware.3-tkg.1 v1.18.16+vmware.1-tkg.1 v1.18.16+vmware.1-tkg.2 v1.18.16+vmware.3-tkg.1 v1.18.17+vmware.1-tkg.1 v1.18.17+vmware.2-tkg.1 v1.19.12+vmware.1-tkg.1 v1.19.12+vmware.1-tkg.2 v1.19.12+vmware.1-tkg.3-tf-v0.10.1 v1.19.16+vmware.1-tkg.1 v1.19.8+vmware.1-tkg.1 v1.19.8+vmware.1-tkg.2 v1.19.8+vmware.3-tkg.1 v1.19.9+vmware.1-tkg.1 v1.19.9+vmware.2-tkg.1 v1.20.11+vmware.1-tkg.1-tf-v0.10.1 v1.20.14+vmware.1-tkg.1 v1.20.14+vmware.1-tkg.2 v1.20.14+vmware.1-tkg.4 v1.20.14+vmware.1-tkg.4-tf-v0.11.2 v1.20.14+vmware.1-tkg.5 v1.20.4+vmware.1-tkg.1 v1.20.4+vmware.1-tkg.2 v1.20.4+vmware.3-tkg.1 v1.20.5+vmware.1-tkg.1 v1.20.5+vmware.2-fips.1-tkg.1 v1.20.5+vmware.2-tkg.1 v1.20.8+vmware.1-fips.1-tkg.2 v1.20.8+vmware.1-tkg.2 v1.20.8+vmware.1-tkg.3 v1.21.2+vmware.1-fips.1-tkg.1 v1.21.2+vmware.1-tkg.1 v1.21.2+vmware.1-tkg.2 v1.21.5+vmware.1-tkg.1-tf-v0.10.1 v1.21.8+vmware.1-tkg.1 v1.21.8+vmware.1-tkg.2 v1.21.8+vmware.1-tkg.4 v1.21.8+vmware.1-tkg.4-tf-v0.11.2 v1.21.8+vmware.1-tkg.5 v1.22.5+vmware.1-tkg.1 v1.22.5+vmware.1-tkg.3 v1.22.5+vmware.1-tkg.3-tf-v0.11.2 v1.22.5+vmware.1-tkg.4
"
Versions
Version
v1.17.16+vmware.2-tkg.1
v1.17.16+vmware.2-tkg.2
v1.17.16+vmware.3-tkg.1
v1.18.16+vmware.1-tkg.1
v1.18.16+vmware.1-tkg.2
v1.18.16+vmware.3-tkg.1
v1.18.17+vmware.1-tkg.1
v1.18.17+vmware.2-tkg.1
v1.19.8+vmware.1-tkg.1
v1.19.8+vmware.1-tkg.2
v1.19.8+vmware.3-tkg.1
v1.19.9+vmware.1-tkg.1
v1.19.9+vmware.2-tkg.1
v1.19.12+vmware.1-tkg.1
v1.19.12+vmware.1-tkg.2
v1.19.12+vmware.1-tkg.3-tf-v0.10.1
v1.19.16+vmware.1-tkg.1
v1.20.4+vmware.1-tkg.1
v1.20.4+vmware.1-tkg.2
v1.20.4+vmware.3-tkg.1
v1.20.5+vmware.1-tkg.1
v1.20.5+vmware.2-fips.1-tkg.1
v1.20.5+vmware.2-tkg.1
v1.20.8+vmware.1-fips.1-tkg.2
v1.20.8+vmware.1-tkg.2
v1.20.8+vmware.1-tkg.3
v1.20.11+vmware.1-tkg.1-tf-v0.10.1
v1.20.14+vmware.1-tkg.1
v1.20.14+vmware.1-tkg.2
v1.20.14+vmware.1-tkg.4
v1.20.14+vmware.1-tkg.5
v1.20.14+vmware.1-tkg.4-tf-v0.11.2
v1.21.2+vmware.1-fips.1-tkg.1
v1.21.2+vmware.1-tkg.1
v1.21.2+vmware.1-tkg.2
v1.21.5+vmware.1-tkg.1-tf-v0.10.1
v1.21.8+vmware.1-tkg.1
v1.21.8+vmware.1-tkg.2
v1.21.8+vmware.1-tkg.4
v1.21.8+vmware.1-tkg.5
v1.21.8+vmware.1-tkg.4-tf-v0.11.2
v1.22.5+vmware.1-tkg.1
v1.22.5+vmware.1-tkg.3
v1.22.5+vmware.1-tkg.4
v1.22.5+vmware.1-tkg.3-tf-v0.11.2
Highest version: v1.22.5+vmware.1-tkg.3-tf-v0.11.2
Succeeded
Anything else you would like to add:
I don't want to solutionize here, since folks might intentionally have the _ there and it's not meant to turn into a +, just illustrating that in this isolated event treating the _ as a + would fix things.
Environment:
- vendir version (execute
vendir --version):0.26.0 - OS (e.g. from
/etc/os-release): Fedora 35
Vote on this request
This is an invitation to the community to vote on issues, to help us prioritize our backlog. Use the "smiley face" up to the right of this comment to vote.
👍 "I would like to see this addressed as soon as possible" 👎 "There are other more important things to focus on right now"
We are also happy to receive and review Pull Requests if you want to help working on this issue.
Thanks @voor - it seems like the library we're using is enforcing the semver 2.0.0 BNF grammar which includes the + as you show above, and - (hyphens) (to designate prereleases) but not underscores.
I've updated the title to reflect what I actually need. If I remove the _vmware.1 part from the versions then sorting can proceed:
vendir tools sort-semver -v "v1.19.12-tkg.1 v1.19.12-tkg.2 v1.19.12-tkg.3-tf-v0.10.1 v1.19.16-tkg.1 v1.20.11-tkg.1-tf-v0.10.1 v1.20.14-tkg.1 v1.20.14-tkg.2 v1.20.14-tkg.4 v1.20.14-tkg.4-tf-v0.11.2 v1.20.14-tkg.5 v1.20.15-tkg.1 v1.20.8-tkg.2 v1.20.8-tkg.3 v1.21.11-tkg.1 v1.21.2-tkg.1 v1.21.2-tkg.2 v1.21.5-tkg.1-tf-v0.10.1 v1.21.8-tkg.1 v1.21.8-tkg.2 v1.21.8-tkg.4 v1.21.8-tkg.4-tf-v0.11.2 v1.21.8-tkg.5" --prerelease
I need some sort of find/replace capability on the versions prior to attempting sorting. Whether that's changing _ to +, or in my case removing a chunk of erroneous text from the versions.