# gulp-tag-version

> Tag git repository with current package version

Latest version **1.3.1** (published 2017-12-25) · BSD-2-Clause license · 0 weekly downloads

## Install

```sh
npm install gulp-tag-version
pnpm add gulp-tag-version
yarn add gulp-tag-version
bun add gulp-tag-version
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.3.1 |
| Published | 2017-12-25 |
| First published | 2014-04-03 |
| Weekly downloads | 0 |
| License | BSD-2-Clause |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 4 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 55 |
| Author | Cezar "ikari" Pokorski |
| Maintainers | ikari |
| Keywords | gulpplugin, git, package.json |

## Links

- npm: https://www.npmjs.com/package/gulp-tag-version
- Repository: https://github.com/ikari-pl/gulp-tag-version
- Homepage: https://github.com/ikari-pl/gulp-tag-version#readme
- Issues: https://github.com/ikari-pl/gulp-tag-version/issues
- npm.io page: https://npm.io/package/gulp-tag-version

## Dependencies (4)

- [gulp-git](https://npm.io/package/gulp-git.md) ^2.4.2
- [fancy-log](https://npm.io/package/fancy-log.md) ~1.3.2
- [map-stream](https://npm.io/package/map-stream.md) ~0.1.0
- [ansi-colors](https://npm.io/package/ansi-colors.md) ~1.0.1

## Alternatives

- [@mapbox/jsonlint-lines-primitives](https://npm.io/package/@mapbox/jsonlint-lines-primitives.md) — 5.3M weekly downloads
- [reftools](https://npm.io/package/reftools.md) — 3.5M weekly downloads
- [@hey-api/openapi-ts](https://npm.io/package/@hey-api/openapi-ts.md) — 3.5M weekly downloads
- [@mapbox/geojson-rewind](https://npm.io/package/@mapbox/geojson-rewind.md) — 2.4M weekly downloads
- [turbo-stream](https://npm.io/package/turbo-stream.md) — 1.7M weekly downloads

## Recent versions

- 1.3.1 (latest) — 2017-12-25
- 1.3.0 — 2015-07-16
- 1.2.1 — 2014-11-27
- 1.1.0 — 2014-09-10
- 1.0.2 — 2014-04-09
- 1.0.1 — 2014-04-09
- 0.1.0 — 2014-04-03

## README

gulp-tag-version
================

[![npm](https://img.shields.io/npm/v/gulp-tag-version.svg?maxAge=2592000&style=flat-square)]()
[![npm](https://img.shields.io/npm/dt/gulp-tag-version.svg?maxAge=2592000&style=flat-square)]()
[![npm](https://img.shields.io/npm/dm/gulp-tag-version.svg?maxAge=2592000&style=flat-square)]()

Tag git repository with current package version (gulp plugin).

It will read the `version` attribute (by default, override with `key` option) from the JSON stream (probably your `package.json` or `bower.json`), prefixes it with `"v"` (override with `prefix` option) and _tags_ the repository (effectively issues the `git tag <tagname>` command) with such created tagname (e.g. `v1.2.3`).


Simple example gulpfile
-----------------------
```js
var gulp = require('gulp'),
    tagVersion = require('gulp-tag-version');

// Assuming there's "version: 1.2.3" in package.json,
// tag the last commit as "v1.2.3"
gulp.task('tag', function() {
  return gulp.src(['./package.json']).pipe(tagVersion());
});
```


Advanced example gulpfile (with bumping and commiting)
------------------------------------------------------

```js

// dependencies
var gulp = require('gulp'),
    git = require('gulp-git'),
    bump = require('gulp-bump'),
    filter = require('gulp-filter'),
    tagVersion = require('gulp-tag-version');

/**
 * Bumping version number and tagging the repository with it.
 * Please read http://semver.org/
 *
 * You can use the commands
 *
 *     gulp patch     # makes v0.1.0 → v0.1.1
 *     gulp feature   # makes v0.1.1 → v0.2.0
 *     gulp release   # makes v0.2.1 → v1.0.0
 *
 * To bump the version numbers accordingly after you did a patch,
 * introduced a feature or made a backwards-incompatible release.
 */

function inc(importance) {
    // get all the files to bump version in
    return gulp.src(['./package.json', './bower.json'])
        // bump the version number in those files
        .pipe(bump({type: importance}))
        // save it back to filesystem
        .pipe(gulp.dest('./'))
        // commit the changed version number
        .pipe(git.commit('bumps package version'))

        // read only one file to get the version number
        .pipe(filter('package.json'))
        // **tag it in the repository**
        .pipe(tagVersion());
}

gulp.task('patch', function() { return inc('patch'); })
gulp.task('feature', function() { return inc('minor'); })
gulp.task('release', function() { return inc('major'); })
```

Other features/remarks
----------------------

* If you need any special tagging options to be passed down to `git.tag`, just add it to the `tagVersion` options. For example:
```js
gulp.task('bump_submodule', function(){
    return gulp.src('./bower.json',  { cwd: './dist' })
        .pipe(bump({type: 'patch'}))
        .pipe(gulp.dest('./',{ cwd: './dist' }))
        .pipe(git.commit('bumps package version',{cwd: './dist'}))
        .pipe(filter('bower.json'))
        .pipe(tagVersion({cwd: './dist'}));
});
```

* If you don't want the version number to be read from the input stream, use the `version` parameter:
```js*
return gulp.src ...
  ...
  .pipe(tagVersion({version: '1.2.3'}));
```

Thanks :beer:
--------

* to guys and gals from Fractal for [Gulp](http://gulpjs.com/) itself, obviously
* to Steve Lacy (http://slacy.me) for creating [`gulp-bump`](https://github.com/stevelacy/gulp-bump) and [`gulp-git`](https://github.com/stevelacy/gulp-git) used here
* The main file structure is based on `gulp-bump` a bit as well (this is my first plugin :))
* To [@pacemkr](https://github.com/pacemkr) for the first pull request I ever got (supporting empty prefix)
* To [@lapanoid](https://github.com/lapanoid) for passing `opts` down to `git.tag`
* To [@brianmhunt](https://github.com/brianmhunt) for suggesting the `version` parameter
* To [@adambuczynski](https://github.com/adambuczynski) for option to customize tag label
* To [@mjeanroy](https://github.com/mjeanroy) for a gulp-util obsoletion update

---
_Source: https://npm.io/package/gulp-tag-version · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
