Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/screamingdev/phpsemver
Check if your changes are a major change, minor change or just a patch.
https://github.com/screamingdev/phpsemver
assertions php semantic-versions testing
Last synced: 3 months ago
JSON representation
Check if your changes are a major change, minor change or just a patch.
- Host: GitHub
- URL: https://github.com/screamingdev/phpsemver
- Owner: ScreamingDev
- License: mit
- Created: 2015-02-19T22:24:52.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2022-03-26T00:48:13.000Z (almost 3 years ago)
- Last Synced: 2024-10-12T15:21:50.942Z (4 months ago)
- Topics: assertions, php, semantic-versions, testing
- Language: PHP
- Size: 369 KB
- Stars: 27
- Watchers: 1
- Forks: 0
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# PHPSemVer
> Check your changes against semantic versions
[![Build Status](https://travis-ci.org/sourcerer-mike/phpsemver.svg?branch=3.2.0)](https://travis-ci.org/sourcerer-mike/phpsemver)
[![Coverage](https://codecov.io/github/sourcerer-mike/phpsemver/coverage.svg?branch=3.2.0)](http://codecov.io/github/sourcerer-mike/phpsemver?branch=3.2.0)Install it via composer
composer require sourcerer-mike/phpsemver
and test your code by comparing two versions
phpsemver compare 3.2.0 HEAD
or the last commit with your current work:
phpsemver compare HEAD .
+-------+-------------------------------------------------------------------+
| Level | Message |
+-------+-------------------------------------------------------------------+
| major | phpsemver_get_composer_config() removed. |
| major | PHPSemVer\Specification removed. |
| minor | PHPSemVer\Config added. |
| minor | PHPSemVer\Wrapper\AbstractWrapper::mergeTrees() added. |
| patch | PHPSemVer\Wrapper\Directory::getAllFileNames() body changed. |
| patch | PHPSemVer\Wrapper\Git::getAllFileNames() body changed. |
+-------+-------------------------------------------------------------------+
Total time: 0.94You're welcome!
## Features
### Commands
Try the several possibilities:
- Use `compare` to check for changes.
- Use `vcs:message` to enhance your commit messages.### Wrapper
Choose between those wrapper(`phpsemver compare --type ...`):
- GIT
- Filesystem / DirectoriesIf one argument is a directory, then the system will work on the file system.
### Assertions
Make assertions on:
- Functions
- IsAdded: Check if a function is new.
- IsRemoved: Check if a function is removed.
- BodyChanged: Check if someone changed the behaviour of a function.
- Classes
- IsAdded: Check if a classes is new.
- IsRemoved: Check if a classes is removed.
- Methods
- IsAdded: Check if a method is new.
- IsRemoved: Check if a method is removed.
- BodyChanged: Check if someone changed the behaviour of a method.
- ReturnTypeChanged: Watch for changed return types.
- ReturnTypeRemoved: Watch for incompatible changes on methods.
- Interfaces
- IsAdded: Check if an interface is new.
- IsRemoved: Check if an interface is removed.Combine them as you like in your own configuration file.
## Configuration
Configure which assertions are used in a XML-File.
The delivered XSD file makes it easy to write your own configuration (in a proper IDE).
@lib/.*@
@lib/Test/.*@
Write your own and use it with the `--ruleset` option.
See the wiki entry for more information: https://github.com/sourcerer-mike/phpsemver/wiki/Configuration### Prepared rule sets
Those projects do semantic versions in different ways.
So a special config is written for them which can be used via the `--ruleSet` option:- Drupal-Core
- SemVer2
- WordPressJust write `phpsemver --ruleSet Drupal-Core` and see the latest changes in Drupal.
There are other companies that follow some semantics in their rules like
Symfony.
Don't drag behind - catch up with PHPSemVer.