HexdocsMcp.Version (HexDocs MCP v0.6.0)
View SourceUtilities for semantic version comparison and handling.
Summary
Functions
Compares two semantic versions.
Groups search results by package and filters to only the latest version of each.
Finds the latest version from a list of versions.
Functions
Compares two semantic versions.
Returns:
:gt
if version1 > version2:lt
if version1 < version2:eq
if version1 == version2
Examples
iex> HexdocsMcp.Version.compare("3.5.10", "3.5.9")
:gt
iex> HexdocsMcp.Version.compare("3.5.9", "3.5.10")
:lt
iex> HexdocsMcp.Version.compare("3.5.9", "3.5.9")
:eq
iex> HexdocsMcp.Version.compare("1.0.0-rc.1", "1.0.0")
:lt
iex> HexdocsMcp.Version.compare("latest", "3.5.9")
:eq
iex> HexdocsMcp.Version.compare("3.5.9", "latest")
:eq
Groups search results by package and filters to only the latest version of each.
Examples
iex> results = [
...> %{metadata: %{package: "ash", version: "3.5.9"}},
...> %{metadata: %{package: "ash", version: "3.5.10"}},
...> %{metadata: %{package: "phoenix", version: "1.7.0"}}
...> ]
iex> HexdocsMcp.Version.filter_latest_versions(results)
[
%{metadata: %{package: "ash", version: "3.5.10"}},
%{metadata: %{package: "phoenix", version: "1.7.0"}}
]
Finds the latest version from a list of versions.
Examples
iex> HexdocsMcp.Version.find_latest(["3.5.9", "3.5.10", "3.5.2"])
"3.5.10"
iex> HexdocsMcp.Version.find_latest(["1.0.0-rc.1", "1.0.0", "0.9.0"])
"1.0.0"
iex> HexdocsMcp.Version.find_latest(["latest"])
"latest"
iex> HexdocsMcp.Version.find_latest([])
nil