version-utils
Library for parsing system package strings and comparing package versions
Decision gist · record as of 2026-08-14
No. The project is abandoned (last commit 2022-05-05) with no maintenance signal. While it has no dependencies and the GPLv3 license is clear, the lack of updates means it will not receive bug fixes, security patches, or compatibility updates for modern Python versions. Use only if locked into an older codebase that already depends on it; for new projects, consider actively maintained alternatives.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Installation is frictionless—the package has no runtime dependencies and ships as a wheel.
- However, maintenance is a concern: the last commit was 2022-05-05 and the project is marked abandoned, meaning bug fixes and compatibility updates are unlikely.
License · maintenance · safety
copyleft license (copyleft) — Licensed under GPLv3 (copyleft). Any code that imports this package must also be GPLv3-compatible or dual-licensed; proprietary or permissive-licensed projects may face licensing conflicts.
last release 2022-05-06 (1561 days) · last repo commit 2022-05-05 · 15 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 77,424 downloads/mo, #14,527 on PyPI
Alternatives
Verify before relying
from version_utils import rpm
# Parse an RPM package string
pkg = rpm.package('perl-Compress-Raw-Zlib-2.021-136.el6_6.1.x86_64')
print(pkg.name, pkg.version, pkg.release)
# Compare two versions
result = rpm.compare_versions('2.021-136', '2.021-138')
if result < 0:
print('First version is older')- Whether the package remains compatible with modern Python versions beyond 3.5, given classifiers list only up to 3.5
- Whether Debian/dpkg support mentioned as 'in the near future' was ever implemented in later releases
- Real-world reliability of RPM version comparison logic against current RPM standards
What it is and what it does
version_utils is a pure-Python library for parsing and comparing package version strings, currently supporting RPM/Yum format. It provides functions to extract package metadata (name, epoch, version, release, architecture) and compare versions using the same logic as the rpm command-line tool, without requiring the rpm tool or any system dependencies to be installed.
The library is designed for scenarios where you need version comparison in unit tests, deployment scripts, or environments without access to system package managers. It offers a Package class for structured access to parsed package information and comparison functions that work identically to their command-line equivalents, making results predictable and portable across systems.
Use it for
- Compare installed RPM package versions against requirements in a deployment script without calling rpm command-line tools
- Parse and extract metadata from RPM package strings in a cross-platform Python application or test suite
- Validate package version constraints in CI/CD pipelines running on systems without rpm or yum installed
- Build package management logic that works consistently across different Linux distributions without distro-specific tools
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
No.
The project is abandoned (last commit 2022-05-05) with no maintenance signal. While it has no dependencies and the GPLv3 license is clear, the lack of updates means it will not receive bug fixes, security patches, or compatibility updates for modern Python versions. Use only if locked into an older codebase that already depends on it; for new projects, consider actively maintained alternatives.
Install
version-utils on PyPI
Before you install
Installation is frictionless—the package has no runtime dependencies and ships as a wheel. However, maintenance is a concern: the last commit was 2022-05-05 and the project is marked abandoned, meaning bug fixes and compatibility updates are unlikely.
License in practice
Licensed under GPLv3 (copyleft). Any code that imports this package must also be GPLv3-compatible or dual-licensed; proprietary or permissive-licensed projects may face licensing conflicts.
Quickstart
from version_utils import rpm
# Parse an RPM package string
pkg = rpm.package('perl-Compress-Raw-Zlib-2.021-136.el6_6.1.x86_64')
print(pkg.name, pkg.version, pkg.release)
# Compare two versions
result = rpm.compare_versions('2.021-136', '2.021-138')
if result < 0:
print('First version is older')
Verify before relying
- Whether the package remains compatible with modern Python versions beyond 3.5, given classifiers list only up to 3.5
- Whether Debian/dpkg support mentioned as 'in the near future' was ever implemented in later releases
- Real-world reliability of RPM version comparison logic against current RPM standards
Package facts
| License | copyleft license copyleft |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Abandoned 1,561 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 77,424 / month, #14,527 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 3 - AlphaEnvironment :: ConsoleEnvironment :: PluginsIntended Audience :: DevelopersLicense :: OSI Approved :: GNU General Public License v3 (GPLv3)Natural Language :: EnglishOperating System :: OS IndependentProgramming Language :: Python :: 2.6Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Topic :: Software Development :: Libraries :: Python ModulesTopic :: Software Development :: Version ControlTopic :: System :: Software DistributionTopic :: Utilities |
Evidence: version_utils-0.3.2-py2.py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “rpm package parsing”
- version-utilsParses and compares package version strings in RPM/Yum format using…
- rpm-vercmpCompares RPM package version strings using the same algorithm as the…
- rpmfileInspect and extract files from RPM archive files using a Python API…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also koji · rpm-vercmp · rpmfile · rpm · jsoncomparison · mozilla-version · debian-inspector · awesomeversion · python-debian · pyjson