npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

gulp-git-release

v1.0.14

Published

Plugin for gulp to allow pre-releases and releases into git repository, as well publishing to npm

Readme

gulp-git-release

Do pre-releases and releases of gulp based projects into Git repository.

The files in the release repository is going to be tagged with either the release version or with the sha of the current source state if doing a pre-release. That is the flow of a release will be as follows:

  • The version is read from bower.json or package.json with preference for the first.
  • The distribution Git repository is cloned.
  • The content of the distribution repository is replaced with the files to be distributed.
  • The new distribution is committed and tagged. If it is a pre-release the tag will have the format "v<x.y.z>-build.<number>+sha.<source sha>", e.g., "v0.3.0-build.25+sha.f52cbe6". If it is a release the tag will only contain the version, e.g., "v0.3.0". The build number is read from the environment variable BUILD_NUMBER or set to beta otherwise. When doing a release the source repository will be tagged with the release version and the version specified in bower.json and package.json will be bumped.
  • A version.json file is created as part of the distribution files containing the same version tag as well as a .version.json in the root of the source project. The latter is useful for a continuous integration system, such as Jenkins, to do trigger deployment of the committed distribution files.
  • All changes are pushed back to the source and the distribution repositories. Credentials to allow this must be available to Git.

Usage

Pre-release

var release = require('gulp-git-release');

gulp.task('pre-release', function() {
    return gulp.src('target/dist/**/*')
        .pipe(release({
            prefix: 'target/dist',
            release: false,
            debug: false,
            repository: 'https://github.com/langecode/bower-module.git'
        }));
});

The given prefix will be removed before files are copied to the distribution repository.

Release

var release = require('gulp-git-release');

gulp.task('release', function() {
    return gulp.src('target/dist/**/*')
        .pipe(release({
            prefix: 'target/dist',
            release: true,
            debug: false,
            repository: 'https://github.com/langecode/bower-module.git'
        }));
});

Setting the release flag to true causes the plugin to tag the source repository and bump the patch version of the bower.json and package.json files in the source repository. If the repository contains additional package files that needs version bumping, these can be specified with the additionalPackageFiles option. Note that the version on additional package files will be based on the root package version.

If you do not want to bump the patch version, you can set the bumpVersion flag to false:

        .pipe(release({
            prefix: 'target/dist',
            release: true,
            debug: false,
            additionalPackageFiles: ['src/package.json'],
            repository: 'https://github.com/langecode/bower-module.git',
            bumpVersion: false
        }));

This is useful if your project calls the plugin more than once, e.g. because you are releasing both a Bower component and an application.

If bumpVersion is not specified, it will default to false for pre-releases and true for releases.

If debug is not specified, it will default to false for both pre-releases and for releases. By settings debug to true, stdout from git cmd calls will be printed to the console.

The plugin also support publishing to a npm registry when releasing a new version. Specify the npm.registry and whether to publish.

        .pipe(release({
            prefix: 'target/dist',
            release: true,
            additionalPackageFiles: ['src/package.json'],
            npm: {
                registry: 'https://registry.npmjs.org',
                publish: true
            },
            repository: 'https://github.com/user/bower-module.git',
        }));

If npm.registry is not specified, the local .npmrc configuration will be used instead.