{"action":"closed","issue":{"url":"https://api.github.com/repos/firebase/firebase-tools/issues/734","repository_url":"https://api.github.com/repos/firebase/firebase-tools","labels_url":"https://api.github.com/repos/firebase/firebase-tools/issues/734/labels{/name}","comments_url":"https://api.github.com/repos/firebase/firebase-tools/issues/734/comments","events_url":"https://api.github.com/repos/firebase/firebase-tools/issues/734/events","html_url":"https://github.com/firebase/firebase-tools/issues/734","id":312947448,"number":734,"title":"Config option 'ignore' changed from 3.18.1 to 3.18.2","user":{"login":"a-xin","id":1154924,"avatar_url":"https://avatars0.githubusercontent.com/u/1154924?v=4","gravatar_id":"","url":"https://api.github.com/users/a-xin","html_url":"https://github.com/a-xin","followers_url":"https://api.github.com/users/a-xin/followers","following_url":"https://api.github.com/users/a-xin/following{/other_user}","gists_url":"https://api.github.com/users/a-xin/gists{/gist_id}","starred_url":"https://api.github.com/users/a-xin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/a-xin/subscriptions","organizations_url":"https://api.github.com/users/a-xin/orgs","repos_url":"https://api.github.com/users/a-xin/repos","events_url":"https://api.github.com/users/a-xin/events{/privacy}","received_events_url":"https://api.github.com/users/a-xin/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-04-10T14:25:54Z","updated_at":"2018-04-10T21:08:41Z","closed_at":"2018-04-10T21:08:41Z","author_association":"CONTRIBUTOR","body":"With 3.18.1, the following config was working fine and excluded `functions/.eslintrc`, `functions/node_modules`, ... from deployments:\r\n```\r\n\"functions\": {\r\n  \"ignore\": [\r\n    \"**/.*\",\r\n    \"**/node_modules/**\",\r\n    \"**/*.spec.js\"\r\n  ],\r\n  \"source\": \"functions\"\r\n},\r\n```\r\n\r\nUpdating to 3.18.2 and continuing to use above's config led to a massive increase in deployment size, mainly due to the sudden inclusion of `functions/node_modules` into the deployment zip.\r\nUpdating the config as follows excludes `node_modules`, `.gitignore` again, but files like `.eslintrc.js` get included into the deployment zip:\r\n```\r\n\"functions\": {\r\n  \"ignore\": [\r\n      \".*\",\r\n      \".gitignore\",\r\n      \"node_modules\"\r\n  ],\r\n  \"source\": \"functions\"\r\n},\r\n```\r\n\r\nAdding a spec to `fsAsync.spec.js` which tests the exclusion pattern `**/node_modules/**` fails the test, ie. it seems to confirm that the previous exclusion pattern is not supported anymore:\r\n```javascript\r\n  it('can ignore glob patterns', function() {\r\n    var expected = _\r\n      .chain(files)\r\n      .reject(function(file) {\r\n        return file.indexOf('node_modules') !== -1;\r\n      }).map(function(file) {\r\n        return path.join(baseDir, file);\r\n      }).value().sort();\r\n\r\n    var promise = fsAsync.readdirRecursive({\r\n      path: baseDir,\r\n      ignore: ['**/node_modules/**']\r\n    }).then(function(results) {\r\n      return _.map(results, function(result) { return result.name; }).sort();\r\n    });\r\n\r\n    return expect(promise).to.eventually.deep.equal(expected);\r\n  });\r\n```\r\n\r\nMy expectation would be that the supported patterns of `ignore` don't change in minor releases, and `**/node_modules/**` continues to work."}}
{"actor":{"display_login":"inlined"}}