tools/bump.coffee
This commit is contained in:
parent
1ad999e12e
commit
2e34e1da4c
@ -116,6 +116,8 @@ module.exports = (grunt) ->
|
|||||||
command: (channel='') -> "node tools/sign.js #{channel}"
|
command: (channel='') -> "node tools/sign.js #{channel}"
|
||||||
'copy-builds':
|
'copy-builds':
|
||||||
command: '<%= builds.map(file => `node tools/cp.js testbuilds/${file} builds/${file}`).join("&&") %>'
|
command: '<%= builds.map(file => `node tools/cp.js testbuilds/${file} builds/${file}`).join("&&") %>'
|
||||||
|
bump:
|
||||||
|
command: (channel='') -> "<%= BIN %>coffee tools/bump.coffee #{channel}"
|
||||||
markdown:
|
markdown:
|
||||||
command: 'node tools/markdown.js'
|
command: 'node tools/markdown.js'
|
||||||
commit:
|
commit:
|
||||||
@ -243,21 +245,16 @@ module.exports = (grunt) ->
|
|||||||
'shell:copy-builds'
|
'shell:copy-builds'
|
||||||
]
|
]
|
||||||
|
|
||||||
grunt.registerTask 'tag', 'Tag a new release', (version) ->
|
grunt.registerTask 'bump', 'Bump the version number and tag a new release', (level) ->
|
||||||
grunt.task.run [
|
grunt.task.run [
|
||||||
"setversion:#{version}"
|
"shell:bump:#{level}"
|
||||||
'updcl'
|
'update-version'
|
||||||
'full'
|
'full'
|
||||||
'shell:commit'
|
'shell:commit'
|
||||||
]
|
]
|
||||||
|
|
||||||
grunt.registerTask 'bump', 'Bump the version number and tag a new release', (level) ->
|
grunt.registerTask 'update-version', 'Re-read the version from version.json', ->
|
||||||
pkg = grunt.config 'pkg'
|
grunt.config 'pkg', loadPkg()
|
||||||
parts = pkg.meta.version.split '.'
|
|
||||||
parts[i] or= '0' for i in [0...level]
|
|
||||||
parts[level-1] = +parts[level-1] + 1
|
|
||||||
parts[i] = 0 for i in [level...parts.length]
|
|
||||||
grunt.task.run "tag:#{parts.join '.'}"
|
|
||||||
|
|
||||||
grunt.registerTask 'pushd', 'Change directory to the distribution worktree and check out gh-pages branch.', ->
|
grunt.registerTask 'pushd', 'Change directory to the distribution worktree and check out gh-pages branch.', ->
|
||||||
pkg = grunt.config 'pkg'
|
pkg = grunt.config 'pkg'
|
||||||
@ -312,40 +309,3 @@ module.exports = (grunt) ->
|
|||||||
grunt.registerTask 'captchas', [
|
grunt.registerTask 'captchas', [
|
||||||
'shell:captchas'
|
'shell:captchas'
|
||||||
]
|
]
|
||||||
|
|
||||||
grunt.registerTask 'setversion', 'Set the version number', (version) ->
|
|
||||||
data = grunt.file.readJSON 'version.json'
|
|
||||||
oldversion = data.version
|
|
||||||
data.version = version
|
|
||||||
data.date = new Date()
|
|
||||||
grunt.file.write 'version.json', JSON.stringify(data, null, 2) + '\n'
|
|
||||||
grunt.log.ok "Version updated from v#{oldversion} to v#{version}."
|
|
||||||
grunt.config 'pkg', loadPkg()
|
|
||||||
|
|
||||||
grunt.registerTask 'updcl', 'Update the changelog', ->
|
|
||||||
{meta, name} = grunt.config('pkg')
|
|
||||||
{version, oldVersions} = meta
|
|
||||||
|
|
||||||
branch = version.replace /\.\d+$/, ''
|
|
||||||
headerLevel = branch.replace(/(\.0)*$/, '').split('.').length
|
|
||||||
headerPrefix = new Array(headerLevel + 1).join '#'
|
|
||||||
separator = "#{headerPrefix} v#{branch}"
|
|
||||||
|
|
||||||
today = grunt.template.today 'yyyy-mm-dd'
|
|
||||||
filename = "/builds/#{name}-noupdate"
|
|
||||||
ffLink = "#{oldVersions}#{version}#{filename}.user.js"
|
|
||||||
crLink = "#{oldVersions}#{version}#{filename}.crx"
|
|
||||||
line = "**v#{version}** *(#{today})* - [[Firefox](#{ffLink} \"Firefox version\")] [[Chromium](#{crLink} \"Chromium version\")]"
|
|
||||||
|
|
||||||
changelog = grunt.file.read 'CHANGELOG.md'
|
|
||||||
|
|
||||||
breakPos = changelog.indexOf(separator)
|
|
||||||
throw new Error 'Separator not found.' if breakPos is -1
|
|
||||||
breakPos += separator.length
|
|
||||||
|
|
||||||
prevVersion = changelog[breakPos..].match(/\*\*v([\d\.]+)\*\*/)[1]
|
|
||||||
unless prevVersion.replace(/\.\d+$/, '') is branch
|
|
||||||
line += "\n- Based on v#{prevVersion}."
|
|
||||||
|
|
||||||
grunt.file.write 'CHANGELOG.md', "#{changelog[...breakPos]}\n\n#{line}#{changelog[breakPos..]}"
|
|
||||||
grunt.log.ok "Changelog updated for v#{version}."
|
|
||||||
|
|||||||
252
npm-shrinkwrap.json
generated
252
npm-shrinkwrap.json
generated
@ -193,6 +193,258 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"dateformat": {
|
||||||
|
"version": "1.0.12",
|
||||||
|
"resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
|
||||||
|
"dependencies": {
|
||||||
|
"get-stdin": {
|
||||||
|
"version": "4.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz"
|
||||||
|
},
|
||||||
|
"meow": {
|
||||||
|
"version": "3.7.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
|
||||||
|
"dependencies": {
|
||||||
|
"camelcase-keys": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
|
||||||
|
"dependencies": {
|
||||||
|
"camelcase": {
|
||||||
|
"version": "2.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"decamelize": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"
|
||||||
|
},
|
||||||
|
"loud-rejection": {
|
||||||
|
"version": "1.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.3.0.tgz",
|
||||||
|
"dependencies": {
|
||||||
|
"array-find-index": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.1.tgz"
|
||||||
|
},
|
||||||
|
"signal-exit": {
|
||||||
|
"version": "2.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-2.1.2.tgz"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"map-obj": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz"
|
||||||
|
},
|
||||||
|
"minimist": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"
|
||||||
|
},
|
||||||
|
"normalize-package-data": {
|
||||||
|
"version": "2.3.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz",
|
||||||
|
"dependencies": {
|
||||||
|
"hosted-git-info": {
|
||||||
|
"version": "2.1.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.4.tgz"
|
||||||
|
},
|
||||||
|
"is-builtin-module": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
|
||||||
|
"dependencies": {
|
||||||
|
"builtin-modules": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"semver": {
|
||||||
|
"version": "5.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/semver/-/semver-5.1.0.tgz"
|
||||||
|
},
|
||||||
|
"validate-npm-package-license": {
|
||||||
|
"version": "3.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
|
||||||
|
"dependencies": {
|
||||||
|
"spdx-correct": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
|
||||||
|
"dependencies": {
|
||||||
|
"spdx-license-ids": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.1.tgz"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"spdx-expression-parse": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.2.tgz",
|
||||||
|
"dependencies": {
|
||||||
|
"spdx-exceptions": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-1.0.4.tgz"
|
||||||
|
},
|
||||||
|
"spdx-license-ids": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.1.tgz"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"object-assign": {
|
||||||
|
"version": "4.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.0.1.tgz"
|
||||||
|
},
|
||||||
|
"read-pkg-up": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
|
||||||
|
"dependencies": {
|
||||||
|
"find-up": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
|
||||||
|
"dependencies": {
|
||||||
|
"path-exists": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz"
|
||||||
|
},
|
||||||
|
"pinkie-promise": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.0.tgz",
|
||||||
|
"dependencies": {
|
||||||
|
"pinkie": {
|
||||||
|
"version": "2.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"read-pkg": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
|
||||||
|
"dependencies": {
|
||||||
|
"load-json-file": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
|
||||||
|
"dependencies": {
|
||||||
|
"graceful-fs": {
|
||||||
|
"version": "4.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz"
|
||||||
|
},
|
||||||
|
"parse-json": {
|
||||||
|
"version": "2.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
|
||||||
|
"dependencies": {
|
||||||
|
"error-ex": {
|
||||||
|
"version": "1.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz",
|
||||||
|
"dependencies": {
|
||||||
|
"is-arrayish": {
|
||||||
|
"version": "0.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pify": {
|
||||||
|
"version": "2.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
|
||||||
|
},
|
||||||
|
"pinkie-promise": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.0.tgz",
|
||||||
|
"dependencies": {
|
||||||
|
"pinkie": {
|
||||||
|
"version": "2.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"strip-bom": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
|
||||||
|
"dependencies": {
|
||||||
|
"is-utf8": {
|
||||||
|
"version": "0.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"path-type": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
|
||||||
|
"dependencies": {
|
||||||
|
"graceful-fs": {
|
||||||
|
"version": "4.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz"
|
||||||
|
},
|
||||||
|
"pify": {
|
||||||
|
"version": "2.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
|
||||||
|
},
|
||||||
|
"pinkie-promise": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.0.tgz",
|
||||||
|
"dependencies": {
|
||||||
|
"pinkie": {
|
||||||
|
"version": "2.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"redent": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
|
||||||
|
"dependencies": {
|
||||||
|
"indent-string": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
|
||||||
|
"dependencies": {
|
||||||
|
"repeating": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.0.tgz",
|
||||||
|
"dependencies": {
|
||||||
|
"is-finite": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz",
|
||||||
|
"dependencies": {
|
||||||
|
"number-is-nan": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"strip-indent": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"trim-newlines": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"font-awesome": {
|
"font-awesome": {
|
||||||
"version": "4.5.0",
|
"version": "4.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.5.0.tgz"
|
"resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.5.0.tgz"
|
||||||
|
|||||||
@ -49,6 +49,7 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"coffee-script": "1.9.3",
|
"coffee-script": "1.9.3",
|
||||||
"crx": "^3.0.3",
|
"crx": "^3.0.3",
|
||||||
|
"dateformat": "^1.0.12",
|
||||||
"font-awesome": "4.5.0",
|
"font-awesome": "4.5.0",
|
||||||
"fs-extra": "^0.26.7",
|
"fs-extra": "^0.26.7",
|
||||||
"glob": "^7.0.3",
|
"glob": "^7.0.3",
|
||||||
|
|||||||
45
tools/bump.coffee
Normal file
45
tools/bump.coffee
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
fs = require 'fs'
|
||||||
|
dateFormat = require 'dateformat'
|
||||||
|
|
||||||
|
pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'))
|
||||||
|
v = JSON.parse(fs.readFileSync('version.json', 'utf8'))
|
||||||
|
level = +process.argv[2]
|
||||||
|
|
||||||
|
parts = v.version.split '.'
|
||||||
|
parts[i] or= '0' for i in [0...level]
|
||||||
|
parts[level-1] = +parts[level-1] + 1
|
||||||
|
parts[i] = 0 for i in [level...parts.length]
|
||||||
|
version = parts.join '.'
|
||||||
|
|
||||||
|
oldversion = v.version
|
||||||
|
v.version = version
|
||||||
|
v.date = new Date()
|
||||||
|
fs.writeFileSync 'version.json', JSON.stringify(v, null, 2) + '\n'
|
||||||
|
console.log "Version updated from v#{oldversion} to v#{version}."
|
||||||
|
|
||||||
|
{meta, name} = pkg
|
||||||
|
{oldVersions} = meta
|
||||||
|
|
||||||
|
branch = version.replace /\.\d+$/, ''
|
||||||
|
headerLevel = branch.replace(/(\.0)*$/, '').split('.').length
|
||||||
|
headerPrefix = new Array(headerLevel + 1).join '#'
|
||||||
|
separator = "#{headerPrefix} v#{branch}"
|
||||||
|
|
||||||
|
today = dateFormat v.date, 'yyyy-mm-dd'
|
||||||
|
filename = "/builds/#{name}-noupdate"
|
||||||
|
ffLink = "#{oldVersions}#{version}#{filename}.user.js"
|
||||||
|
crLink = "#{oldVersions}#{version}#{filename}.crx"
|
||||||
|
line = "**v#{version}** *(#{today})* - [[Firefox](#{ffLink} \"Firefox version\")] [[Chromium](#{crLink} \"Chromium version\")]"
|
||||||
|
|
||||||
|
changelog = fs.readFileSync 'CHANGELOG.md', 'utf8'
|
||||||
|
|
||||||
|
breakPos = changelog.indexOf(separator)
|
||||||
|
throw new Error 'Separator not found.' if breakPos is -1
|
||||||
|
breakPos += separator.length
|
||||||
|
|
||||||
|
prevVersion = changelog[breakPos..].match(/\*\*v([\d\.]+)\*\*/)[1]
|
||||||
|
unless prevVersion.replace(/\.\d+$/, '') is branch
|
||||||
|
line += "\n- Based on v#{prevVersion}."
|
||||||
|
|
||||||
|
fs.writeFileSync 'CHANGELOG.md', "#{changelog[...breakPos]}\n\n#{line}#{changelog[breakPos..]}"
|
||||||
|
console.log "Changelog updated for v#{version}."
|
||||||
Loading…
x
Reference in New Issue
Block a user