qa-control 0.6.5 → 0.6.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/definition/definition.js +63 -1
- package/bin/qa-control-run.js +0 -2
- package/bin/qa-control.js +7 -1
- package/bin/qac-init.js +1 -1
- package/package.json +6 -6
|
@@ -13,7 +13,7 @@ function eslintrcToFlatConfig(rc) {
|
|
|
13
13
|
return flat;
|
|
14
14
|
}
|
|
15
15
|
var multilang = require('multilang');
|
|
16
|
-
var fs = require('fs-
|
|
16
|
+
var fs = require('fs-extra');
|
|
17
17
|
var Path = require('path');
|
|
18
18
|
var yaml = require('js-yaml');
|
|
19
19
|
|
|
@@ -678,6 +678,68 @@ module.exports = function(qaControl){
|
|
|
678
678
|
return warns;
|
|
679
679
|
}
|
|
680
680
|
}]
|
|
681
|
+
},
|
|
682
|
+
qa_control_dev_dependency:{
|
|
683
|
+
checks:[{
|
|
684
|
+
warnings:function(info) {
|
|
685
|
+
var warns = [];
|
|
686
|
+
// Only check if project has qa-control section AND has gha configured (but not "skip")
|
|
687
|
+
var qaSection = info.packageJson && info.packageJson['qa-control'];
|
|
688
|
+
if(!qaSection || !qaSection.gha || qaSection.gha === 'skip') { return warns; }
|
|
689
|
+
var devDependencies = info.packageJson.devDependencies || {};
|
|
690
|
+
if(!('qa-control' in devDependencies)) {
|
|
691
|
+
warns.push({warning:'lack_of_qa_control_in_dev_dependencies', scoring:{dependencies:1}});
|
|
692
|
+
return warns;
|
|
693
|
+
}
|
|
694
|
+
var actualVersion = devDependencies['qa-control'];
|
|
695
|
+
var toolPkgPath = Path.join(__dirname, '../../package.json');
|
|
696
|
+
var toolVersion;
|
|
697
|
+
try {
|
|
698
|
+
toolVersion = fs.readJsonSync(toolPkgPath).version;
|
|
699
|
+
} catch(e) {
|
|
700
|
+
try { toolVersion = require('../../package.json').version; } catch(e2) { toolVersion = null; }
|
|
701
|
+
}
|
|
702
|
+
if(!toolVersion) { return warns; }
|
|
703
|
+
var expectedCaret = '^' + toolVersion;
|
|
704
|
+
if(actualVersion !== expectedCaret && actualVersion !== toolVersion && actualVersion !== '~' + toolVersion) {
|
|
705
|
+
warns.push({warning:'qa_control_version_mismatch_in_dev_dependencies_1_expected_2', params:[actualVersion, expectedCaret], scoring:{dependencies:1}});
|
|
706
|
+
}
|
|
707
|
+
return warns;
|
|
708
|
+
}
|
|
709
|
+
}]
|
|
710
|
+
},
|
|
711
|
+
workflows:{
|
|
712
|
+
checks:[{
|
|
713
|
+
warnings:function(info) {
|
|
714
|
+
var qaSection = info.packageJson?.['qa-control'] || {};
|
|
715
|
+
var gha = qaSection.gha;
|
|
716
|
+
if(gha === 'skip' || (qaSection.profile === 'minimum' && !gha)) { return []; }
|
|
717
|
+
var qaWorkflowsDir = Path.join(__dirname, '../../.github/workflows');
|
|
718
|
+
var projWorkflowsDir = Path.join(info.projectDir, '.github/workflows');
|
|
719
|
+
return fs.readdir(qaWorkflowsDir).then(function(qaFiles) {
|
|
720
|
+
return Promise.all(qaFiles.map(function(fileName) {
|
|
721
|
+
return fs.readFile(Path.join(qaWorkflowsDir, fileName), 'utf8').then(function(qaContent) {
|
|
722
|
+
return fs.readFile(Path.join(projWorkflowsDir, fileName), 'utf8').then(function(projContent) {
|
|
723
|
+
if(qaContent !== projContent) {
|
|
724
|
+
return [{warning:'workflow_file_1_differs', params:[fileName], scoring:{workflows:1}}];
|
|
725
|
+
}
|
|
726
|
+
return [];
|
|
727
|
+
}).catch(function(err) {
|
|
728
|
+
if(err.code === 'ENOENT') {
|
|
729
|
+
return [{warning:'lack_of_workflow_file_1', params:[fileName], scoring:{workflows:1}}];
|
|
730
|
+
}
|
|
731
|
+
throw err;
|
|
732
|
+
});
|
|
733
|
+
});
|
|
734
|
+
}));
|
|
735
|
+
}).then(function(results) {
|
|
736
|
+
return results.reduce(function(acc, arr) { return acc.concat(arr); }, []);
|
|
737
|
+
}).catch(function(err) {
|
|
738
|
+
if(err.code === 'ENOENT') { return []; }
|
|
739
|
+
throw err;
|
|
740
|
+
});
|
|
741
|
+
}
|
|
742
|
+
}]
|
|
681
743
|
}
|
|
682
744
|
}
|
|
683
745
|
};
|
package/bin/qa-control-run.js
CHANGED
package/bin/qa-control.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// CMD-TOOL
|
|
4
4
|
var qaControl = {};
|
|
5
5
|
|
|
6
|
-
var fs = require('fs-
|
|
6
|
+
var fs = require('fs-extra');
|
|
7
7
|
var Path = require('path');
|
|
8
8
|
var stripBom = require('strip-bom-string');
|
|
9
9
|
var yaml = require('js-yaml');
|
|
@@ -27,6 +27,8 @@ qaControl.msgs={
|
|
|
27
27
|
en:{
|
|
28
28
|
lack_of_mandatory_section_1: 'lack of mandatory section "$1" in qa-control section of package.json',
|
|
29
29
|
repository_name_not_found: 'packageJson.repository must be in format /{[-a-zA-Z0-9_.]+}\/[-a-zA-Z0-9_.]+/',
|
|
30
|
+
lack_of_qa_control_in_dev_dependencies: 'qa-control must be in devDependencies with the same version as qa-control.package-version',
|
|
31
|
+
qa_control_version_mismatch_in_dev_dependencies_1_expected_2: 'qa-control version in devDependencies is "$1" but expected "$2"',
|
|
30
32
|
bailing_could_be_more: '--bail(ing)! There could be more issues'
|
|
31
33
|
},
|
|
32
34
|
es:{
|
|
@@ -61,6 +63,10 @@ qaControl.msgs={
|
|
|
61
63
|
invalid_files_section_in_package_json: 'La sección "files" en package.json es inválida',
|
|
62
64
|
incorrect_ecmascript_versions_in_package_json: 'Las versiones de ECMAScript utilizadas en package.json son incorrectas',
|
|
63
65
|
non_recomended_dependency_1_in_package_json: 'Dependencia no recomendada "$1" en package.json',
|
|
66
|
+
lack_of_workflow_file_1: 'falta el archivo de workflow "$1"',
|
|
67
|
+
workflow_file_1_differs: 'el archivo de workflow "$1" difiere del template de qa-control',
|
|
68
|
+
lack_of_qa_control_in_dev_dependencies: 'qa-control debe estar en devDependencies con la misma versión que qa-control.package-version',
|
|
69
|
+
qa_control_version_mismatch_in_dev_dependencies_1_expected_2: 'La versión de qa-control en devDependencies es "$1" pero se esperaba "$2"',
|
|
64
70
|
bailing_could_be_more: '¡Qué --bail(e)! Podrían haber más problemas, correr de nuevo después de corregir estos'
|
|
65
71
|
}
|
|
66
72
|
};
|
package/bin/qac-init.js
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "qa-control",
|
|
3
3
|
"description": "QA control of things that nobody controls",
|
|
4
|
-
"version": "0.6.
|
|
4
|
+
"version": "0.6.8",
|
|
5
5
|
"author": "Codenautas <codenautas@googlegroups.com>",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": "codenautas/qa-control",
|
|
@@ -25,11 +25,10 @@
|
|
|
25
25
|
"uuid": ">=14.0.0"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"best-globals": "^2.1.
|
|
28
|
+
"best-globals": "^2.1.5",
|
|
29
29
|
"commander": "^14.0.3",
|
|
30
|
-
"eslint": "^10.
|
|
30
|
+
"eslint": "^10.4.0",
|
|
31
31
|
"fs-extra": "^11.3.5",
|
|
32
|
-
"fs-promise": "^2.0.3",
|
|
33
32
|
"js-yaml": "^4.1.1",
|
|
34
33
|
"multilang": "^1.2.1",
|
|
35
34
|
"semver": "^7.8.0",
|
|
@@ -37,7 +36,7 @@
|
|
|
37
36
|
},
|
|
38
37
|
"devDependencies": {
|
|
39
38
|
"@types/mocha": "^10.0.10",
|
|
40
|
-
"@types/node": "^25.
|
|
39
|
+
"@types/node": "^25.9.0",
|
|
41
40
|
"expect-called": "^0.4.0",
|
|
42
41
|
"expect.js": "^0.3.1",
|
|
43
42
|
"mocha": "^11.7.5",
|
|
@@ -68,6 +67,7 @@
|
|
|
68
67
|
"run-in": "server",
|
|
69
68
|
"stability": "extending",
|
|
70
69
|
"type": "cmd-tool",
|
|
71
|
-
"ecmaVersion": 6
|
|
70
|
+
"ecmaVersion": 6,
|
|
71
|
+
"gha": "all"
|
|
72
72
|
}
|
|
73
73
|
}
|