{"id":14982168,"url":"https://github.com/nfantone/gulp-release","last_synced_at":"2025-08-02T07:10:01.500Z","repository":{"id":4671624,"uuid":"39351675","full_name":"nfantone/gulp-release","owner":"nfantone","description":"Enables support for git-flow style releases via gulp","archived":false,"fork":false,"pushed_at":"2025-06-14T11:12:48.000Z","size":1771,"stargazers_count":8,"open_issues_count":53,"forks_count":3,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2025-06-28T01:19:45.605Z","etag":null,"topics":["git-flow","gulp","gulpjs","release"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nfantone.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-07-19T22:46:23.000Z","updated_at":"2023-06-13T12:30:15.000Z","dependencies_parsed_at":"2024-10-11T23:41:25.128Z","dependency_job_id":"7b42dc99-83e8-4280-8bfa-57bd3163cea9","html_url":"https://github.com/nfantone/gulp-release","commit_stats":{"total_commits":117,"total_committers":5,"mean_commits":23.4,"dds":0.5384615384615384,"last_synced_commit":"03a9fb1455b7b66f3a2b05bb5d3c7222eed3b699"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/nfantone/gulp-release","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfantone%2Fgulp-release","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfantone%2Fgulp-release/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfantone%2Fgulp-release/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfantone%2Fgulp-release/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nfantone","download_url":"https://codeload.github.com/nfantone/gulp-release/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfantone%2Fgulp-release/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268015562,"owners_count":24181647,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-31T02:00:08.723Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["git-flow","gulp","gulpjs","release"],"created_at":"2024-09-24T14:04:54.250Z","updated_at":"2025-08-02T07:10:01.465Z","avatar_url":"https://github.com/nfantone.png","language":"JavaScript","readme":"# \u003cimg src=\"https://www.dropbox.com/s/tbm0ulwypyfcppi/gulp-gitflow.png?raw=1\" width=\"80\" height=\"80\"\u003e gulp-release\n\n[![Greenkeeper badge](https://badges.greenkeeper.io/nfantone/gulp-release.svg)](https://greenkeeper.io/) [![Build Status](https://travis-ci.org/nfantone/gulp-release.svg?branch=develop)](https://travis-ci.org/nfantone/gulp-release) [![js-semistandard-style](https://img.shields.io/badge/code%20style-semistandard-brightgreen.svg?style=flat-square)](https://github.com/Flet/semistandard) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)\n\nA [GulpJS](https://github.com/gulpjs) plugin that enables support for git-flow\nstyle releases. It requires the\n[gitflow command line tool](https://github.com/petervanderdoes/gitflow-avh) to\nbe installed on your system.\n\n## Gitflow\n\nA proposed workflow revolving around the use of git as a central tool. Defines a\nbranching model to follow using best practices and convenience directives.\n\n* See the\n  [original concept](http://nvie.com/posts/a-successful-git-branching-model/) at\n  nvie.com.\n* Read the\n  [derivations](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow)\n  forged by the people at Atlassian.\n\n## Installation\n\n`gulp-release` is a **GulpJS plugin**. It defines custom tasks that group common\nflow-related behaviors when releasing software using git.\n\n```sh\nnpm i --save-dev gulp-release\n```\n\n### Requirements\n\n* gitflow `^1.9.0`\n* gulp `~3.9`\n* node `^8.0.0`\n* npm `^5.0.0`\n\n```sh\n# Add node repositories\ncurl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -\n\n# Install dependencies\nsudo apt-get install git-flow\nsudo apt-get install -y nodejs\nsudo npm i -g npm\nsudo npm i -g gulp\n```\n\n## Usage\n\n### Simple\n\nIn your `gulpfile.js` declare:\n\n```js\n'use strict';\nconst gulp = require('gulp');\nconst release = require('gulp-release');\n\nrelease.register(gulp);\n```\n\nThis will register tasks on your `gulp` instance. After that, you'll be able to\ncall (or depend upon) all the tasks described below, such as:\n\n```sh\n$ gulp release\n```\n\n### Advanced\n\nYou may pass in an `options` configuration object to the `register` method to\noverride some or all of the default settings.\n\n```js\n'use strict';\nconst gulp = require('gulp');\nconst release = require('gulp-release');\n\nrelease.register(gulp, { packages: ['package.json'] });\n```\n\nHere, the `packages` property expects an ordered array of _globs_ that match\n`json` files containing version information (i.e: `package.json`, `bower.json`,\n`component.json`). All version files will be updated on a release, but version\nnumber will be read _only_ from the first one.\n\n\u003e Read next section for a complete set of available options.\n\n## API\n\n### `register(gulpInst[, options])`\n\nDeclares tasks on the `gulpInst` gulp instance. `options` is an optional object\nthat can be defined to override the following sensible defaults:\n\n```js\n {\n     tasks: {\n        // Name of the main task (a.k.a, `gulp release`)\n       release: 'release'\n     },\n     messages: {\n        // Commmit message on version bumping\n       bump: 'Bump release version',\n\n       // Commit message on setting next \"-dev\" version on `develop`\n       next: 'Set next development version'\n    },\n\n    // Supports glob syntax\n    packages: ['package.json'],\n\n    // Suffix added on development versions (ie.: on `develop` branch)\n    devSuffix: '-dev',\n\n    // Path to a custom codenames file. See https://github.com/scriptwerx/gulp-codename/blob/master/codenames.json\n    codenames: 'my-codenames.json'\n};\n```\n\nThis parameters permits you to configure main task name, commit messages and\n`.json` files containing a `.version` attribute that will be bumped on a new\nrelease.\n\n## Tasks\n\n### `release`\n\nPerforms a full, automatic project release. Uses `git flow release` internally.\nName is configurable.\n\n\u003e It's required that your version numbering follows [semver](http://semver.org/)\n\u003e specifications.\n\n```sh\ngulp release [-v --version VERSION] [-t --type TYPE] [-m CODENAME] [-c --codenames PATH] [-p --push]\n```\n\nThe repository you invoke this task on, must be `git flow` enabled. Run `git\nflow init` if you haven't already, before running `gulp release`. Otherwise, the\ntask will fail.\n\n* `-v` or `--version` can be used to indicate a specific **next** version (such\n  as `3.2.2-beta`). If unspecified, the version from your first configured\n  package file (ie., `package.json`) will be used.\n* `-t` or `--type` can be used to indicate types of version increment (_MAJOR_,\n  _MINOR_ or _PATCH_). Next release version defaults to _PATCH_ increment.\n* If your current version ends with a suffix, next default version will be that\n  same number without the suffix (`0.0.2-dev` -\u003e `0.0.2`).\n* `-m` provides a human readable \"codename\" for the release. One will be\n  autogenerated if not provided.\n* `-c` or `--codenames` provides a path to a\n  [custom codenames JSON file](https://github.com/scriptwerx/gulp-codename#custom-options).\n  This takes precedence over the `.register()` config option if both are set.\n* `-p` or `--push` indicate whether to push results (branches and tags) to\n  `origin` or not after finishing the release process. Defaults to `false`.\n\nThis recipe will perform the following actions, sequentially (default option\nvalues are assumed):\n\n1. Invoke `git flow release start -F \u003cversion\u003e`. Where `\u003cversion\u003e` is either set\n   from a command line argument or read from a package file.\n2. Bump the version on all package files and\n   [generate a codename](https://www.npmjs.com/package/gulp-codename) for the\n   release if one was not already provided with `-m`.\n3. Commit changes from last step to `develop` using `\"Bump release version\"` as\n   message.\n4. Invoke `git flow release finish -m \u003ccodename\u003e \u003cversion\u003e`.\n5. Bump the version on all packages files to _next development iteration_ using\n   a `-dev` suffix (like `1.0.1-dev`).\n6. Commit changes from last step to `develop` using `\"Set next development\n   version\"` as message.\n7. If the `-p` (or `--push`) flag was set, push all tags and local `develop` and\n   `master` branches to `origin`.\n\n\u003e See the\n\u003e [git flow release wiki](https://github.com/petervanderdoes/gitflow-avh/wiki/Reference:-git-flow-release#reference----git-flow-release)\n\u003e for details on what's happening under the hood when calling `git flow release\n\u003e start|finish`.\n\n## License\n\nMIT\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnfantone%2Fgulp-release","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnfantone%2Fgulp-release","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnfantone%2Fgulp-release/lists"}