Python module for working with Semantic Versioning, using the MAJOR.MINOR.PATCH format with support for pre-release and build metadata. It helps parse version strings, bump version parts, and compare versions, which is useful for managing and reasoning about release numbers in Python projects.
Project status
- Actively maintained: The repository shows continued activity, with version updates in early 2025 (3.0.3 and 3.0.4) and an upstream push as recent as 2025-12-09, indicating it is not in a long-term maintenance freeze.
- Update cadence: After a relatively long gap since 3.0.2 (2023-10-09), there were two close together updates (3.0.3 on 2025-01-18, 3.0.4 on 2025-01-24), suggesting active follow-up shortly after the prior update. The evidence provided does not show more 2025 updates beyond those.
AI summary generated Today
Recent updates
3.0.4
1/24/2025Release 3.0.4 is labeled as a bug fix for 3.0.3 (PR #459), with changes focused on packaging and project metadata rather than runtime behavior. The code diff shows updates to the distributed package contents and license classifier metadata, along with the expected version bump.
3.0.3
1/18/2025semver 3.0.3 is a maintenance release focused on tooling, documentation polish, and type hint improvements. It also includes a bug fix for version comparison with subclasses, plus CI and project configuration updates (including adoption of Astral's uv).
3.0.2
10/9/2023semver 3.0.2 is a small release focused on CI and documentation improvements, plus a couple of real behavior changes in the Version API. The release includes internal typing changes (ClassVar) and updates Version.to_dict and Version.replace behavior. It also amends GitHub workflow behavior to better handle documentation-only changes and to test macOS in CI.
Breaking3.0.1
6/14/2023Release 3.0.1 is a small packaging and maintenance update for python-semver, including metadata/doc improvements and CI workflow tweaks. The only runtime-impacting code change visible in the diff is related to how the package exports symbols (via __all__) and the version bump to 3.0.1.
3.0.0
4/2/2023Release 3.0.0 finalizes the semver library version (bumping __version__ from 3.0.0-rc.1 to 3.0.0). The main functional changes are refactoring max_ver/min_ver logic and ensuring semver._deprecated.compare remains available for users, tied to fix #258.
3.0.0-rc.1
3/19/2023Release 3.0.0-rc.1 primarily ships bug fixes and developer-experience improvements leading up to the semver 3.0.0 final release candidate. The documented work includes CLI fixes for python -m semver, improved typing for Version.parse, new Version.NAMES metadata, and support for bumping versions when given an empty string token.
Features3.0.0-dev.4
12/19/2022Release 3.0.0-dev.4 is primarily a maintenance update with documented fixes to Towncrier configuration, plus documentation restructuring and new guidance content. It also includes documented behavior changes for parsing and matching versions, and a documented deprecation of Python 3.6 support.
BreakingFeatures3.0.0-dev.3
1/20/2022Release 3.0.0-dev.3 primarily updates documentation and internal typing and refactors within semver's core version comparison logic. The main behavioral change in code is how comparisons behave when the other operand is an unsupported type, shifting from raising TypeError to returning NotImplemented.
Breaking3.0.0-dev.2
11/1/2020Release 3.0.0-dev.2 restructures the project into a proper Python package layout under src/semver, adds a dedicated CLI module, and introduces the Version class name (renamed from VersionInfo). It also updates documentation structure and ships PEP-561 typing support via py.typed.
Features3.0.0-dev.1
10/26/2020Release 3.0.0-dev.1 is a development snapshot preparing the semver 3.0.0-alpha line. The documented work focuses on dropping Python 2 and older Python versions, modernizing CI and packaging, migrating changelog management to Towncrier, and adding typing/documentation updates.
BreakingFeatures