gajdaw / stamp
Versioning tool to bump version.
Installs: 19
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 1
Type:project
pkg:composer/gajdaw/stamp
Requires
- php: >=5.3.3
- cypresslab/gitelephant: >=0.6.0
- symfony/config: ~2.6
- symfony/console: ~2.6
- symfony/dependency-injection: ~2.6
- symfony/process: ~2.6
- symfony/yaml: ~2.6
- twig/twig: ~1.0
Requires (Dev)
- behat/behat: ~3.0
- bossa/phpspec2-expect: ~1.0
README
Application that makes versioning a little easier.
1. Example
Suppose your application contains a file name metadata.json with
the following contents:
{
"name": "gajdaw-php_phars",
"version": "0.1.4",
"author": "gajdaw"
}
To release a new version you would probably:
- increase the version in
metadata.jsonfrom0.1.4to0.1.5 - commit the change setting the commit's message to
Version 0.1.5 - create an annotated tag
v0.1.5with messageRelease 0.1.5
To perform the above operations with stamp application
start with the configuration file named stamp.yml
(in your project's root directory):
filename: 'metadata.json'
regex: '/"version": "(?P<version>[\d\.]+)",/'
replacement: '"version": "{{ version }}",'
The filename parameter sets the file to be searched for version.
The regex parameter sets the regular expression used to parse
the file for version number. Please note that ?P<version>
sets the name of the variable to version.
The replacement parameter is a Twig template for the
string that represents the new version. This string
will be stored in the file defined by filename.
2. How to install?
2.1. Manual download
Download the latest release available at:
https://github.com/gajdaw/stamp/releases/download/v0.2.0/stamp.phar
You can do this with:
wget -O stamp.phar http://github.com/gajdaw/stamp/releases/download/v0.2.0/stamp.phar
2. Running stamp
Since stamp is not yet stable, I suggest using
--dry-run and --verbose options for start.
Here is the list of available commands:
$ stamp patch:up --dry-run --verbose
$ stamp minor:up --dry-run --verbose
$ stamp major:up --dry-run --verbose
The command patch:up performs the following transformation:
1.2.3 => 1.2.4
77.234.654 => 77.234.655
The command minor:up increases the number in the middle
and sets the patch number to 0:
1.2.3 => 1.3.0
77.234.654 => 77.235.0
The last command, major:up increases the first number
and sets the other numbers to 0:
1.2.3 => 2.0.0
77.234.654 => 78.0.0
3. Reading list
- https://github.com/vojtajina/grunt-bump
- https://github.com/maestrodev/puppet-blacksmith
- http://opensource.apple.com/source/libarchive/libarchive-30/libarchive/build/bump-version.sh
- http://stackoverflow.com/questions/4181185/what-does-bump-version-stands-for
- https://gist.github.com/pete-otaqui/4188238
- https://github.com/nvie/gitflow/blob/develop/bump-version
- https://docs.npmjs.com/cli/version
4. How to run the tests?
$ vagrant up
$ composer update
$ bin/phpspec run
$ bin/behat
5. How to build dev version?
git checkout master
git checkout -b build
vagrant ssh
bin/stamp version:dev
./build.bash
git checkout master
git branch -D build
6. Credits
Many concepts in this application, especially when it comes to testing, came from: https://github.com/phpspec/phpspec
Great many thanks to all contributors!
I used some of the files, like for example matchers in
features/bootstrap/Matcher/ folder, directly
(i.e. without any modifications).
In case of other fragments (e.g. parseConfigurationFile
method in Stamp\Console\Application) I changed the
code that I found in phpspec.