GithubHelp home page GithubHelp logo

mikaelbr / mversion Goto Github PK

View Code? Open in Web Editor NEW
201.0 8.0 19.0 552 KB

A cross packaging module version bumper. CLI or API for bumping versions of package.json, bower.json, *.jquery.json etc.

License: MIT License

JavaScript 100.00%

mversion's Introduction

mversion - A cross packaging manager module version handler/bumper

npm Travis Gemnasium

Imitates npm version to also work on other packaging files. For those times you have either have multiple packaging files (like bower.json, component.json, manifest.json) or just not a package.json file. mversion can easily bump your version and optionally commit and create a tag.

mversion file support

  • package.json
  • npm-shrinkwrap.json
  • component.json
  • bower.json
  • manifest.json
  • *.jquery.json (jquery plugin files, e.g plugin.jquery.json)

Usage CLI

npm install -g mversion

Examples

$ mversion patch
New Version: 0.0.6
Updated package.json
Updated component.json
$ mversion 0.0.5 -m
New Version: 0.0.5
Updated package.json
Updated component.json
Updated manifest.json
Commited to git and created tag v0.0.5
$ mversion 1.0.0-rc1 -m "Now in wopping v%s"
New Version: 1.0.0-rc1
Updated package.json
Updated component.json
Commited to git and created tag v1.0.0-rc1

Help

$ mversion -h

Usage: mversion [ <newversion> | major | minor | patch | prerelease ] [ -m <optional message> ] [ -n | --no-prefix ]
(run in package dir) - (Also supports premajor, preminor and prepatch, see semver summary)

Update module version in either one or all of package.json,
component.json, bower.json, manifest.json and *.jquery.json.

Run without arguments to get current version.

Semver Summary

Given a version number MAJOR.MINOR.PATCH, increment the:

  • MAJOR version when you make incompatible API changes,,
  • MINOR version when you add functionality in a backwards-compatible manner, and,
  • PATCH version when you make backwards-compatible bug fixes., Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.,

Update version

Update version by defining new semver valid version or a release string (major, minor, patch, build).

Ex: "mversion minor" Ex: "mversion 1.0.1-beta"

Git

Use -m to auto commit and tag. Apply optional message and use '%s' as placeholder for the updated version. Default message is 'v%s' where %s is replaced with new version.

--tag (or -t for short) allows for overriding the tag name used. This does not change behaviour of the message, just the tag name. As with -m, all occurances of %s is replaced with the newly bumped version.

--no-prefix (or -n for short) is a short hand for setting a tag name without v as prefix. This does not change behaviour of the message, just the tag name.

-- Ex: "mversion minor -m" Ex: "mversion minor -m 'Bumped to v%s' --tag 'v%s-src'"

Version aliases

If you are lazy you can also use aliases for the version release type.

mversion p

The full list of aliases:

"pa": "patch",
"pr": "prerelease",
"ma": "major",
"mi": "minor",
// one char might be controversial, but it saves key strokes
"m": "major",
"p": "patch",
"i": "minor"

Default settings

Create a .mversionrc file in your root with default settings as defined in the README.md of the project.


## Default Settings

You can provide default settings by creating a `.mversionrc` file
in the root of your project (or in a directory higher up in the hierarchy).
This way you can define project specific tag names or commit messages.

See API below to see what options are accepted.

### Example `.mversionrc`

```json
{
  "commitMessage": "Bumped to %s",
  "tagName": "v%s-src"
}

Now, when doing this in the Terminal:

$ mversion minor

would now be the same as doing:

mversion minor -m "Bumped to %s" -t "v%s-src"

Note: CLI arguments take precedence over default options. So doing this (with the .mversionrc file as defined above):

mversion minor -m "Kicked version to %s"

Would lead to the commit message being Kicked version to %s, and tag name to be v%s-src.

Hooks

.mversionrc will also allow you to define hooks before (preupdate) and after (postupdate) version is updated.

Example

{
  "scripts": {
    "preupdate": "echo 'Bumping version'",
    "precommit": "sh ./someHook.sh",
    "postcommit": "git push && git push --tags && npm publish",
    "postupdate": "echo 'Updated to version %s in manifest files'"
  }
}

If precommit fails (returns something other that exit 0) the commit will be checked out (removing the version bump changes).

Usage API

npm install mversion
var mversion = require('mversion');

mversion.get(function (err, data) {
  /*
    data = {
      'package.json': VERSION,
      'component.json': VERSION
    }
  */
});

mversion.update('minor', function (err, data) { })
mversion.update('major', function (err, data) { })
mversion.update({
    version: 'major',
    commitMessage: 'Some commit message for version %s'
  }, function (err, data) { }) // Will commit/tag
mversion.update({
    version: 'major',
    commitMessage: 'Some commit message for version %s',
    noPrefix: true
  }, function (err, data) { }) // Make tag without v prefix
mversion.update('patch', function (err, data) { })
mversion.update('prerelease', function (err, data) { })
mversion.update({
    version: '0.0.1',
    commitMessage: 'Bumping version'
  }, function (err, data) { }) // Will commit/tag
mversion.update('v1.0.1', function (err, data) { })
mversion.update('v1.0.1-beta', function (err, data) { })
mversion.update('v1.0.1-010988', function (err, data) { })

mversion.get(callback(err, data))

Get version of all the different package files. See example above.

mversion.update([options, ]callback(err, data))

Update version of found package files.

Example of the data returned from the callback:

{
  "newVersion": "1.0.0",
  "versions": { "package.json": "1.0."},
  "message": "Updated package.json",
  "updatedFiles": ["/mversion/example/package.json"]
}

Some times both data and err has values. In this case some package files were updated and some not.

options : Undefined

If options is undefined a standard bump of minor will be used.

options : String

If options is a string, this string is used as the version bump.

Example:

mversion.update('major')

options.version : String

Used to bump version. See above.

options.commitMessage : String

Used as message when creating commit in Git. Also used as message for the annotated tag created. If undefined, no commit will be made.

Occurances of %s in commit message will be replaced with new version number.

Example:

mversion.update({
  version: 'major',
  commitMessage: 'Bumps to version %s'
});

options.tagName : String

Default: v%s

Allows for overriding of tagName. For instance adding a suffix and changeing tag to be named v%s-src.

Will only take affect if commitMessage is defined.

Occurances of %s in tag name will be replaced with new version number.

Example:

mversion.update({
  version: 'major',
  commitMessage: 'Bumps to version %s',
  tagName: 'v%s-src'
});
// Might produce annotated tag named v1.0.0-src

options.noPrefix : Boolean

If true and commit message is defined, the annotated tag created will not have 'v' as prefix. This is a short hand for defining setting tag name to %s. Do not work if tag name is overriden (options.tagName is defined).

Example:

mversion.update({
  version: 'major',
  commitMessage: 'Bumps to version %s',
  noPrefix: true
});
// Might produce annotated tag named 1.0.0

This would be the same as:

mversion.update({
  version: 'major',
  commitMessage: 'Bumps to version %s',
  tagName: '%s'
});
// Might produce annotated tag named 1.0.0

mversion.isPackageFile(filename) : Boolean

Checks whether or not the given filename is a valid package file type.

Examples:

assert.equal(mversion.isPackageFile('package.json'), true);
assert.equal(mversion.isPackageFile('component.json'), true);
assert.equal(mversion.isPackageFile('bower.json'), true);
assert.equal(mversion.isPackageFile('foobar.json'), false);
assert.equal(mversion.isPackageFile('foobar.jquery.json'), true);
assert.equal(mversion.isPackageFile('foojquery.json'), false);

Changelog

1.9.0

  1. Adds aliases for bumps (p, m, i) (#20)

1.8.0

  1. Adds Composer support. (#19)

1.7.0

  1. Replaces %s with newVersion in post scripts. Fixes #18

1.6.1

  1. Adds support for git staging files with spaces. Fixes #17

1.6.0

  1. Adds auto-updater to mversion.

1.5.0

  1. Fixes issue with version bump being parsed as number and running string operations.
  2. Improves error given on invalid version input
  3. Bumps minimatch and semver to latest versions.

1.4.0

  1. Adds pre-/postcommit hooks allowing for commands to be run before and after version bump git commit.

1.3.0

  1. Adds .mversionrc file for defining default settings
  2. Adds pre-/postupdate hooks allowing for commands to be run before and after version bump. Useful for instance for doing npm publish or git push.

1.2.0

  1. Adds option to override tag name (options.tagName) in #update.
  2. Misc. refactoring and further testing.

1.1.0

  1. Improves CLI arguments. Now arguments is indifferent to order
  2. Adds better error handling and user feedback on partial version update (not all files).

1.0.0

  1. Changes API to use an object literal, avoiding magic strings/primitives.

0.5.0

  1. Adds noPrefix flag. Allowing to define whether or not to prefix tags with "v".

License

MIT License

mversion's People

Contributors

christophwitzko avatar dependabot[bot] avatar garryyao avatar gregberge avatar k88hudson avatar mikaelbr avatar monoblaine avatar paul-haine avatar paulwib avatar vvo avatar wilzbach avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mversion's Issues

mversion with custom cwd from command line scripts

Hi there,
I need a tool to bump a few packages in bulk so I figured I'd give mversion a try.
My command line script uses this module

var exec = require('child_process').exec;

module.exports = function (filePath, options) {
  var script = [
    process.cwd() + '/node_modules/.bin/mversion',
    options.version,
    '-n' // no prefix (omit the v from vNUMBER)
  ];

  options.commitMessage && script.push('-m "' + options.commitMessage + '"');
  options.overrideTag && script.push('-t');

  exec(script.join(' '), { cwd: filePath });
};

But it feels very wrong to me.
Ideally I would like to use the mversion module but I don't know how to set the cwd (if that's even possible). Any suggestion?

GHSL-2020-110

Hello,

I am a member of the GitHub Security Lab (https://securitylab.github.com).

I've attempted to reach a maintainer for this project to report a potential security issue but have been unable to verify the report was received. Please could a project maintainer could contact us at [email protected], using reference GHSL-2020-110?

Thank you,
Kevin Backhouse
GitHub Security Lab

Remote Command Execution in mversion

โœ๏ธ Description

Affected versions allow an attacker to execute remote commands. The issue occurs because tagName user input is formatted inside the exec function in #L64 is executed without any checks.

๐Ÿ•ต๏ธโ€โ™‚๏ธ Proof of Concept

// poc.js
// node poc.js

var mversion = require('mversion');

mversion.update({
       version: "major",
       commitMessage: "testing",
       tagName: "; touch hbkhan",
 })

๐Ÿ’ฅ Impact

This issue may lead to remote code execution if a client of the library calls the vulnerable method with untrusted input.

Not working if <newversion> argument contains '-h' in it

If the argument contains a -h anywhere in it, the mversion help text will display instead of the command running as expected

Example: We have a convention of using our feature branch names as part of our package versions for testing. So today, I tried to run

mversion 1.20.1-common-request-host.1 -m

This gets interpreted as mversion -h and prints the help text.

Show 'next' version number.

Hi!
It would be nice if you could only get the next version number, without updating package files.
Maybe something like:

mversion [ <newversion> | major | minor | patch | prerelease ] [--show -s]

Thanks for your work. Excellent project :)

Feature Request: `mversion -a`

I just wanted to try out annotated tags so I can start taking advantage of GitHub releases, but having a single line message is a bit difficult to write. Any chance of adding a -a flag that'll set it to annotate and then prompt for the tag message?

Edit: Decided to try it out, but it doesn't seem to tie in with GitHub releases which is a bummer since I kind of like it. I might continue using GitHub releases, but have you found whether it can integrate with tags? It's definitely cleaner and simpler than using a change log.

Git push

npm bump not only creates a tag, but also pushes the repo to it's origin. Is that something you would want to add?

jquery plugin support

I've been using mversion with great pleasure. Unfortunately mversion does not work for projects which are registered as jquery plugins.

For a jquery plugin named X, the plugin file is X.jquery.json.

To support this, mversion should search for all files matching *.jquery.json in the current directory, and update their version numbers too (together with package.json, bower.json, etc)

Adding wildcard support to mversion should be relatively straightforward by using the node_module glob. I could submit a pull-request implementing this feature if necessary/preferred.

mversion -m failing on Windows7

Hello! mversion throw next error when I'm using -m on Windows 7.

mversion patch -m
Failed updating:
Command failed: C:\Windows\system32\cmd.exe /s /c "git tag -a v0.0.2 -m "v0.0.2""
fatal: tag 'v0.0.2' already exists

For some reasons command C:\Windows\system32\cmd.exe /s /c "git tag -a v0.0.2 -m "v0.0.2" aren't working for me.
I'm using bash-enabled terminal so if I switch from C:\Windows\system32\cmd.exe /s /c "git tag -a v0.0.2 -m "v0.0.2" to git tag -a v0.0.2 -m "v0.0.2" then it will fix this issue. Is there an ability to do it? Maybe with help of .mversionrc file ?

%s not available in script commands?

I'm using mversion in my projects and I like it! My website projects I want to have the version in the index.html file as a meta-tag. Using precommit and postcommit scripts I thought I could use sed to search and replace a special string.

{
    "scripts": {
        "precommit": "sed -e s/\{mversion\}/%s/g app/index.html",
        "postcommit": "git push --tags && sed -e s/%s/\{mversion\}/g app/index.html"
    }
}
<meta name="version" content="{mversion}" />

The problem I have is that %s is not available in the scripts, or I don't know how to use it. Could you implement this or update the documentation?
If I move the commands to its own file, maybe you can append the %s as an argument of the shell script.

Annotated tags

Seems to be this package only creates a lightweight tag, but no annotated one. Is there a way to get annotated tags, i. e with an option of -a?

Execute precommit scripts right before the actual commit

If precommit scripts were executed right before the commit (inside the update method, after the clean repo check) we could add files to the commit being created to do things like:

  • Generate an automatic changelog file
  • Generate API docs
  • Add distributable scripts only in release commits (like jQuery does)

dependencies update

I ran an npm audit on selenium-standalone which is a tool that uses mversion in dev environment only.
Please consider updating the dependencies:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ High          โ”‚ Regular Expression Denial of Service                         โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Package       โ”‚ minimatch                                                    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Patched in    โ”‚ >=3.0.2                                                      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Dependency of โ”‚ mversion [dev]                                               โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Path          โ”‚ mversion > minimatch                                         โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ More info     โ”‚ https://nodesecurity.io/advisories/118                       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ High          โ”‚ Regular Expression Denial of Service                         โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Package       โ”‚ minimatch                                                    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Patched in    โ”‚ >=3.0.2                                                      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Dependency of โ”‚ mversion [dev]                                               โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Path          โ”‚ mversion > vinyl-fs > glob-stream > glob > minimatch         โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ More info     โ”‚ https://nodesecurity.io/advisories/118                       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ High          โ”‚ Regular Expression Denial of Service                         โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Package       โ”‚ minimatch                                                    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Patched in    โ”‚ >=3.0.2                                                      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Dependency of โ”‚ mversion [dev]                                               โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Path          โ”‚ mversion > vinyl-fs > glob-stream > minimatch                โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ More info     โ”‚ https://nodesecurity.io/advisories/118                       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ High          โ”‚ Regular Expression Denial of Service                         โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Package       โ”‚ minimatch                                                    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Patched in    โ”‚ >=3.0.2                                                      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Dependency of โ”‚ mversion [dev]                                               โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Path          โ”‚ mversion > vinyl-fs > glob-watcher > gaze > globule > glob > โ”‚
โ”‚               โ”‚ minimatch                                                    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ More info     โ”‚ https://nodesecurity.io/advisories/118                       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ High          โ”‚ Regular Expression Denial of Service                         โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Package       โ”‚ minimatch                                                    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Patched in    โ”‚ >=3.0.2                                                      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Dependency of โ”‚ mversion [dev]                                               โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Path          โ”‚ mversion > vinyl-fs > glob-watcher > gaze > globule >        โ”‚
โ”‚               โ”‚ minimatch                                                    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ More info     โ”‚ https://nodesecurity.io/advisories/118                       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Undo changes when pre-commit hook fails

Just an idea, but I started using pre-commit and now when it fails when running mversion -m I'd expect it the changes to rollback. In fact, if anything in the process fails I feel like it should undo the changes.

Add postcommit and precommit scripts

You would only want to run git push or git push --tags if you have the -m or -message flag. So we need scripts that are exclusively for this.

Should post- and pre-update also be for commit? I feel this makes most sense.

Handle explicit version that matches current version

When I start a new project I often set the version to 0.1.0 (which you could argue is stupid, and probably comes from my Java background starting projects at 0.1.0-SNAPSHOT. Fair 'nuff). I expected to be able to run mversion 0.1.0 and just have the tool go through the normal tagging steps even though the version wasn't changing. Instead I got:

Failed updating:
Command failed:

which was puzzling. It took diving through the code to find that the invocation of git add was returning 1 since there were no modifications.

The simplest way to overcome this would be to stick a --allow-empty in there...but upon reflection, I think a better option would be

A) Enhance logging in such a way that I can tell I'm being stupid or...
B) Detect this condition and skip the commit step or...
C) ?

In the meantime I think I'll survive.

Support sonarqube properties files

We use sonarqube to monitor our code quality, which means that each project has a sonar-project.properties file with the version specified in it. It would be great to be able to use mversion to bump this as well. If this is desirable I am happy to work on it and submit a PR, let me know.

no output from preupdate script

Here is my preupdate script scripts/foo.sh :

#!/usr/bin/env bash
echo "Hello from foo"
touch foo
exit 1

Here is my .mversionrc :

{
    "scripts": {
        "preupdate": "./scripts/foo.sh",
    }
}

Then mversion patch :

Error running preupdate: Command failed: ./scripts/foo.sh
Stopping execution

No output from my script (echo "Hello from foo"). However, the foo file got created, meaning my script did execute.

Shouldn't I see my script output ? Or what am I doing wrong ?

Set settings in .mversionrc files

Feature request!

I think it would be great if mversion looked at it's current directory and up for any .mversionrc files and allowed you to put settings there.

no precommit nor postcommit execution

Here is my .mversionrc :

{
    "scripts": {
        "preupdate": "echo preupdate",
        "precommit": "echo precommit",
        "postcommit": "echo postcommit",
        "postupdate": "echo postupdate"
    }
}

Then mversion patch :

Output running preupdate: preupdate

Updated to new version: v0.0.6
Updated package.json
Updated bower.json
Output running postupdate: postupdate

no trace of commit hooks execution... (mversion v1.10.1)

mversion patch --tag -m '%s' fails

$ mversion patch --tag -m '%s' gives me this:

Failed updating:
Command failed: fatal: /Users/mohsen/Google: '/Users/mohsen/Google' is outside repository

TypeError on fresh install

This could potentially be caused by a third party API, or perhaps an incorrect use of a third party API.

$ node -v
v0.12.2

$ mversion -h
node_modules/mversion/node_modules/cli-usage/node_modules/marked/lib/marked.js:1226
    throw e;
          ^
TypeError: undefined is not a function
Please report this to https://github.com/chjj/marked.
    at InlineLexer.output (node_modules/mversion/node_modules/cli-usage/node_modules/marked/lib/marked.js:685:28)
    at Parser.tok (node_modules/mversion/node_modules/cli-usage/node_modules/marked/lib/marked.js:985:21)
    at Parser.parse (node_modules/mversion/node_modules/cli-usage/node_modules/marked/lib/marked.js:935:17)
    at Function.Parser.parse (/node_modules/mversion/node_modules/cli-usage/node_modules/marked/lib/marked.js:922:17)
    at marked (node_modules/mversion/node_modules/cli-usage/node_modules/marked/lib/marked.js:1218:19)
    at fromFile (node_modules/mversion/node_modules/cli-usage/index.js:45:10)
    at get (node_modules/mversion/node_modules/cli-usage/index.js:30:12)
    at module.exports (node_modules/mversion/node_modules/cli-usage/index.js:22:15)
    at Object.<anonymous> (node_modules/mversion/bin/cli.js:9:1)
    at Module._compile (module.js:460:26)

Paramenter `-m` doesn't create a tag

Hi there, thanks for creating mversion. :-)

The parameter -m does create a commit but it doesn't "release" a tag.

Not sure if I'm missing something or maybe I misunderstood what you meant by "tag".

Can't seem to run a build task in the right hook

Hi,

I'm trying to execute a gulp task that will compile some CSS files for me. One thing it does is insert a banner into the built file with a reference to the current version in the package.json. I'd like to run this task just after mversion has updated package.json but before it creates the tag and commits it.

It seems wherever I put the gulp task in the hooks it always creates the tag and commits it before the gulp task runs.

Updated to new version: v0.7.0
Updated package.json
Updated bower.json
<-- I want to run my task here
Commited to git and created tag 0.7.0

I've installed latest master because I thought #26 might solve it for me, but no joy. Any suggestions?

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.