grunt-upcoming
v0.2.2
Published
Write upcoming release info to a JSON file
Downloads
8
Maintainers
Readme
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.loadNpmTasks('grunt-upcoming');
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