All Projects → melbahja → semver

melbahja / semver

Licence: MIT License
Simple PHP Semantic Versioning Parser and Comparator

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to semver

probot-semver
A GitHub app that provides automatic semantic versioning support
Stars: ✭ 15 (-28.57%)
Mutual labels:  semver
verl
SemVer 2.0 parsing, matching, and comparisons for Erlang
Stars: ✭ 28 (+33.33%)
Mutual labels:  semver
git-semver
a small cli tool to version your git repository with semantic versioning
Stars: ✭ 19 (-9.52%)
Mutual labels:  semver
next-ver
Tells you the next semantic version for your local package
Stars: ✭ 27 (+28.57%)
Mutual labels:  semver
turbogit
Opinionated cli enforcing clean git workflow without comprising UX
Stars: ✭ 42 (+100%)
Mutual labels:  semver
koji
🦊 An interactive CLI for creating conventional commits.
Stars: ✭ 25 (+19.05%)
Mutual labels:  semver
ongeza
An automated way to follow the Semantic Versioning Specification
Stars: ✭ 36 (+71.43%)
Mutual labels:  semver
perfekt
Release, changelog and version your packages with perfe(k)t 👌 ease!
Stars: ✭ 15 (-28.57%)
Mutual labels:  semver
zerover
0️⃣ Minimalist versioning scheme for devs who can't be bothered.
Stars: ✭ 141 (+571.43%)
Mutual labels:  semver
cpp-semver
semver in c++
Stars: ✭ 25 (+19.05%)
Mutual labels:  semver
semver
Kotlin data class for Semantic Versioning 2.0.0 specification (SemVer)
Stars: ✭ 51 (+142.86%)
Mutual labels:  semver
semver-generator
Semantic version generator using git commit keywords and overrides
Stars: ✭ 26 (+23.81%)
Mutual labels:  semver
breakcheck
Backwards compatibility linter for Go.
Stars: ✭ 66 (+214.29%)
Mutual labels:  semver
cocogitto
The Conventional Commits toolbox
Stars: ✭ 242 (+1052.38%)
Mutual labels:  semver
sh-semver
Bash implementation of semantic versioning
Stars: ✭ 28 (+33.33%)
Mutual labels:  semver
bin-version-cli
Get the version of a binary in semver format
Stars: ✭ 36 (+71.43%)
Mutual labels:  semver
bump
A generic version tracking and update tool
Stars: ✭ 33 (+57.14%)
Mutual labels:  semver
version-check
An action that allows you to check whether your npm package version has been updated
Stars: ✭ 65 (+209.52%)
Mutual labels:  semver
semver-check
Online SemVer Checker
Stars: ✭ 84 (+300%)
Mutual labels:  semver
terraform-module-versions
CLI tool that checks Terraform code for module updates. Single binary, no dependencies. linux, osx, windows. #golang #cli #terraform
Stars: ✭ 143 (+580.95%)
Mutual labels:  semver

Semver PHP Composer

Simple PHP Semantic Versioning Parser and Comparator

Installation :

Using Composer:

composer require melbahja/semver 1.0.1

Usage :

Simple Example:

require 'vendor/autoload.php';

use Melbahja\Semver\Semver;

$version = Semver::parse('1.3.0-beta+exp.sha.5114f85');

var_dump(
	$version->getMajor(), 	// int 1
	$version->getMinor(), 	// int 3
	$version->getPatch(), 	// int 0
	$version->getRelease(), // string beta
	$version->getMeta(),	// string exp.sha.5114f85
	$version->is('beta'), 	// true
	$version->is('stable') 	// false
);

// compare versions
var_dump(
	$version->compare('1.3.0-beta'), // true
	$version->compare('1.3.0', '<'), // true 1.3.0-beta is smaller than 1.3.0
	$version->compare('1.3.0-alpha') // false
);

Compare Examples:

var_dump(Semver::compare('1.2.3-alpha', '1.2.3-alpha.1', '<')); // true 1.2.3-alpha is smaller than 1.2.3-alpha.1

$version1 = Semver::parse('1.0.0-alpha.beta');

// $version1->getRelease(); // is alpha.beta

$version2 = Semver::parse('1.0.0-beta.2');

// $version2->getRelease(); // is beta.2

var_dump(Semver::compare($version1, $version2)); // false

var_dump(Semver::compare($version1, $version2, '<')); // true $version1 is smller than $version2

var_dump(Semver::compare($version1, $version2, '<=')); // true


$version3 = Semver::parse('2.2.0-alpha+exp.sha.5114f85');

$version4 = Semver::parse('2.2.0-alpha');

var_dump(Semver::compare($version3, $version4, '=')); // true

License :

MIT Copyright (c) 2018 Mohamed Elbahja

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].