grunt-upcoming
Write upcoming release info to a JSON file
Getting Started
This plugin requires Grunt ~0.4.5
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-upcoming --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt;
The "upcoming" task
Overview
In your project's Gruntfile, add a section named upcoming
to the data object passed into grunt.initConfig()
.
upcoming: default: files: src: 'package.json' dest: 'version%s-info.json''product%s-info.json' patch: files: src: 'package.json' dest: 'patch-info.json'
Configuration Options
default.files
Run the following from the command line:
$ grunt upcoming
For the example above, that command will generate two files:
- version-info.json
- product-info.json
The contents will simply be:
"name":"(package-name)" "version":"(version)"
The package-name and version will be what is currently in package.json (the src in the default config).
For example:
"name":"grunt-upcoming" "version":"0.1.0"
Now run this:
$ grunt upcoming:major
That will generate:
- version-major-info.json
- product-major-info.json
Because there was no config defined for major, the default was run by applying the major release argument. The files listed in the default section contain '%s'. That was replaced in the filename with '-major'.
The output will look something like this:
"name":"(package-name)" "version":"(version)" "upcoming": "release":"major" "version":"(next-major-version)"
For example:
"name":"grunt-upcoming" "version":"0.1.0" "upcoming": "release":"major" "version":"1.0.0"
(release).files
Valid releases are: major, minor, patch, premajor, preminor, prepatch, or prerelease.
If no section is defined in the config for a release, the default will be used. To define a section for a release, create one named after the release (patch, minor, major, etc.).
The example contains a configuration for patch.
upcoming: default: ... patch: files: src: 'package.json' dest: 'patch-info.json'
Run this at the command line:
$ grunt upcoming:patch
This will result in the patch-info.json file being created.
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
Version History
Version 0.2.2
- updated documentation
Version 0.2.1
- updated documentation for new config
Version 0.2.0
- implemented version 0.2.0 which requires a more standard configuration
- maintained backward compatibility and tests cases for deprecated version
Version 0.1.9
- refactored test cases
Version 0.1.8
- removed result file from repo
Version 0.1.7
- added local install of mocha, needed by travis-ci
Version 0.1.6
- added test cases
- added test coverage
- added integration with travis-ci and codecov.io
Version 0.1.5
- fixed repo url in package.json
Version 0.1.4
- updated description
Version 0.1.3
- cleaned up test folder
Version 0.1.2
- added badges to readme
- added .travis.yml
- renamed license file
- fixed license listing in package.json
Version 0.1.1
- if no config info will echo warning to console
Version 0.1.0
- initial release