From f21f9c341481ece2d90d50fb07989eba79573f91 Mon Sep 17 00:00:00 2001 From: Simone Conti Date: Fri, 20 Mar 2015 15:04:50 +0100 Subject: [PATCH 01/14] [IMPROVEMENT] Solve issue #30 (hash for big files was not correctly calculated) The `fs` library is already included and it looks like it works better than `grunt.file`. With files bigger than few kilobytes the hash is calculated in the right way. It looks like `grunt.file.read` either does not read the file correctly or not in full. This change solves Issue #30 --- tasks/rev.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/rev.js b/tasks/rev.js index f6f77c2..cf7d8f7 100644 --- a/tasks/rev.js +++ b/tasks/rev.js @@ -17,7 +17,7 @@ module.exports = function(grunt) { function md5(filepath, algorithm, encoding, fileEncoding) { var hash = crypto.createHash(algorithm); grunt.log.verbose.write('Hashing ' + filepath + '...'); - hash.update(grunt.file.read(filepath), fileEncoding); + hash.update(fs.readFileSync(filepath), fileEncoding); return hash.digest(encoding); } From 61d7ed9aae057ca955f6b19efd76d32479878cfe Mon Sep 17 00:00:00 2001 From: Simone Conti Date: Fri, 20 Mar 2015 15:19:32 +0100 Subject: [PATCH 02/14] [BUG] Syntax error: fileEncoding is an argument of fs.readFileSync Oops! Sorry... :-) --- tasks/rev.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/rev.js b/tasks/rev.js index cf7d8f7..f8a0fb6 100644 --- a/tasks/rev.js +++ b/tasks/rev.js @@ -17,7 +17,7 @@ module.exports = function(grunt) { function md5(filepath, algorithm, encoding, fileEncoding) { var hash = crypto.createHash(algorithm); grunt.log.verbose.write('Hashing ' + filepath + '...'); - hash.update(fs.readFileSync(filepath), fileEncoding); + hash.update(fs.readFileSync(filepath, fileEncoding)); return hash.digest(encoding); } From 04d56df2e660a40dba258eef7212538dc2745159 Mon Sep 17 00:00:00 2001 From: Simone Conti Date: Fri, 20 Mar 2015 16:10:53 +0100 Subject: [PATCH 03/14] [SETUP] Require Grunt >= 0.4.0 Signed-off-by: Simone Conti --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a33eb2d..49953f2 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "grunt-contrib-jshint": "0.1.1rc6", "grunt-contrib-clean": "0.4.0rc6", "grunt-contrib-nodeunit": "0.1.2rc6", - "grunt": "0.4.0rc6" + "grunt": ">=0.4.0" }, "keywords": [ "gruntplugin" From 568a608bfb2e011c9d8306e781f80c966c5a2879 Mon Sep 17 00:00:00 2001 From: Simone Conti Date: Fri, 20 Mar 2015 16:15:43 +0100 Subject: [PATCH 04/14] [IMPROVEMENT] Add support for file encoding option Default to UTF-8 Signed-off-by: Simone Conti --- tasks/rev.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tasks/rev.js b/tasks/rev.js index f8a0fb6..9a4d4b2 100644 --- a/tasks/rev.js +++ b/tasks/rev.js @@ -15,9 +15,11 @@ var fs = require('fs'), module.exports = function(grunt) { function md5(filepath, algorithm, encoding, fileEncoding) { - var hash = crypto.createHash(algorithm); + var hash = crypto.createHash(algorithm), + fsOptions = {encoding: fileEncoding}; + grunt.log.verbose.write('Hashing ' + filepath + '...'); - hash.update(fs.readFileSync(filepath, fileEncoding)); + hash.update(fs.readFileSync(filepath, fsOptions), fileEncoding)); return hash.digest(encoding); } From 86d9f3a7dd59ea00a16ae56e9cebb2a4dfcf3287 Mon Sep 17 00:00:00 2001 From: Simone Conti Date: Fri, 20 Mar 2015 16:26:39 +0100 Subject: [PATCH 05/14] [BUG] Forgotten ")" should be removed Signed-off-by: Simone Conti --- tasks/rev.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/rev.js b/tasks/rev.js index 9a4d4b2..a9cec8f 100644 --- a/tasks/rev.js +++ b/tasks/rev.js @@ -19,7 +19,7 @@ module.exports = function(grunt) { fsOptions = {encoding: fileEncoding}; grunt.log.verbose.write('Hashing ' + filepath + '...'); - hash.update(fs.readFileSync(filepath, fsOptions), fileEncoding)); + hash.update(fs.readFileSync(filepath, fsOptions), fileEncoding); return hash.digest(encoding); } From 04af16ff1b9558bc5efc3d260d53d39c63e3a928 Mon Sep 17 00:00:00 2001 From: Simone Conti Date: Fri, 20 Mar 2015 16:30:02 +0100 Subject: [PATCH 06/14] [UPDATE] Version bump to v0.1.1 - Updating to v0.1.1 This will permit npm to better track changes and let user download the latest version. Signed-off-by: Simone Conti --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 49953f2..d1bc62d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "grunt-rev", "description": "Static file asset revisioning through content hashing", - "version": "0.1.0", + "version": "0.1.1", "homepage": "https://github.com/cbas/grunt-rev", "author": { "name": "Sebastiaan Deckers", From 5afbba222e9cda40180352c736a0655653d66071 Mon Sep 17 00:00:00 2001 From: Simone Conti Date: Fri, 20 Mar 2015 17:58:21 +0100 Subject: [PATCH 07/14] [UPDATE] Let's use newer releases for dependencies Perhaps even not release candidate versions... Signed-off-by: Simone Conti --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index d1bc62d..ae391f4 100644 --- a/package.json +++ b/package.json @@ -29,10 +29,10 @@ "test": "grunt test" }, "devDependencies": { - "grunt-contrib-copy": "0.4.0", - "grunt-contrib-jshint": "0.1.1rc6", - "grunt-contrib-clean": "0.4.0rc6", - "grunt-contrib-nodeunit": "0.1.2rc6", + "grunt-contrib-copy": ">=0.8.0", + "grunt-contrib-jshint": ">=0.1.1", + "grunt-contrib-clean": ">=0.4.0", + "grunt-contrib-nodeunit": ">=0.1.2", "grunt": ">=0.4.0" }, "keywords": [ From 8d18cbd95a4a7a2028e3aff4718a56813560dd29 Mon Sep 17 00:00:00 2001 From: Simone Conti Date: Fri, 20 Mar 2015 18:53:59 +0100 Subject: [PATCH 08/14] [SETUP] We need at least node 0.9 Let's see if Travis CI like it a little bit more this way... Signed-off-by: Simone Conti --- .travis.yml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 60bbd48..3611af8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ language: node_js node_js: - - "0.8" + - "0.9" before_script: - npm install -g grunt-cli \ No newline at end of file diff --git a/package.json b/package.json index ae391f4..2c2cccd 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ ], "main": "Gruntfile.js", "engines": { - "node": ">= 0.8.0" + "node": ">= 0.9.0" }, "scripts": { "test": "grunt test" From 7a4a98f07d067d704a8cc3cd3d2aee31a57f9b44 Mon Sep 17 00:00:00 2001 From: Simone Conti Date: Fri, 20 Mar 2015 19:24:08 +0100 Subject: [PATCH 09/14] [SETUP] Force Travis CI to use npm version 2.0.0 npm version 2.0.0 is the first where the "caret bug" was removed: ^0.x.y is now functionally the same as ~0.x.y Signed-off-by: Simone Conti --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 3611af8..46b4ea1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,7 @@ language: node_js node_js: - "0.9" +npm: + - "2.0.0" before_script: - npm install -g grunt-cli \ No newline at end of file From 4cbdcc9ec59046c4437f35a94039eee323a72683 Mon Sep 17 00:00:00 2001 From: Simone Conti Date: Fri, 20 Mar 2015 19:44:07 +0100 Subject: [PATCH 10/14] [SETUP] Test against Node 0.8,0.9,0.10 with npm>2 Signed-off-by: Simone Conti --- .travis.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 46b4ea1..5b966b1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,8 @@ language: node_js node_js: + - "0.8" - "0.9" -npm: - - "2.0.0" + - "0.10" before_script: + - npm install -g npm@">=2.0.0" - npm install -g grunt-cli \ No newline at end of file From 693e46765a16aed998af5a98e8f4bf18f0a5ade9 Mon Sep 17 00:00:00 2001 From: Simone Conti Date: Fri, 20 Mar 2015 20:26:13 +0100 Subject: [PATCH 11/14] [SETUP] Test against Node 0.8,0.9,0.10 Update npm before script starts to avoid troubles with "^" in packages requirements. npm can be newer that node... and it actually should. Signed-off-by: Simone Conti --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 5b966b1..ffbd5eb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,5 +4,5 @@ node_js: - "0.9" - "0.10" before_script: - - npm install -g npm@">=2.0.0" + - npm update -q - npm install -g grunt-cli \ No newline at end of file From f4d6b39637d174f7ed38cf55688a382499db9e86 Mon Sep 17 00:00:00 2001 From: Simone Conti Date: Sat, 21 Mar 2015 00:09:14 +0100 Subject: [PATCH 12/14] [SETUP] grunt-cli is now installed by default on Travis CI Signed-off-by: Simone Conti --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ffbd5eb..1e690c2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,6 @@ node_js: - "0.8" - "0.9" - "0.10" + - npm-v2.0.0 before_script: - npm update -q - - npm install -g grunt-cli \ No newline at end of file From a302ec9a22b655f80c745b7f7546a9624e1cf23e Mon Sep 17 00:00:00 2001 From: Simone Conti Date: Sat, 21 Mar 2015 00:16:53 +0100 Subject: [PATCH 13/14] [SETUP] Dropping tests on node < 0.10 It also looks like grunt-cli installation is mandatory Signed-off-by: Simone Conti --- .travis.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1e690c2..9353a60 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,7 @@ language: node_js node_js: - - "0.8" - - "0.9" - "0.10" - - npm-v2.0.0 before_script: - npm update -q + - npm --version + - npm install -g grunt-cli \ No newline at end of file From 96b492e60b907de8815670175af590741b840cc0 Mon Sep 17 00:00:00 2001 From: Simone Conti Date: Sat, 21 Mar 2015 00:28:56 +0100 Subject: [PATCH 14/14] [SETUP] Changes for dropping tests on node < 0.10 We are dropping tests on node < 0.10.0 We are alos using updated dependencies We should be modern, right?! Signed-off-by: Simone Conti --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 2c2cccd..fbf77a8 100644 --- a/package.json +++ b/package.json @@ -23,16 +23,16 @@ ], "main": "Gruntfile.js", "engines": { - "node": ">= 0.9.0" + "node": ">= 0.10.0" }, "scripts": { "test": "grunt test" }, "devDependencies": { "grunt-contrib-copy": ">=0.8.0", - "grunt-contrib-jshint": ">=0.1.1", - "grunt-contrib-clean": ">=0.4.0", - "grunt-contrib-nodeunit": ">=0.1.2", + "grunt-contrib-jshint": ">=0.11.1", + "grunt-contrib-clean": ">=0.6.0", + "grunt-contrib-nodeunit": ">=0.4.1", "grunt": ">=0.4.0" }, "keywords": [