2017 © Pedro Peláez
 

library semver

Semantic versioning helper library

image

phlak/semver

Semantic versioning helper library

  • Friday, September 8, 2017
  • by PHLAK
  • Repository
  • 2 Watchers
  • 1 Stars
  • 11 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 1 Forks
  • 1 Open issues
  • 10 Versions
  • 0 % Grown

The README.md

SemVer

SemVer , (*1)

Semantic versioning helper library • Created by Chris Kankiewicz (@PHLAK) , (*2)

Join our Community Become a Sponsor One-time Donation
Latest Stable Version Total Downloads License GitHub branch checks state , (*3)


Requirements

Installation

composer require phlak/semver

Initializing

use PHLAK\SemVer;

$version = new SemVer\Version(); // Initilializes to '0.1.0'

Or initialize with a custom version by passing a version string on creation. Accepts any valid semantic version string with or without a preceding v., (*4)

$version = new SemVer\Version('v1.2.3-alpha.5+sha.8d31ff4');

Or parse an incomple version string with the static Version::parse() constructor., (*5)

$version = SemVer\Version::parse('v1')   // Initializes to '1.0.0'
$version = SemVer\Version::parse('v1.2') // Initializes to '1.2.0'

Usage

Retrieve the version or individual values

$version = new SemVer\Version('v1.2.3-beta.4+007');

echo $version;             // '1.2.3-beta.4+007'
echo $version->major;      // 1
echo $version->minor;      // 2
echo $version->patch;      // 3
echo $version->preRelease; // 'beta.4'
echo $version->build;      // '007'

Increment the version

$version = new SemVer\Version('v1.2.3');

$version->incrementMajor();      // v1.2.3 -> v2.0.0
$version->incrementMinor();      // v1.2.3 -> v1.3.0
$version->incrementPatch();      // v1.2.3 -> v1.2.4
$version->incrementPreRelease(); // v1.2.3-alpha.5 -> v1.2.3-alpha.6

Set (override) the version or individual values

$version = new SemVer\Version();

$version->setVersion('v1.2.3');  // v1.2.3
$version->setMajor(3);           // v1.2.3 -> v3.0.0
$version->setMinor(5);           // v1.2.3 -> v1.5.0
$version->setPatch(7);           // v1.2.3 -> 1.2.7
$version->setPreRelease('rc.2'); // v1.2.3 -> v1.2.3-rc.2
$version->setBuild('007');       // v1.2.3 -> v1.2.3+007

Clear pre-release / build values

$version->setPreRelease(null); // v1.2.3-rc.2 -> v1.2.3
$version->setBuild(null);      // v1.2.3+007 -> v1.2.3

Check for pre-release / build values

$version->isPreRelease();
$version->hasBuild();

Compare two SemVer objects

$version1 = new SemVer\Version('v1.2.3');
$version2 = new SemVer\Version('v3.2.1');

$version1->gt($version2);  // false
$version1->lt($version2);  // true
$version1->eq($version2);  // false
$version1->neq($version2); // true
$version1->gte($version2); // false
$version1->lte($version2); // true
Limit comparison to the major version only

Ignores the minor, patch and pre-release versions completely, (*6)

$version1 = new SemVer\Version('v1.2.3-alpha.4');
$version2 = new SemVer\Version('v1.3.4-alpha.5');

$version1->gt($version2, Compare::MAJOR);  // false
$version1->lt($version2, Compare::MAJOR);  // false
$version1->eq($version2, Compare::MAJOR);  // true
$version1->neq($version2, Compare::MAJOR); // false
$version1->gte($version2, Compare::MAJOR); // true
$version1->lte($version2, Compare::MAJOR); // true
Limit comparison to the major and minor versions only

Ignores the patch and pre-release versions completely, (*7)

$version1 = new SemVer\Version('v1.2.3-alpha.4');
$version2 = new SemVer\Version('v1.2.4-alpha.5');

$version1->gt($version2, Compare::MINOR);  // false
$version1->lt($version2, Compare::MINOR);  // false
$version1->eq($version2, Compare::MINOR);  // true
$version1->neq($version2, Compare::MINOR); // false
$version1->gte($version2, Compare::MINOR); // true
$version1->lte($version2, Compare::MINOR); // true
Limit comparison to the major, minor and patch versions only

Ignores the pre-release version completely, (*8)

$version1 = new SemVer\Version('v1.2.3-alpha.4');
$version2 = new SemVer\Version('v1.2.3-alpha.5');

$version1->gt($version2, Compare::PATCH);  // false
$version1->lt($version2, Compare::PATCH);  // false
$version1->eq($version2, Compare::PATCH);  // true
$version1->neq($version2, Compare::PATCH); // false
$version1->gte($version2, Compare::PATCH); // true
$version1->lte($version2, Compare::PATCH); // true

Troubleshooting

For general help and support join our GitHub Discussions or reach out on Twitter., (*9)

Please report bugs to the GitHub Issue Tracker., (*10)

This project is liscensed under the MIT License., (*11)

The Versions

08/09 2017

dev-master

9999999-dev

Semantic versioning helper library

  Sources   Download

MIT

The Requires

  • php >=5.6

 

The Development Requires

08/09 2017

2.0.1

2.0.1.0

Semantic versioning helper library

  Sources   Download

MIT

The Requires

  • php >=5.6

 

The Development Requires

06/09 2017

1.0.0

1.0.0.0

Semantic versioning helper library

  Sources   Download

MIT

The Requires

  • php >=5.4

 

The Development Requires

11/09 2016

0.2.0

0.2.0.0

Semantic versioning helper library

  Sources   Download

MIT

The Requires

  • php >=5.4

 

The Development Requires

04/09 2016

0.1.5

0.1.5.0

Semantic versioning helper library

  Sources   Download

MIT

The Requires

  • php >=5.4

 

The Development Requires

03/09 2016

0.1.4

0.1.4.0

Semantic versioning helper library

  Sources   Download

MIT

The Requires

  • php >=5.4

 

The Development Requires

25/06 2016

0.1.3

0.1.3.0

Semantic versioning helper library

  Sources   Download

MIT

The Requires

  • php >=5.4

 

The Development Requires

24/06 2016

0.1.2

0.1.2.0

Semantic versioning helper library

  Sources   Download

MIT

The Requires

  • php >=5.4

 

The Development Requires

24/06 2016

0.1.1

0.1.1.0

Semantic versioning helper library

  Sources   Download

MIT

The Development Requires

24/06 2016

0.1.0

0.1.0.0

Semantic versioning helper library

  Sources   Download

MIT

The Development Requires