Например, построчное сравнение версий даёт такой результат: "v1.2" > "v1.11" //true
То есть если v1.2 это то же, что и v1.20, то результат правильный.
С другой стороны, если это просто номер подверсии, то по идее должно быть 2 < 11.
Как на самом деле правильно?
Оба варианта правильные. В чём вопрос? Как версионировать? Как это принято у вас на работе или в вашем пакетном менеджере. Или как хотите. Можете использовать какой-нибудь стандарт.
Если Вас интересует какой подход в версионировании своего проекта выбрать, то можно рассмотреть вот этот.
Если вопрос касается того как сравнить две версии, то в некоторых языках уже есть готовые методы для этого. В php, например, есть метод version_compare()