@eui/tools 6.14.21 → 6.15.1

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.
Files changed (45) hide show
  1. package/.version.properties +1 -1
  2. package/CHANGELOG.md +18 -0
  3. package/package.json +1 -1
  4. package/sandbox.js +15 -25
  5. package/scripts/csdr/audit/styles.js +1 -1
  6. package/scripts/csdr/config/remotes.js +1 -1
  7. package/scripts/csdr/install/build-app.js +2 -2
  8. package/scripts/csdr/install/build-package.js +2 -2
  9. package/scripts/csdr/install/common.js +1 -1
  10. package/scripts/csdr/install/composite-core.js +49 -87
  11. package/scripts/csdr/install/projects.js +5 -7
  12. package/scripts/csdr/install/remotes.js +11 -11
  13. package/scripts/csdr/metadata/app.js +2 -2
  14. package/scripts/csdr/metadata/backend.js +148 -0
  15. package/scripts/csdr/metadata/metadata-utils.js +3 -4
  16. package/scripts/csdr/metadata/{package.js → package-utils.js} +0 -164
  17. package/scripts/csdr/metadata/remote-history.js +353 -0
  18. package/scripts/csdr/metadata/remote-package.js +188 -1
  19. package/scripts/csdr/metadata/stats.js +79 -79
  20. package/scripts/csdr/release/app/release-app.js +8 -17
  21. package/scripts/csdr/release/package/common.js +19 -119
  22. package/scripts/csdr/release/package/release-backend.js +7 -6
  23. package/scripts/csdr/release/package/release-old-remote.js +4 -23
  24. package/scripts/csdr/release/package/release-package.js +1 -1
  25. package/scripts/csdr/release/package/release-ui.js +30 -47
  26. package/scripts/csdr/release/package/release-virtual-remote.js +44 -19
  27. package/scripts/csdr/version/common.js +0 -2
  28. package/scripts/csdr/version/package-remote.js +2 -4
  29. package/scripts/index.js +4 -4
  30. package/scripts/utils/notification/slack-utils.js +1 -1
  31. package/scripts/utils/remotes/remotes-utils.js +6 -0
  32. package/scripts/csdr/metadata/package-envs.js +0 -70
  33. package/scripts/csdr/metadata/package-history.js +0 -368
  34. package/scripts/csdr/metadata/package-versions.js +0 -91
  35. package/scripts/csdr/metadata/v2/app/_app.js +0 -21
  36. package/scripts/csdr/metadata/v2/app/app.js +0 -25
  37. package/scripts/csdr/metadata/v2/app/index.js +0 -3
  38. package/scripts/csdr/metadata/v2/global/_global.js +0 -21
  39. package/scripts/csdr/metadata/v2/global/global.js +0 -25
  40. package/scripts/csdr/metadata/v2/global/index.js +0 -3
  41. package/scripts/csdr/metadata/v2/index.js +0 -5
  42. package/scripts/csdr/metadata/v2/migrate-devops-metadata.js +0 -207
  43. package/scripts/csdr/metadata/v2/package/_package.js +0 -21
  44. package/scripts/csdr/metadata/v2/package/index.js +0 -3
  45. package/scripts/csdr/metadata/v2/package/package.js +0 -25
@@ -1,368 +0,0 @@
1
- 'use strict';
2
-
3
- // GLOBAL
4
- const path = require('path');
5
- const execa = require('execa');
6
- const moment = require('moment');
7
- const semver = require('semver');
8
-
9
- // LOCAL
10
- const tools = require('../../utils/tools');
11
- const pipelineUtils = require('../../utils/pipeline-utils');
12
- const configUtils = require('../config/config-utils');
13
-
14
- // INNER MODULES
15
- const innerPackage = require('./package');
16
- const innerRemotePackage = require('./remote-package');
17
-
18
- // FETCH ARGS
19
- const { dryRun } = tools.getArgs();
20
-
21
-
22
-
23
- const getMetadata = (pkg) => {
24
- tools.logInfo('Getting app history metadata');
25
-
26
- const DEVOPS_METADATA_PATH = configUtils.global.getConfigOptions().DEVOPS_METADATA_PATH;
27
-
28
- return Promise.resolve()
29
- .then(() => {
30
- if (!DEVOPS_METADATA_PATH) {
31
- throw new Error(`Devops metadata folder ${DEVOPS_METADATA_PATH} NOT FOUND`);
32
- }
33
-
34
- return tools.getJsonFileContent(
35
- path.join(DEVOPS_METADATA_PATH, pkg.devopsHistoryMetadataFile)
36
- );
37
- })
38
- .catch((e) => {
39
- throw e;
40
- })
41
- }
42
-
43
-
44
- const storeMetadata = (pkg, diffMetadata, newVersion) => {
45
- tools.logTitle('Storing pkg history metadata');
46
-
47
- const DEVOPS_METADATA_PATH = configUtils.global.getConfigOptions().DEVOPS_METADATA_PATH;
48
-
49
- let flatJiraList = [], filteredFlatJiraList = [];
50
- let historyMetadata = {};
51
-
52
- return Promise.resolve()
53
-
54
- // flatten jira key list from diffMetadata extracted
55
- .then(() => {
56
-
57
- // full jira issues list
58
- diffMetadata.forEach((pkg) => {
59
- pkg.gitMetadata.forEach((gitMetadata) => {
60
- gitMetadata.forEach((v) => {
61
- if (v.issue) flatJiraList.push(v.issue);
62
- })
63
- })
64
- })
65
-
66
- flatJiraList = tools.removeArrayDuplicates(flatJiraList);
67
-
68
- // filtered only issues where package is considered "linkedPackage" defined in the configuration, to not push all the issues list
69
- // coming from dependencies of a particular remote to the release note generated after CI
70
- diffMetadata.forEach((pkg) => {
71
- if (pkg.packageLinked) {
72
- pkg.gitMetadata.forEach((gitMetadata) => {
73
- gitMetadata.forEach((v) => {
74
- if (v.issue) filteredFlatJiraList.push(v.issue);
75
- })
76
- })
77
- }
78
- })
79
-
80
- filteredFlatJiraList = tools.removeArrayDuplicates(filteredFlatJiraList);
81
- })
82
-
83
- // store the history file
84
- .then(() => {
85
- const historyFile = path.join(DEVOPS_METADATA_PATH, pkg.devopsHistoryMetadataFile);
86
-
87
- var versions = [];
88
-
89
- if (tools.isFileExists(historyFile)) {
90
- historyMetadata = require(historyFile);
91
- versions = historyMetadata.versions;
92
- }
93
-
94
- versions.push({
95
- name: newVersion,
96
- diffs: diffMetadata,
97
- issues: flatJiraList,
98
- filteredIssues: filteredFlatJiraList
99
- });
100
-
101
- historyMetadata.versions = versions;
102
-
103
- tools.writeJsonFileSync(historyFile, historyMetadata);
104
- })
105
-
106
- // storing issuesList gathered into gitlab variables for post CI processing
107
- .then(() => {
108
- tools.logInfo('Extracting Jira issues list to gitlab variables');
109
-
110
- if (!flatJiraList) {
111
- tools.logWarning('No issues found for this release');
112
-
113
- } else {
114
- let issuesList;
115
- if (filteredFlatJiraList.length > 0) {
116
- tools.logInfo('Taking into account filter issues list from allowed packages in configuration');
117
- issuesList = filteredFlatJiraList.join(',');
118
- } else {
119
- tools.logInfo('Taking into account full Jira issues list extracted');
120
- issuesList = flatJiraList.join(',');
121
- }
122
- tools.logInfo(`Unique issues found for this version : ${issuesList}`);
123
-
124
- if (!dryRun) {
125
- return pipelineUtils.setVariables(process.cwd(), `export ISSUES_LIST=${issuesList}\n`);
126
- }
127
- }
128
- })
129
-
130
-
131
- .then(() => {
132
- return historyMetadata;
133
- })
134
-
135
- .catch((e) => {
136
- throw e;
137
- })
138
- }
139
-
140
-
141
-
142
-
143
- const getDiffBetweenBuildVersions = (pkg, fromBuildMetadata, toBuildMetadata) => {
144
- tools.logInfo('Get differences between versions metadata');
145
- tools.logInfo('FROM : ');
146
- console.log(fromBuildMetadata);
147
-
148
- tools.logInfo('TO : ');
149
- console.log(toBuildMetadata);
150
-
151
- const DEVOPS_METADATA_PATH = configUtils.global.getConfigOptions().DEVOPS_METADATA_PATH;
152
-
153
- if (!fromBuildMetadata) {
154
- tools.logWarning('No previous metadata found for package...skipping');
155
- return null;
156
- }
157
-
158
- return Promise.resolve()
159
- .then(() => {
160
- // get differences from old in previous major release to new currently generated
161
- const diffs = [];
162
- Object.keys(fromBuildMetadata.dependencies).forEach((k) => {
163
- if ({}.hasOwnProperty.call(toBuildMetadata.dependencies, k) && toBuildMetadata.dependencies[k] !== fromBuildMetadata.dependencies[k]) {
164
- diffs.push({ package: k, old: fromBuildMetadata.dependencies[k], new: toBuildMetadata.dependencies[k] });
165
- }
166
- });
167
-
168
- // remove snapshots as they are not stored in the package metadata
169
- const cleanDiffs = diffs.filter((item) => {
170
- return item.old.indexOf('-snapshot') === -1 &&
171
- item.new.indexOf('-snapshot') === -1 &&
172
- item.package.indexOf('@eui') === -1;
173
- })
174
-
175
- tools.logInfo(JSON.stringify(cleanDiffs, null, 2));
176
-
177
- // Iterate over the
178
- const mappedPkg = cleanDiffs.map((item) => {
179
-
180
- tools.logInfo(`parsing item : ${item.package}`);
181
-
182
- const pkgItem = configUtils.packages.getPackageByNpmPkg(item.package, true);
183
- let pkgName;
184
- if (pkgItem) {
185
- pkgName = pkgItem.name;
186
-
187
- if (pkgItem.child) {
188
- pkgName = pkgItem.parentPkg;
189
- }
190
- }
191
-
192
- tools.logInfo('checking package : ' + pkgName);
193
-
194
- let isPackageLinked = true;
195
-
196
- // checking if package is part of the known linkedPackage of the remote to parse
197
- if (pkg.linkedPackages && pkg.linkedPackages.filter(p => p === item.package).length === 0) {
198
- tools.logInfo(`package ${pkgName} is not part of "linkedPackages" defined for ${pkg.name}`)
199
- tools.logInfo('It will be excluded from Jira issues list generation for release note');
200
- isPackageLinked = false;
201
-
202
- } else {
203
- tools.logInfo(`${pkg.name} has no linkedPackages defined OR linkedPackage is present in the allowed package list`);
204
- tools.logInfo('Gathering package metadata history information');
205
- }
206
-
207
- // getting package file metadata
208
- const packageMetadataFile = path.join(DEVOPS_METADATA_PATH, pkgName + '-build-metadata.json');
209
-
210
- if (tools.isFileExists(packageMetadataFile)) {
211
-
212
- const packageMetadata = require(packageMetadataFile);
213
-
214
- // extracting versions history arry
215
- const fromVersionIdx = packageMetadata.versions.findIndex(v => v.name === item.old);
216
- const toVersionIdx = packageMetadata.versions.findIndex(v => v.name === item.new);
217
-
218
- // slice the array with only the versions changed
219
- const diffVersions = packageMetadata.versions.slice(fromVersionIdx + 1, toVersionIdx + 1);
220
-
221
- // accumulate git metadata for the versions found for the release
222
- var accGitMetadata = diffVersions.reduce((acc, k) => {
223
- const gitCommits = k.gitMetadata.commits.map((item) => {
224
- return { issue: item.issue, subject: item.subject }
225
- })
226
- acc.push(gitCommits);
227
- return acc;
228
- }, []);
229
-
230
- return { name: pkgName, old: item.old, new: item.new, gitMetadata: accGitMetadata, packageLinked: isPackageLinked };
231
- }
232
- })
233
-
234
- return mappedPkg;
235
-
236
- })
237
-
238
- .catch((e) => {
239
- throw e;
240
- })
241
- }
242
-
243
-
244
-
245
- const getDiffByEnvTarget = (pkg, envTarget) => {
246
- tools.logInfo(`Getting differences for ${pkg.name} - ${envTarget}`);
247
-
248
- return Promise.resolve()
249
- .then(() => {
250
- return innerRemotePackage.getPackageVersionsLatest(pkg);
251
- })
252
-
253
- .then((pkgVersions) => {
254
- const envVersions = pkgVersions.filter((v) => {
255
- return v.envTarget === envTarget
256
- });
257
-
258
- const fromVersion = envVersions[envVersions.length - 2];
259
- const toVersion = envVersions[envVersions.length - 1];
260
- const hasHistory = fromVersion && toVersion;
261
-
262
- if (!fromVersion || !toVersion) {
263
- tools.logWarning('WARNING: could not find versions matching for generating diff report');
264
- return;
265
- } else {
266
- return getDiffBetweenBuildVersions(pkg, fromVersion, toVersion, hasHistory);
267
- }
268
-
269
- })
270
-
271
- .catch((e) => {
272
- throw e;
273
- })
274
- }
275
-
276
-
277
-
278
-
279
- // get differences of package versions between last(current) and previous major
280
-
281
- const generateDiffReport = (pkg, envTarget, fromVersion, toVersion) => {
282
- tools.logTitle('Generate packages differences report from previous major version...');
283
-
284
- if (envTarget && pkg.build && pkg.build.envTargetActive) {
285
-
286
- return Promise.resolve()
287
- .then(() => {
288
- return getDiffByEnvTarget(pkg, envTarget);
289
- })
290
-
291
- .catch((e) => {
292
- throw e;
293
- })
294
-
295
-
296
- } else {
297
- return Promise.resolve()
298
- .then(() => {
299
- return innerRemotePackage.getPackageVersionsLatest(pkg);
300
- })
301
-
302
- .then((pkgVersions) => {
303
- if (fromVersion && toVersion) {
304
- const fromVersionMetadata = pkgVersions.filter((v) => {
305
- return v.version === fromVersion;
306
- })[0];
307
-
308
- const toVersionMetadata = pkgVersions.filter((v) => {
309
- return v.version === toVersion;
310
- })[0];
311
-
312
- return getDiffBetweenBuildVersions(pkg, fromVersionMetadata, toVersionMetadata);
313
-
314
- } else {
315
- return getDiffBetweenBuildVersions(pkg, pkgVersions[pkgVersions.length - 2], pkgVersions[pkgVersions.length - 1]);
316
- }
317
- })
318
-
319
- .catch((e) => {
320
- throw e;
321
- })
322
- }
323
- }
324
-
325
-
326
-
327
-
328
-
329
-
330
- const flattenDiffMetadata = (metadata) => {
331
- return Promise.resolve()
332
- .then(() => {
333
- return metadata.map((item) => {
334
- return { package: item.name, fromVersion: item.old, toVersion: item.new };
335
- });
336
- })
337
-
338
- .then((flatMetadata) => {
339
- return flatMetadata;
340
- })
341
-
342
- .catch((e) => {
343
- throw e;
344
- })
345
- }
346
-
347
-
348
- const flatDiffMetadataToMessage = () => {
349
- let message = 'No differences detected';
350
-
351
- if (diffMetadata.length !== 0) {
352
- message = diffMetadata.map((pkg) => {
353
- return `${pkg.package} ---> from [${pkg.fromVersion}] to [${pkg.toVersion}]`
354
- }).join('\n ');
355
- }
356
-
357
- return message;
358
- }
359
-
360
-
361
-
362
- module.exports.getMetadata = getMetadata;
363
- module.exports.storeMetadata = storeMetadata;
364
- module.exports.getDiffBetweenBuildVersions = getDiffBetweenBuildVersions;
365
- module.exports.generateDiffReport = generateDiffReport;
366
- module.exports.flattenDiffMetadata = flattenDiffMetadata;
367
- module.exports.flatDiffMetadataToMessage = flatDiffMetadataToMessage;
368
-
@@ -1,91 +0,0 @@
1
- 'use strict';
2
-
3
- // GLOBAL
4
- const path = require('path');
5
- const moment = require('moment');
6
-
7
- // LOCAL
8
- const tools = require('../../utils/tools');
9
- const configUtils = require('../config/config-utils');
10
-
11
- const { dryRun } = tools.getArgs();
12
-
13
-
14
- module.exports.getMetadata = (pkg) => {
15
- const DEVOPS_METADATA_PATH = configUtils.global.getConfigOptions().DEVOPS_METADATA_PATH;
16
-
17
- return Promise.resolve()
18
- .then(() => {
19
- if (!DEVOPS_METADATA_PATH) {
20
- throw new Error(`Devops metadata folder ${DEVOPS_METADATA_PATH} NOT FOUND`) ;
21
- }
22
-
23
- return tools.getJsonFileContent(path.join(DEVOPS_METADATA_PATH, pkg.devopsVersionsMetadataFile));
24
- })
25
- .catch((e) => {
26
- throw e;
27
- })
28
- }
29
-
30
- module.exports.getMetadataSync = (pkg) => {
31
- const DEVOPS_METADATA_PATH = configUtils.global.getConfigOptions().DEVOPS_METADATA_PATH;
32
-
33
- if (!DEVOPS_METADATA_PATH) {
34
- throw new Error(`Devops metadata folder ${DEVOPS_METADATA_PATH} NOT FOUND`) ;
35
- }
36
-
37
- return tools.getJsonFileContent(path.join(DEVOPS_METADATA_PATH, pkg.devopsVersionsMetadataFile));
38
- }
39
-
40
- module.exports.storeMetadata = (pkg, pkgVersion, pkgCompositeDeps, duration, envTarget) => {
41
- return Promise.resolve()
42
- .then(() => {
43
- tools.logInfo('Storing package version history metadata...');
44
-
45
- const configOptions = configUtils.global.getConfigOptions();
46
-
47
- let generatedMetadata = {};
48
- let versions = [];
49
-
50
- let pkgMetadataFile = path.join(configOptions.DEVOPS_METADATA_PATH, pkg.devopsVersionsMetadataFile);
51
- if (pkg.backend) {
52
- pkgMetadataFile = path.join(pkg.paths.root, 'package-versions-metadata.json');
53
- }
54
-
55
- if (tools.isFileExists(pkgMetadataFile)) {
56
- generatedMetadata = require(pkgMetadataFile);
57
- versions = generatedMetadata.versions;
58
- }
59
-
60
- const newVersionMetadata = {
61
- name: pkg.name,
62
- version: pkgVersion,
63
- date: moment(new Date()).format("YYYYMMDD-HH:mm"),
64
- npmPkg: pkg.npmPkg,
65
- duration: duration,
66
- envTarget: envTarget,
67
- };
68
-
69
- if (pkg.remote) {
70
- tools.logInfo('Writing remote composite dependencies');
71
- newVersionMetadata.dependencies = pkgCompositeDeps;
72
- }
73
- console.log(newVersionMetadata);
74
- versions.push(newVersionMetadata);
75
- generatedMetadata.versions = versions;
76
-
77
- tools.logInfo(`Write metadata on ${pkgMetadataFile}`);
78
-
79
- if (dryRun) {
80
- tools.logInfo('DRY RUN...outputing newVersionMetadata');
81
- console.log(newVersionMetadata);
82
-
83
- } else {
84
- tools.writeJsonFileSync(pkgMetadataFile, generatedMetadata);
85
- }
86
- })
87
-
88
- .catch((e) => {
89
- throw e;
90
- })
91
- }
@@ -1,21 +0,0 @@
1
- 'use strict';
2
-
3
- // LOCALS
4
- const utils = require('../../../../utils');
5
-
6
-
7
- // PUBLIC METHODS
8
- module.exports.getMetadata = (app) => {
9
- return Promise.resolve()
10
- .then(() => {
11
- const urlPath = `/app/${app.name}`;
12
- return utils.api.get(urlPath);
13
- })
14
- .then((data) => {
15
- return data;
16
- })
17
- .catch((e) => {
18
- utils.tools.logDebugTrace(__filename, 'getMetadata', e);
19
- throw e;
20
- })
21
- }
@@ -1,25 +0,0 @@
1
- 'use strict';
2
-
3
- // LOCALS
4
- const utils = require('../../../../utils');
5
-
6
- // PRIVATES
7
- const _app = require('./_app');
8
-
9
-
10
- // PUBLIC METHODS
11
- module.exports.getMetadata = (app) => {
12
- utils.tools.logTitle('Get app metadata');
13
-
14
- return Promise.resolve()
15
- .then(() => {
16
- return _app.getMetadata(app);
17
- })
18
- .then((metadata) => {
19
- return metadata;
20
- })
21
- .catch((e) => {
22
- utils.tools.logErrorTrace(__filename, 'getMetadata', e);
23
- throw e;
24
- })
25
- }
@@ -1,3 +0,0 @@
1
- 'use strict';
2
-
3
- const app = require('./app');
@@ -1,21 +0,0 @@
1
- 'use strict';
2
-
3
- // LOCALS
4
- const utils = require('../../../../utils');
5
-
6
-
7
- // PUBLIC METHODS
8
- module.exports.getMetadata = () => {
9
- return Promise.resolve()
10
- .then(() => {
11
- const urlPath = `/metadata/globals`;
12
- return utils.api.get(urlPath);
13
- })
14
- .then((data) => {
15
- return data;
16
- })
17
- .catch((e) => {
18
- utils.tools.logDebugTrace(__filename, 'getMetadata', e);
19
- throw e;
20
- })
21
- }
@@ -1,25 +0,0 @@
1
- 'use strict';
2
-
3
- // LOCALS
4
- const utils = require('../../../../utils');
5
-
6
- // PRIVATES
7
- const _global = require('./_global');
8
-
9
-
10
- // PUBLIC METHODS
11
- module.exports.getMetadata = () => {
12
- utils.tools.logTitle('Get global metadata');
13
-
14
- return Promise.resolve()
15
- .then(() => {
16
- return _global.getMetadata();
17
- })
18
- .then((metadata) => {
19
- return metadata;
20
- })
21
- .catch((e) => {
22
- utils.tools.logErrorTrace(__filename, 'getMetadata', e);
23
- throw e;
24
- })
25
- }
@@ -1,3 +0,0 @@
1
- 'use strict';
2
-
3
- module.exports = require('./global');
@@ -1,5 +0,0 @@
1
- 'use strict';
2
-
3
- module.exports.global = require('./global');
4
- module.exports.package = require('./package');
5
- module.exports.app = require('./app');