diff --git a/lib/node-labels.js b/lib/node-labels.js index ec0305e1..3f7e2dfb 100644 --- a/lib/node-labels.js +++ b/lib/node-labels.js @@ -4,6 +4,10 @@ const subSystemLabelsMap = { // don't want to label it a c++ update when we're "only" bumping the Node.js version 'c++': /^src\/(?!node_version\.h)/, + // meta is a very specific label for things that are policy and or meta-info related + 'meta': /^([A-Z]+$|CODE_OF_CONDUCT|ROADMAP|WORKING_GROUPS|GOVERNANCE|CHANGELOG|\.mail|\.git.+)/, + // things that edit top-level .md files are always a doc change + 'doc': /^\w+\.md$/, // libuv needs an explicit mapping, as the ordinary /deps/ mapping below would // end up as libuv changes labeled with "uv" (which is a non-existing label) 'libuv': /^deps\/uv\//, diff --git a/test/node-labels.test.js b/test/node-labels.test.js index 5b220265..792e011c 100644 --- a/test/node-labels.test.js +++ b/test/node-labels.test.js @@ -147,3 +147,60 @@ tap.test('label: "lib / src" when more than 5 sub-systems has been changed', (t) t.end() }) + +tap.test('label: "meta" when meta-info files have changed', (t) => { + // e.g. LICENSE, AUTHORS, some ./*.md files + const labels = nodeLabels.resolveLabels([ + '.gitattributes', + '.gitignore', + '.mailmap', + 'AUTHORS', + 'LICENSE', + 'CHANGELOG.md', + 'CODE_OF_CONDUCT.md', + 'GOVERNANCE.md', + 'ROADMAP.md', + 'WORKING_GROUPS.md' + ]) + + t.same(labels, ['meta']) + + t.end() +}) + +tap.test('label: not "meta" when other top-level have been changed', (t) => { + const labels = nodeLabels.resolveLabels([ + 'BUILDING.md', + 'README.md', + 'COLLABORATOR_GUIDE.md', + 'CONTRIBUTING.md', + 'configure' + ]) + + t.same(labels.indexOf('meta'), -1) + + t.end() +}) + +tap.test('label: "doc" when top-level .md files have changed', (t) => { + const labels = nodeLabels.resolveLabels([ + 'BUILDING.md', + 'README.md' + ]) + + t.same(labels, ['doc']) + + t.end() +}) + +tap.test('label: not "doc" when other top-level files have been changed', (t) => { + const labels = nodeLabels.resolveLabels([ + 'LICENSE', + 'configure', + '.mailmap' + ]) + + t.same(labels.indexOf('doc'), -1) + + t.end() +})