{"action":"created","issue":{"url":"https://api.github.com/repos/gruntjs/grunt-contrib-compress/issues/141","labels_url":"https://api.github.com/repos/gruntjs/grunt-contrib-compress/issues/141/labels{/name}","comments_url":"https://api.github.com/repos/gruntjs/grunt-contrib-compress/issues/141/comments","events_url":"https://api.github.com/repos/gruntjs/grunt-contrib-compress/issues/141/events","html_url":"https://github.com/gruntjs/grunt-contrib-compress/issues/141","id":53255831,"number":141,"title":"Move to archiver > 0.11 broke recursive compression","user":{"login":"gavllew","id":1244978,"avatar_url":"https://avatars.githubusercontent.com/u/1244978?v=3","gravatar_id":"","url":"https://api.github.com/users/gavllew","html_url":"https://github.com/gavllew","followers_url":"https://api.github.com/users/gavllew/followers","following_url":"https://api.github.com/users/gavllew/following{/other_user}","gists_url":"https://api.github.com/users/gavllew/gists{/gist_id}","starred_url":"https://api.github.com/users/gavllew/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gavllew/subscriptions","organizations_url":"https://api.github.com/users/gavllew/orgs","repos_url":"https://api.github.com/users/gavllew/repos","events_url":"https://api.github.com/users/gavllew/events{/privacy}","received_events_url":"https://api.github.com/users/gavllew/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-01-02T14:43:25Z","updated_at":"2015-01-03T20:51:05Z","closed_at":null,"body":"With the new v0.13 release recursive directory compression seems to be broken, producing the following error:\r\n\r\n    Fatal error: Maximum call stack size exceeded\r\n\r\nI reproduced the error with the following basic project:\r\n\r\n*package.json*\r\n```javascript\r\n{\r\n  \"name\": \"test\",\r\n  \"version\": \"0.1.0\",\r\n  \"homepage\": \"\",\r\n  \"author\": {},\r\n  \"engines\": {\r\n    \"node\": \">= 0.10.26\"\r\n  },\r\n  \"devDependencies\": {},\r\n  \"dependencies\": {\r\n    \"grunt\": \"^0.4.5\",\r\n    \"grunt-contrib-compress\": \"^0.13.0\",\r\n    \"grunt-contrib-copy\": \"^0.7.0\",\r\n    \"grunt-contrib-watch\": \"^0.6.1\",\r\n    \"grunt-contrib-nodeunit\": \"^0.4.1\",\r\n    \"grunt-contrib-jshint\": \"^0.10.0\"\r\n  },\r\n  \"keywords\": []\r\n}\r\n```\r\n\r\n*Gruntfile.js*\r\n```javascript\r\nmodule.exports = function(grunt) {\r\n  // Project configuration.\r\n  grunt.initConfig({\r\n    compress: {\r\n      dist: {\r\n        options: {\r\n          archive: 'dist/test.zip',\r\n          mode: 'zip'\r\n        },\r\n        files: [\r\n          {\r\n            src: [\r\n              'node_modules/**'\r\n            ]\r\n          }\r\n        ]\r\n      }\r\n    }\r\n  });\r\n\r\n  // These plugins provide necessary tasks.\r\n  grunt.loadNpmTasks('grunt-contrib-nodeunit');\r\n  grunt.loadNpmTasks('grunt-contrib-jshint');\r\n  grunt.loadNpmTasks('grunt-contrib-watch');\r\n  grunt.loadNpmTasks('grunt-contrib-compress');\r\n\r\n  // Default task.\r\n  grunt.registerTask('default', ['compress']);\r\n};\r\n```\r\n\r\nRolling back to archiver v0.11 fixes the issue."},"comment":{"url":"https://api.github.com/repos/gruntjs/grunt-contrib-compress/issues/comments/68609121","html_url":"https://github.com/gruntjs/grunt-contrib-compress/issues/141#issuecomment-68609121","issue_url":"https://api.github.com/repos/gruntjs/grunt-contrib-compress/issues/141","id":68609121,"user":{"login":"ctalkington","id":209757,"avatar_url":"https://avatars.githubusercontent.com/u/209757?v=3","gravatar_id":"","url":"https://api.github.com/users/ctalkington","html_url":"https://github.com/ctalkington","followers_url":"https://api.github.com/users/ctalkington/followers","following_url":"https://api.github.com/users/ctalkington/following{/other_user}","gists_url":"https://api.github.com/users/ctalkington/gists{/gist_id}","starred_url":"https://api.github.com/users/ctalkington/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ctalkington/subscriptions","organizations_url":"https://api.github.com/users/ctalkington/orgs","repos_url":"https://api.github.com/users/ctalkington/repos","events_url":"https://api.github.com/users/ctalkington/events{/privacy}","received_events_url":"https://api.github.com/users/ctalkington/received_events","type":"User","site_admin":false},"created_at":"2015-01-03T20:51:05Z","updated_at":"2015-01-03T20:51:05Z","body":"this seems to come from the handling of stat process best i can tell. will need to make some tests to recreate via archiver. interesting if the stats from task are passed through then it works fine (this is something allowed in newer versions to reduce fs lookups)"}}