{"id":45386378,"url":"https://github.com/dcarp/semver","last_synced_at":"2026-02-21T17:29:50.376Z","repository":{"id":17928613,"uuid":"20901421","full_name":"dcarp/semver","owner":"dcarp","description":"Semantic Versioning Library","archived":false,"fork":false,"pushed_at":"2025-09-21T01:11:03.000Z","size":25,"stargazers_count":12,"open_issues_count":1,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-21T01:19:38.887Z","etag":null,"topics":["d","semver"],"latest_commit_sha":null,"homepage":null,"language":"D","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dcarp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2014-06-16T21:26:56.000Z","updated_at":"2025-09-21T01:05:35.000Z","dependencies_parsed_at":"2025-09-21T01:13:00.959Z","dependency_job_id":"09eb1b22-1626-42a4-9b95-c1c0a95bbfab","html_url":"https://github.com/dcarp/semver","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/dcarp/semver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcarp%2Fsemver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcarp%2Fsemver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcarp%2Fsemver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcarp%2Fsemver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dcarp","download_url":"https://codeload.github.com/dcarp/semver/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcarp%2Fsemver/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29688238,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T15:51:39.154Z","status":"ssl_error","status_checked_at":"2026-02-21T15:49:03.425Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["d","semver"],"created_at":"2026-02-21T17:29:50.307Z","updated_at":"2026-02-21T17:29:50.369Z","avatar_url":"https://github.com/dcarp.png","language":"D","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://github.com/dcarp/semver/workflows/CI/badge.svg)](https://github.com/dcarp/semver/actions?workflow=CI)\n\nsemver\n======\n\nSemantic Versioning Library\n\n## Implementation\n\nThis library parses, validates and compares version numbers and version ranges.\n\nIt uses the following formats:\n* Semantic Versioning 2.0.0 - http://semver.org\n* Semantic Versioning Range - https://github.com/isaacs/node-semver\n\n## Usage\n\n```D\nauto version1 = SemVer(\"1.0.0\");\nassert(version1.isValid);\nassert(version1.isStable);\n\nauto version2 = SemVer(\"1.0.0-rc.1\");\nassert(version2.isValid);\nassert(!version2.isStable);\n\nauto version3 = Semver(\"1.2.3-rc.42\");\nassert(version3.major == 1);\nassert(version3.minor == 2);\nassert(version3.patch == 3);\n\nassert(SemVer(\"1.0.0\") \u003e SemVer(\"1.0.0+build.1\"));\nassert(SemVer(\"1.0.0\").differAt(SemVer(\"1.0.0+build.1\")) == VersionPart.BUILD);\n\nauto versionRange = SemVerRange(\"\u003e=1.0.0\");\nassert(versionRange.isValid);\n\nassert(SemVer(\"1.0.1\").satisfies(versionRange));\nassert(SemVer(\"1.1.0\").satisfies(versionRange));\n\nauto semVers = [SemVer(\"1.1.0\"), SemVer(\"1.0.0\"), SemVer(\"0.8.0\")];\nassert(semVers.maxSatisfying(SemVerRange(\"\u003c=1.0.0\")) == SemVer(\"1.0.0\"));\nassert(semVers.maxSatisfying(SemVerRange(\"\u003e=1.0\")) == SemVer(\"1.1.0\"));\n\nsemVers = [SemVer(\"1.0.0+build.3\"), SemVer(\"1.0.0+build.1\"), SemVer(\"1.1.0\")];\nassert(semVers.maxSatisfying(SemVerRange(\"\u003c=1.0.0\")) == SemVer(\"1.0.0+build.3\"));\nassert(semVers.maxSatisfying(SemVerRange(\"\u003e=1.0\")) == SemVer(\"1.1.0\"));\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdcarp%2Fsemver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdcarp%2Fsemver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdcarp%2Fsemver/lists"}