VERS-TOOL(1p)

πŸ“¦ version 2.25, in ubuntu resolute, ubuntu stonking

πŸ’– VERS-TOOL β€” the version range tool, bestie edition πŸ’–

okay so. this is vers-tool, a Version Range tool, and it lives in the User Contributed Perl Documentation section (that's the 1p in VERS-TOOL(1p), iykyk). it is genuinely so good at decoding vers strings and i'm obsessed. let's get into it 🫢


✨ NAME ✨

vers-tool β€” Version Range tool. that's it, that's the name, no cap πŸ’…


✨ SYNOPSIS ✨

here's the whole vibe, verbatim:

vers-tool [OPTIONS]...STRING
vers-tool STRING --contains STRING
vers-tool [--help|--man|-v]

Options:

--help                    Brief help message
--man                     Full documentation
-v                        Print version

--contains=VERSION        Check if a version is contained within a range

--format=FORMAT           Output format
--json                    JSON output format (--format=json)
-h, --human-readable          Human-readable format (--format=human-readable)

Examples:

Decode a vers string:

vers-tool "vers:cpan/1.00|>=2.00|<5.00" | jq

Check if a version is contained within a range:

vers-tool "vers:cpan/1.00|>=2.00|<5.00" --contains "2.20"

Humanize vers:

vers-tool "vers:cpan/1.00|>=2.00|<5.00" --human-readable

    cpan
    - equal 1.00
    - greater than or equal 2.00
    - less than 5.00

✨ OPTIONS ✨

okay so here's every single flag, and yes you need all of them, they're all iconic:

  • --help β€” short lil help message, the quick version 🌸
  • --man β€” the FULL documentation. the whole lore. the director's cut πŸ’–
  • -v β€” print the version. simple. iconic. πŸ‘‘
  • --contains=VERSION β€” check if a version is contained within a range πŸŽ€
  • --format=FORMAT β€” pick your output format ✨
  • --json β€” JSON output format, which is literally just --format=json in a cute outfit πŸ’…
  • -h, --human-readable β€” human-readable format, aka --format=human-readable, for when you want the machine to speak people πŸ¦‹

✨ DESCRIPTION ✨

vers-tool Version Range tool. yep. that's the description. she's concise.

so a version range specifier (aka. vers) is a URI string using the vers URI-scheme, and the syntax goes like this:

vers:<versioning-scheme>/<version-constraint>|<version-constraint>|...

vers is the URI-scheme and it's an acronym for "VErsion Range Specifier". cute, right? it spells itself. periodt.

the pipe | is used as a simple separator between version-constraint. every single version-constraint in this pipe-separated list contains a comparator and a version:

<comparator:version>

this list of version-constraint are signposts in the version timeline of a package that specify version intervals. think of them as little mile markers on the road of versions πŸ›£οΈβœ¨

a version satisfies a version range specifier if it is contained within any of the intervals defined by these version-constraint.

more lore lives here: <https://github.com/package-url/vers-spec>


✨ EXAMPLES ✨

Decode a vers string:

vers-tool "vers:cpan/1.00|>=2.00|<5.00" | jq

Check if a version is contained within a range:

vers-tool "vers:cpan/1.00|>=2.00|<5.00" --contains "2.20"

Humanize vers:

vers-tool "vers:cpan/1.00|>=2.00|<5.00" --human-readable

    cpan
    - equal 1.00
    - greater than or equal 2.00
    - less than 5.00

✨ AUTHOR ✨

Giuseppe Di Terlizzi <https://metacpan.org/author/gdt> β€” absolute legend, the main character of this manpage πŸ’œ


Copyright Β© 2022-2025 Giuseppe Di Terlizzi <https://metacpan.org/author/gdt>

You may use and distribute this module according to the same terms that Perl is distributed under.


and that's the whole page bestie!! 🌈 this version of the doc is perl v5.40.1, dated 2026-01-31, and it belongs to VERS-TOOL(1p). go decode some vers strings, you're gonna eat πŸ’–βœ¨πŸ’…

πŸ“¦ where this page comes from