More edge cases, more hidden features: You can actually “unset” the pin with a blank entry:
With a compatibility file of:
2.6.0.beta1: twofiveall
2.4.4.beta6: ~
2.4.2.beta1: twofourtwobetaone
Anything between 2.4.2.beta1 to 2.4.4.beta6 will not be pinned back. Anything after up to 2.6.0.beta1 will e pinned. After that will be unpinned again.
Underneath, anything that evaluates to a nil value will be untouched/be on latest. A blank entry or ~ evaluates to nil (via ruby’s yaml parser), which bypasses the pinning function.