@eui/tools 5.0.0-rc.1 → 5.0.0-rc.13
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/.version.properties +1 -1
- package/CHANGELOG.md +690 -3
- package/bin/eui-scripts.js +6 -6
- package/bin/scripts/build-package-sub.js +20 -0
- package/bin/scripts/version.js +12 -0
- package/global.test.js +61 -45
- package/package.json +17 -21
- package/sandbox.js +158 -5
- package/scripts/csdr/audit/audit-utils.js +2 -2
- package/scripts/csdr/cli/app.js +43 -5
- package/scripts/csdr/cli/package.js +93 -9
- package/scripts/csdr/cli/skeletons/app-eui10/angular-config.json +20 -0
- package/scripts/csdr/cli/skeletons/app-eui10/dependencies-base.json +2 -0
- package/scripts/csdr/cli/skeletons/app-eui10/dependencies-composite.json +5 -0
- package/scripts/csdr/cli/skeletons/app-eui10/gitignore_TO_REPLACE +63 -0
- package/scripts/csdr/cli/skeletons/app-eui10/mock/app/models/user.js +8 -0
- package/scripts/csdr/cli/skeletons/app-eui10/mock/app/routes/index.js +5 -0
- package/scripts/csdr/cli/skeletons/app-eui10/mock/app/routes/user_routes.js +24 -0
- package/scripts/csdr/cli/skeletons/app-eui10/mock/db/db.json +12 -0
- package/scripts/csdr/cli/skeletons/app-eui10/mock/server.js +16 -0
- package/scripts/csdr/cli/skeletons/app-eui10/package.json +6 -0
- package/scripts/csdr/cli/skeletons/app-eui10/scripts.json +5 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/app-routing.module.ts +18 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/app-starter.service.ts +68 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/app.component.html +29 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/app.component.ts +55 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/app.module.ts +27 -0
- package/scripts/{utils/pre-build/translations/common.js → csdr/cli/skeletons/app-eui10/src/app/core/components/.gitkeep} +0 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/core/core.module.ts +84 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/core/reducers/index.ts +33 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/features/home/home-routing.module.ts +15 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/features/home/home.component.html +7 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/features/home/home.component.ts +19 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/features/home/home.module.ts +18 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/features/module1/components/page1/page1.component.html +7 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/features/module1/components/page1/page1.component.ts +7 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/features/module1/components/page2/page2.component.html +7 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/features/module1/components/page2/page2.component.ts +7 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/features/module1/module1-routing.module.ts +18 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/features/module1/module1.component.html +7 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/features/module1/module1.component.ts +8 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/features/module1/module1.module.ts +21 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/features/module2/module2-routing.module.ts +16 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/features/module2/module2.component.html +8 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/features/module2/module2.component.ts +7 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/features/module2/module2.module.ts +17 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/shared/shared.module.ts +21 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/app/shared/testing/router.mock.ts +18 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/assets/config/env-json-config.json +8 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/assets/i18n/en.json +7 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/assets/i18n/fr.json +7 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/config/global.ts +20 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/config/index.ts +8 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/config/modules.ts +4 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/environments/environment.prod.ts +9 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/environments/environment.ts +9 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/index.html +21 -0
- package/scripts/csdr/cli/skeletons/app-eui10/src/styles.scss +1 -0
- package/scripts/csdr/cli/skeletons/app-eui10/tslint.json +17 -0
- package/scripts/csdr/cli/skeletons/app-showcase-eui13/angular-config.json +33 -0
- package/scripts/csdr/cli/skeletons/app-showcase-eui13/dependencies-composite.json +5 -0
- package/scripts/csdr/cli/skeletons/app-showcase-eui13/gitignore_TO_REPLACE +50 -0
- package/scripts/csdr/cli/skeletons/app-showcase-eui13/package.json +6 -0
- package/scripts/csdr/cli/skeletons/app-showcase-eui13/scripts.json +3 -0
- package/scripts/csdr/cli/skeletons/app-showcase-eui13/src/app/app-routing.module.ts +21 -0
- package/scripts/csdr/cli/skeletons/app-showcase-eui13/src/app/app.component.html +26 -0
- package/scripts/csdr/cli/skeletons/app-showcase-eui13/src/app/app.component.ts +19 -0
- package/scripts/csdr/cli/skeletons/app-showcase-eui13/src/app/app.routes.ts +7 -0
- package/scripts/csdr/cli/skeletons/app-showcase-eui13/src/app/features/_home/home-routing.module.ts +15 -0
- package/scripts/csdr/cli/skeletons/app-showcase-eui13/src/app/features/_home/home.component.html +7 -0
- package/scripts/csdr/cli/skeletons/app-showcase-eui13/src/app/features/_home/home.component.ts +8 -0
- package/scripts/csdr/cli/skeletons/app-showcase-eui13/src/app/features/_home/home.module.ts +17 -0
- package/scripts/csdr/cli/skeletons/app-showcase-eui13/src/app/features/shared/shared.module.ts +15 -0
- package/scripts/csdr/cli/skeletons/app-showcase-eui13/src/assets/app-metadata.json +8 -0
- package/scripts/csdr/cli/skeletons/app-showcase-eui13/src/assets/config/env-json-config.json +41 -0
- package/scripts/csdr/cli/skeletons/app-showcase-eui13/src/index.html +22 -0
- package/scripts/csdr/cli/skeletons/package/frontend-eui10/assets/i18n/en.json +3 -0
- package/scripts/csdr/cli/skeletons/package/frontend-eui10/assets/i18n/fr.json +3 -0
- package/scripts/csdr/cli/skeletons/package/frontend-eui10/gitignore_TO_REPLACE +46 -0
- package/scripts/csdr/cli/skeletons/package/frontend-eui10/karma.conf.js +7 -0
- package/scripts/csdr/cli/skeletons/package/frontend-eui10/ng-package.json +7 -0
- package/scripts/csdr/cli/skeletons/package/frontend-eui10/package.json +4 -0
- package/scripts/csdr/cli/skeletons/package/frontend-eui10/src/dummy.spec.ts.TO_REPLACE +5 -0
- package/scripts/csdr/cli/skeletons/package/frontend-eui10/src/index.ts +1 -0
- package/scripts/csdr/cli/skeletons/package/frontend-eui10/src/lib/module.ts +11 -0
- package/scripts/csdr/cli/skeletons/package/frontend-eui10/src/test.ts.TO_REPLACE +21 -0
- package/scripts/csdr/cli/skeletons/package/frontend-eui10/tsconfig.lib.json +32 -0
- package/scripts/csdr/cli/skeletons/package/frontend-eui10/tsconfig.spec.json +17 -0
- package/scripts/csdr/cli/skeletons/package/frontend-eui10/tslint.json +17 -0
- package/scripts/csdr/cli/skeletons/package/frontend-option-route/src/lib/components/cmp1/cmp1.component.html +1 -0
- package/scripts/csdr/cli/skeletons/package/frontend-option-route/src/lib/components/cmp1/cmp1.component.spec.ts.TO_REPLACE +25 -0
- package/scripts/csdr/cli/skeletons/package/frontend-option-route/src/lib/components/cmp1/cmp1.component.ts +14 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote/angular.json +3 -3
- package/scripts/csdr/cli/skeletons/package/frontend-remote/dependencies-composite.json +1 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote/src/app/dummy.scss +3 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote/src/app/dummy.spec.ts +6 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote/src/app/module.component.ts +62 -28
- package/scripts/csdr/cli/skeletons/package/frontend-remote/src/app/module.ts +44 -39
- package/scripts/csdr/cli/skeletons/package/frontend-remote/src/app/routing.module.ts +23 -9
- package/scripts/csdr/cli/skeletons/package/frontend-remote/src/assets/i18n-compiled/en.json +1 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote/src/assets/i18n-compiled/fr.json +1 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote/src/config/global.ts +6 -5
- package/scripts/csdr/cli/skeletons/package/frontend-remote/src/index.html +1 -1
- package/scripts/csdr/cli/skeletons/package/frontend-remote/tsconfig.app.json +3 -1
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/angular.json +90 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/browserslist +10 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/dependencies-base.json +2 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/dependencies-composite.json +6 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/gitignore_TO_REPLACE +64 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/karma.conf.js +7 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/package.json_TO_REPLACE +8 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/src/app/dummy.scss +3 -0
- package/scripts/csdr/cli/skeletons/package/{frontend-remote/src/app/dummy.spec.ts.TO_REPLACE → frontend-remote-eui10/src/app/dummy.spec.ts} +0 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/src/app/fallback.component.ts +11 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/src/app/module.component.ts +90 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/src/app/module.ts +219 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/src/app/reducers/custom-route-serializer.ts +28 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/src/app/reducers/index.ts +42 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/src/app/routing.module.ts +55 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/src/assets/.gitkeep +0 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/src/config/global.ts +31 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/src/config/index.ts +20 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/src/config/modules.ts +3 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/src/environments/environment.prod.ts +3 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/src/environments/environment.ts +15 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/src/favicon.ico +0 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/src/index.html +10 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/src/main.ts +12 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/src/polyfills.ts +86 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/src/test.ts.TO_REPLACE +20 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/tsconfig.app.json +20 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/tsconfig.spec.json +18 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/tslint-remote.json +7 -0
- package/scripts/csdr/cli/skeletons/package/frontend-remote-eui10/tslint.json +17 -0
- package/scripts/csdr/cli/skeletons/package/{frontend-remote → frontend-remote-eui10}/webpack.extra.js +0 -0
- package/scripts/csdr/config/angular.js +734 -47
- package/scripts/csdr/config/global.js +43 -6
- package/scripts/csdr/config/packages.js +64 -1
- package/scripts/csdr/config/projects.js +24 -6
- package/scripts/csdr/config/projects.test.js +11 -9
- package/scripts/csdr/config/sync.js +6 -3
- package/scripts/csdr/init/init-utils.js +72 -0
- package/scripts/csdr/init/init.js +6 -0
- package/scripts/csdr/init/prompt.js +3 -1
- package/scripts/csdr/init/resources/10.x/yarn.lock +16428 -0
- package/scripts/csdr/init/resources/13.x/browserslistrc +6 -0
- package/scripts/csdr/init/resources/13.x/resolutions.json +6 -0
- package/scripts/csdr/init/resources/14.x/browserslistrc +6 -0
- package/scripts/csdr/init/resources/14.x/resolutions.json +5 -0
- package/scripts/csdr/install/build-app.js +6 -38
- package/scripts/csdr/install/build-package.js +16 -157
- package/scripts/csdr/install/common.js +21 -13
- package/scripts/csdr/install/composite-core.js +256 -0
- package/scripts/csdr/install/install-utils.js +8 -4
- package/scripts/csdr/install/local-dev.js +5 -3
- package/scripts/csdr/install/packages.js +90 -0
- package/scripts/csdr/install/projects.js +76 -0
- package/scripts/csdr/install/{remote.js → remotes.js} +46 -51
- package/scripts/csdr/metadata/app-envs.js +1 -39
- package/scripts/csdr/metadata/app-history.js +1 -66
- package/scripts/csdr/metadata/app-versions.js +2 -12
- package/scripts/csdr/metadata/app.js +49 -9
- package/scripts/csdr/metadata/common.js +21 -45
- package/scripts/csdr/metadata/metadata-utils.js +2 -0
- package/scripts/csdr/metadata/package-envs.js +71 -0
- package/scripts/csdr/metadata/package-history.js +5 -1
- package/scripts/csdr/metadata/package-versions.js +79 -0
- package/scripts/csdr/metadata/package.js +169 -101
- package/scripts/csdr/metadata/stats.js +9 -5
- package/scripts/csdr/release/app/release-app.js +16 -21
- package/scripts/csdr/release/package/backend.js +26 -0
- package/scripts/csdr/release/package/common.js +160 -13
- package/scripts/csdr/release/package/release-package.js +40 -6
- package/scripts/csdr/release/package/remote.js +2 -17
- package/scripts/csdr/release/package/ui.js +86 -3
- package/scripts/csdr/sync/sync-utils.js +9 -2
- package/scripts/csdr/version/app-common.js +32 -0
- package/scripts/csdr/version/app-env-target.js +5 -295
- package/scripts/csdr/version/app.js +5 -3
- package/scripts/csdr/version/{app-env-target.test.js → common..test.js} +32 -31
- package/scripts/csdr/version/common.js +277 -0
- package/scripts/csdr/version/package-common.js +158 -0
- package/scripts/csdr/version/package-default.js +144 -0
- package/scripts/csdr/version/package-remote.js +51 -0
- package/scripts/csdr/version/package.js +16 -270
- package/scripts/utils/api-utils.js +90 -0
- package/scripts/utils/build/app/build-app-utils.js +11 -9
- package/scripts/utils/build/package/angular.js +4 -30
- package/scripts/utils/build/package/build-package-utils.js +50 -1
- package/scripts/utils/build/package/element.js +15 -16
- package/scripts/utils/build/package/nodeJs.js +2 -1
- package/scripts/utils/build/package/skeletons/elements/index.html +9 -0
- package/scripts/utils/build/package/styles.js +83 -86
- package/scripts/utils/git-utils.js +69 -6
- package/scripts/utils/index.js +0 -2
- package/scripts/utils/notification/common.js +5 -0
- package/scripts/utils/notification/mail-utils.js +3 -0
- package/scripts/utils/notification/mailstack.js +3 -5
- package/scripts/utils/notification/package.js +0 -2
- package/scripts/utils/notification/slack-utils.js +6 -7
- package/scripts/utils/pre-build/elements.js +8 -4
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton/src/_generated/favicon.ico +0 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui13/src/_generated/app/app.module.ts +52 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui13/src/_generated/app/core/reducers/index.ts +40 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui13/src/_generated/config/global.ts +4 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui13/src/_generated/config/index.ts +8 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui13/src/_generated/config/modules.ts +4 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui13/src/_generated/environments/environment.dev.ts +9 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui13/src/_generated/environments/environment.prod.ts +9 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui13/src/_generated/environments/environment.ts +21 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui13/src/_generated/favicon.ico +0 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui13/src/_generated/karma.conf.js +7 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui13/src/_generated/main.ts +21 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui13/src/_generated/polyfills.ts +86 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui13/src/_generated/tst.ts +33 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui13/tsconfig.app.json +19 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui13/tsconfig.spec.json +9 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui13/tslint.json +17 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui14/src/_generated/app/app.module.ts +52 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui14/src/_generated/app/core/reducers/index.ts +40 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui14/src/_generated/config/global.ts +4 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui14/src/_generated/config/index.ts +8 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui14/src/_generated/config/modules.ts +4 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui14/src/_generated/environments/environment.dev.ts +9 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui14/src/_generated/environments/environment.prod.ts +9 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui14/src/_generated/environments/environment.ts +21 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui14/src/_generated/favicon.ico +0 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui14/src/_generated/karma.conf.js +7 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui14/src/_generated/main.ts +21 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui14/src/_generated/polyfills.ts +86 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui14/src/_generated/tst.ts +33 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui14/tsconfig.app.json +19 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui14/tsconfig.spec.json +9 -0
- package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui14/tslint.json +17 -0
- package/scripts/utils/pre-build/injection/config.js +30 -31
- package/scripts/utils/pre-build/injection/externals.js +70 -72
- package/scripts/utils/pre-build/injection/injection-utils.js +2 -0
- package/scripts/utils/pre-build/injection/routes-replacement.js +318 -0
- package/scripts/utils/pre-build/injection/skeletons.js +9 -3
- package/scripts/utils/pre-build/projects.js +28 -15
- package/scripts/utils/pre-build/translations/elements.js +21 -11
- package/scripts/utils/serve/app.js +7 -4
- package/scripts/utils/test/test-utils.js +39 -1
- package/scripts/utils/tools.js +370 -285
- package/bin/scripts/csdr-jira-update.js +0 -12
- package/bin/scripts/csdr-migrate-package.js +0 -17
- package/bin/scripts/e2e-app.js +0 -62
- package/scripts/csdr/install/composite-utils.js +0 -292
- package/scripts/csdr/jira/jira-utils.js +0 -169
- package/scripts/csdr/jira/update.js +0 -153
- package/scripts/migration/eui8-migration.js +0 -94
- package/scripts/migration/migrate-utils.js +0 -191
- package/scripts/utils/confluence-utils.js +0 -126
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// externals
|
|
4
|
+
const semver = require('semver');
|
|
5
|
+
|
|
6
|
+
// local
|
|
7
|
+
const tools = require('../../utils/tools');
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
const getNewVersionForDev = (versionsMetadata, envsMetadata, rootEnv) => {
|
|
11
|
+
let version;
|
|
12
|
+
const lastIntMetadata = envsMetadata[rootEnv];
|
|
13
|
+
|
|
14
|
+
if (lastIntMetadata) {
|
|
15
|
+
const rootVersion = semver.coerce(envsMetadata[rootEnv].version).raw;
|
|
16
|
+
version = semver.inc(rootVersion, 'major') + '-SNAPSHOT';
|
|
17
|
+
} else {
|
|
18
|
+
version = '1.0.0-SNAPSHOT';
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
tools.logInfo(`Probable new version : ${version}`);
|
|
22
|
+
|
|
23
|
+
// if no versions history is found for the current project, initial version is set
|
|
24
|
+
if (!versionsMetadata.versions) {
|
|
25
|
+
tools.logSuccess(`No historical version found : version = ${version}`);
|
|
26
|
+
version += '.0';
|
|
27
|
+
|
|
28
|
+
} else {
|
|
29
|
+
// check if the root version already exsists
|
|
30
|
+
const prevVersions = versionsMetadata.versions.filter((v) => {
|
|
31
|
+
return v.name.indexOf(version) > -1;
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
// do the increment over the last version found having the same root version
|
|
35
|
+
if (prevVersions.length) {
|
|
36
|
+
const lastVersion = prevVersions[prevVersions.length - 1];
|
|
37
|
+
|
|
38
|
+
if (lastVersion) {
|
|
39
|
+
tools.logInfo(`Version already found [${lastVersion.name}]`);
|
|
40
|
+
version = semver.inc(lastVersion.name, 'prerelease');
|
|
41
|
+
tools.logSuccess(`Final version : ${version}`);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// if it's a branch new DEV stream release, the snapshot is itialized
|
|
45
|
+
} else {
|
|
46
|
+
version += '.0';
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return version;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const getNewVersionForProd = (versionsMetadata, envsMetadata) => {
|
|
54
|
+
let version;
|
|
55
|
+
|
|
56
|
+
// get the last DEV version from env metadata
|
|
57
|
+
const lastAccVersion = envsMetadata['ACC'].version;
|
|
58
|
+
|
|
59
|
+
tools.logInfo(`Fetched last version from ACC : ${lastAccVersion}`);
|
|
60
|
+
|
|
61
|
+
// coerce the version (X.Y.Z-INT.n will generate : X.Y.Z)
|
|
62
|
+
const rootVersion = semver.coerce(lastAccVersion).raw;
|
|
63
|
+
const tempVersion = rootVersion.split('.');
|
|
64
|
+
const rootVersionMinor = `${tempVersion[0]}.${tempVersion[1]}`;
|
|
65
|
+
|
|
66
|
+
// check if the root version already exists
|
|
67
|
+
const prevVersions = versionsMetadata.versions.filter((v) => {
|
|
68
|
+
return v.name.indexOf(rootVersionMinor) > -1 && v.envTarget === 'PROD';
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
if (prevVersions.length) {
|
|
72
|
+
const lastVersion = prevVersions[prevVersions.length - 1];
|
|
73
|
+
|
|
74
|
+
tools.logInfo(`Version already found [${lastVersion.name}]`);
|
|
75
|
+
version = semver.inc(lastVersion.name, 'patch');
|
|
76
|
+
tools.logInfo(`Incremented version : ${version}`);
|
|
77
|
+
|
|
78
|
+
} else {
|
|
79
|
+
version = rootVersion;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
tools.logSuccess(`Final version : ${version}`);
|
|
83
|
+
|
|
84
|
+
return version;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
const getNewVersionForEnv = (versionsMetadata, envsMetadata, rootEnv, envTarget) => {
|
|
89
|
+
let version;
|
|
90
|
+
|
|
91
|
+
tools.logInfo(`Fetching version from rootEnv: ${rootEnv} for target: ${envTarget}`);
|
|
92
|
+
|
|
93
|
+
// check if envMetadata contains data for the rootEnv
|
|
94
|
+
if (!envsMetadata[rootEnv]) {
|
|
95
|
+
throw new Error(`No metadata found for rootEnv: ${rootEnv} for envTarget build: ${envTarget}`);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// get the last DEV version from env metadata
|
|
99
|
+
const lastRootEnvVersion = envsMetadata[rootEnv].version;
|
|
100
|
+
|
|
101
|
+
tools.logInfo(`Fetched last version from ${rootEnv} : ${lastRootEnvVersion}`);
|
|
102
|
+
|
|
103
|
+
// coerce the version (X.Y.Z-SNAPSHOT will generate : X.Y.Z)
|
|
104
|
+
const rootVersion = semver.coerce(lastRootEnvVersion).raw;
|
|
105
|
+
|
|
106
|
+
// check if the root version already exists
|
|
107
|
+
const prevVersions = versionsMetadata.versions.filter((v) => {
|
|
108
|
+
return v.name.indexOf(rootVersion) > -1 && v.envTarget === envTarget;
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
if (prevVersions.length) {
|
|
112
|
+
const lastVersion = prevVersions[prevVersions.length - 1];
|
|
113
|
+
|
|
114
|
+
tools.logInfo(`Version already found [${lastVersion.name}]`);
|
|
115
|
+
version = semver.inc(lastVersion.name, 'prerelease');
|
|
116
|
+
tools.logInfo(`Incremented version : ${version}`);
|
|
117
|
+
|
|
118
|
+
} else {
|
|
119
|
+
version = rootVersion + '-' + envTarget + '.0';
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
tools.logSuccess(`Final version : ${version}`);
|
|
123
|
+
|
|
124
|
+
return version;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
module.exports.getNewVersionDefault = (envTarget, versionsMetadata, envsMetadata) => {
|
|
131
|
+
tools.logInfo(`Retrieve version for ${envTarget}`);
|
|
132
|
+
|
|
133
|
+
return Promise.resolve()
|
|
134
|
+
.then(() => {
|
|
135
|
+
let version;
|
|
136
|
+
|
|
137
|
+
// =====================================================================
|
|
138
|
+
// DEV target : format : X.Y.Z-SNAPSHOT.n
|
|
139
|
+
// - where X.Y.Z is last INT release next MAJOR version
|
|
140
|
+
// =====================================================================
|
|
141
|
+
|
|
142
|
+
if (envTarget === 'DEV') {
|
|
143
|
+
version = getNewVersionForDev(versionsMetadata, envsMetadata, 'INT');
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
// =====================================================================
|
|
148
|
+
// TST target : format : X.Y.Z-TST.n
|
|
149
|
+
// - where X.Y.Z is the last root version of DEV env target
|
|
150
|
+
// =====================================================================
|
|
151
|
+
|
|
152
|
+
if (envTarget === 'TST') {
|
|
153
|
+
version = getNewVersionForEnv(versionsMetadata, envsMetadata, 'DEV', 'TST');
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
// =====================================================================
|
|
158
|
+
// INT target : format : X.Y.Z-INT.n
|
|
159
|
+
// - where X.Y.Z is the last root version of TST env target
|
|
160
|
+
// =====================================================================
|
|
161
|
+
|
|
162
|
+
if (envTarget === 'INT') {
|
|
163
|
+
version = getNewVersionForEnv(versionsMetadata, envsMetadata, 'TST', 'INT');
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
// =====================================================================
|
|
168
|
+
// ACC target : format : X.Y.Z-envTarget.n
|
|
169
|
+
// - where X.Y.Z is the last root version of INT env target
|
|
170
|
+
// =====================================================================
|
|
171
|
+
|
|
172
|
+
if (envTarget === 'ACC') {
|
|
173
|
+
version = getNewVersionForEnv(versionsMetadata, envsMetadata, 'INT', 'ACC');
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// =====================================================================
|
|
177
|
+
// DLT targets : format : X.Y.Z-envTarget.n
|
|
178
|
+
// - where X.Y.Z is the last root version of ACC env target
|
|
179
|
+
// =====================================================================
|
|
180
|
+
|
|
181
|
+
if (envTarget === 'DLT') {
|
|
182
|
+
version = getNewVersionForEnv(versionsMetadata, envsMetadata, 'ACC', 'DLT');
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// =====================================================================
|
|
186
|
+
// TRN targets : format : X.Y.Z-envTarget.n
|
|
187
|
+
// - where X.Y.Z is the last root version of PROD env target
|
|
188
|
+
// =====================================================================
|
|
189
|
+
|
|
190
|
+
if (envTarget === 'TRN') {
|
|
191
|
+
version = getNewVersionForEnv(versionsMetadata, envsMetadata, 'ACC', 'TRN');
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// =====================================================================
|
|
195
|
+
// FOR PROD : format X.Y.Z(+1)
|
|
196
|
+
// - where X.Y.Z is the last version of PROD with the same INT root
|
|
197
|
+
// =====================================================================
|
|
198
|
+
|
|
199
|
+
if (envTarget === 'PROD') {
|
|
200
|
+
version = getNewVersionForProd(versionsMetadata, envsMetadata);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
// Check if version has been found, it can never be empty
|
|
204
|
+
if (!version) {
|
|
205
|
+
throw new Error(`Unable to generate version for ${envTarget}`);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
return version;
|
|
209
|
+
})
|
|
210
|
+
|
|
211
|
+
.catch((e) => {
|
|
212
|
+
throw e;
|
|
213
|
+
})
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
module.exports.getNewVersionDTAP = (envTarget, versionsMetadata, envsMetadata) => {
|
|
219
|
+
tools.logInfo(`Retrieve version for ${envTarget}`);
|
|
220
|
+
|
|
221
|
+
return Promise.resolve()
|
|
222
|
+
.then(() => {
|
|
223
|
+
let version;
|
|
224
|
+
|
|
225
|
+
// =====================================================================
|
|
226
|
+
// DEV target : format : X.Y.Z-SNAPSHOT.n
|
|
227
|
+
// - where X.Y.Z is last INT release next MAJOR version
|
|
228
|
+
// =====================================================================
|
|
229
|
+
|
|
230
|
+
if (envTarget === 'DEV') {
|
|
231
|
+
version = getNewVersionForDev(versionsMetadata, envsMetadata, 'TST');
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
// =====================================================================
|
|
236
|
+
// TST target : format : X.Y.Z-TST.n
|
|
237
|
+
// - where X.Y.Z is the last root version of DEV env target
|
|
238
|
+
// =====================================================================
|
|
239
|
+
|
|
240
|
+
if (envTarget === 'TST') {
|
|
241
|
+
version = getNewVersionForEnv(versionsMetadata, envsMetadata, 'DEV', 'TST');
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
// =====================================================================
|
|
246
|
+
// ACC target : format : X.Y.Z-envTarget.n
|
|
247
|
+
// - where X.Y.Z is the last root version of INT env target
|
|
248
|
+
// =====================================================================
|
|
249
|
+
|
|
250
|
+
if (envTarget === 'ACC') {
|
|
251
|
+
version = getNewVersionForEnv(versionsMetadata, envsMetadata, 'TST', 'ACC');
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
// =====================================================================
|
|
256
|
+
// FOR PROD : format X.Y.Z(+1)
|
|
257
|
+
// - where X.Y.Z is the last version of PROD with the same INT root
|
|
258
|
+
// =====================================================================
|
|
259
|
+
|
|
260
|
+
if (envTarget === 'PROD') {
|
|
261
|
+
version = getNewVersionForProd(versionsMetadata, envsMetadata);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
// Check if version has been found, it can never be empty
|
|
265
|
+
if (!version) {
|
|
266
|
+
throw new Error(`Unable to generate version for ${envTarget}`);
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
return version;
|
|
270
|
+
})
|
|
271
|
+
|
|
272
|
+
.catch((e) => {
|
|
273
|
+
throw e;
|
|
274
|
+
})
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// externals
|
|
4
|
+
const semver = require('semver');
|
|
5
|
+
const path = require('path');
|
|
6
|
+
const execa = require('execa');
|
|
7
|
+
const fs = require('fs');
|
|
8
|
+
|
|
9
|
+
// local
|
|
10
|
+
const tools = require('../../utils/tools');
|
|
11
|
+
const templateUtils = require('../templates/template-utils');
|
|
12
|
+
const configUtils = require('../config/config-utils');
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
// constants
|
|
16
|
+
const { dryRun, nexusUser, nexusPassword } = tools.getArgs();
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
const writePackageJsonCore = (newVersion, folder, isSnapshot, isNextBranch, isSupportBranch, isHotfixBranch) => {
|
|
20
|
+
return Promise.resolve()
|
|
21
|
+
.then(() => {
|
|
22
|
+
const pkgJsonFile = path.resolve(folder, 'package.json');
|
|
23
|
+
const pkgJson = require(pkgJsonFile);
|
|
24
|
+
|
|
25
|
+
let tag;
|
|
26
|
+
|
|
27
|
+
if (isSnapshot) {
|
|
28
|
+
tag = 'snapshot';
|
|
29
|
+
} else if (isNextBranch) {
|
|
30
|
+
tag = 'next';
|
|
31
|
+
} else if (isSupportBranch) {
|
|
32
|
+
tag = 'prev';
|
|
33
|
+
} else {
|
|
34
|
+
tag = 'latest';
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
pkgJson.version = newVersion;
|
|
38
|
+
pkgJson.tag = tag;
|
|
39
|
+
|
|
40
|
+
tools.logInfo(`Updating package version : ${newVersion} / tag: ${tag} for ${pkgJsonFile}`);
|
|
41
|
+
|
|
42
|
+
if (!dryRun) {
|
|
43
|
+
tools.writeJsonFileSync(pkgJsonFile, pkgJson);
|
|
44
|
+
}
|
|
45
|
+
})
|
|
46
|
+
.catch((e) => {
|
|
47
|
+
throw e;
|
|
48
|
+
})
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const writePackageJson = (pkg, newVersion, isSnapshot, isNextBranch, isSupportBranch, isHotfixBranch) => {
|
|
52
|
+
return Promise.resolve()
|
|
53
|
+
.then(() => {
|
|
54
|
+
tools.logTitle('updating package version');
|
|
55
|
+
|
|
56
|
+
if (!pkg.parent) {
|
|
57
|
+
return Promise.resolve()
|
|
58
|
+
.then(() => {
|
|
59
|
+
return writePackageJsonCore(newVersion, pkg.paths.pkgDirectory, isSnapshot, isNextBranch, isSupportBranch, isHotfixBranch);
|
|
60
|
+
})
|
|
61
|
+
.then(() => {
|
|
62
|
+
if (!pkg.element && !pkg.config) {
|
|
63
|
+
return writePackageJsonCore(newVersion, pkg.paths.pkgPublish, isSnapshot, isNextBranch, isSupportBranch, isHotfixBranch);
|
|
64
|
+
}
|
|
65
|
+
})
|
|
66
|
+
.catch((e) => {
|
|
67
|
+
throw e;
|
|
68
|
+
})
|
|
69
|
+
|
|
70
|
+
} else {
|
|
71
|
+
return Promise.resolve()
|
|
72
|
+
.then(() => {
|
|
73
|
+
return writePackageJsonCore(newVersion, pkg.paths.pkgDirectory, isSnapshot, isNextBranch, isSupportBranch, isHotfixBranch);
|
|
74
|
+
})
|
|
75
|
+
.then(() => {
|
|
76
|
+
let linkedPackages = Object.keys(pkg.packages)
|
|
77
|
+
.map(p => {
|
|
78
|
+
const pkg = configUtils.packages.getPackage(p);
|
|
79
|
+
return pkg;
|
|
80
|
+
})
|
|
81
|
+
|
|
82
|
+
return tools.removeArrayDuplicates(linkedPackages, 'name');
|
|
83
|
+
})
|
|
84
|
+
|
|
85
|
+
.then((linkedPackages) => Promise.resolve().then(() => {
|
|
86
|
+
return linkedPackages.reduce((promise, pkg) => {
|
|
87
|
+
return promise.then(() => (
|
|
88
|
+
writePackageJsonCore(newVersion, pkg.paths.pkgPublish, isSnapshot, isNextBranch, isSupportBranch, isHotfixBranch)
|
|
89
|
+
));
|
|
90
|
+
}, Promise.resolve());
|
|
91
|
+
}))
|
|
92
|
+
|
|
93
|
+
.catch((e) => {
|
|
94
|
+
throw e;
|
|
95
|
+
})
|
|
96
|
+
}
|
|
97
|
+
})
|
|
98
|
+
.then(() => {
|
|
99
|
+
tools.logSuccess();
|
|
100
|
+
})
|
|
101
|
+
.catch((e) => {
|
|
102
|
+
throw e;
|
|
103
|
+
})
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
const writePomXml = (pkg, newVersion, isSnapshot, isForceTimestamp = true) => {
|
|
109
|
+
|
|
110
|
+
tools.logTitle(`updating project pom.xml version: ${newVersion}`);
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
if (dryRun) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
return Promise.resolve()
|
|
118
|
+
.then(() => {
|
|
119
|
+
return templateUtils.generateMavenSettings(nexusUser, nexusPassword);
|
|
120
|
+
})
|
|
121
|
+
|
|
122
|
+
.then((mavenSettingsFile) => {
|
|
123
|
+
|
|
124
|
+
tools.logInfo(`Executing mvn versions on : ${pkg.paths.pkgDirectory}`);
|
|
125
|
+
|
|
126
|
+
execa.shellSync('mvn versions:set -T1 -DnewVersion=' + newVersion + ' -s ' + mavenSettingsFile, { cwd: pkg.paths.pkgDirectory });
|
|
127
|
+
execa.shellSync('mvn versions:commit -T1' + ' -s ' + mavenSettingsFile, { cwd: pkg.paths.pkgDirectory });
|
|
128
|
+
|
|
129
|
+
if (isForceTimestamp) {
|
|
130
|
+
// timestamp file is forced to have at least one file to commit, as snapshot release
|
|
131
|
+
// for backend can keep the same version until its latest
|
|
132
|
+
const tsversionFile = path.resolve(pkg.paths.pkgDirectory, '.tsversion');
|
|
133
|
+
fs.writeFileSync(tsversionFile, Date.now());
|
|
134
|
+
|
|
135
|
+
const versionFile = path.resolve(pkg.paths.pkgDirectory, '.version.properties');
|
|
136
|
+
fs.writeFileSync(versionFile, newVersion);
|
|
137
|
+
}
|
|
138
|
+
})
|
|
139
|
+
.then(() => {
|
|
140
|
+
tools.logSuccess();
|
|
141
|
+
})
|
|
142
|
+
.catch((e) => {
|
|
143
|
+
throw e;
|
|
144
|
+
})
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
module.exports.updateVersion = (pkg, newVersion, isSnapshot, isNextBranch, isSupportBranch, isHotfixBranch) => {
|
|
150
|
+
if (pkg.backend) {
|
|
151
|
+
return writePomXml(pkg, newVersion, isSnapshot);
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
return writePackageJson(pkg, newVersion, isSnapshot, isNextBranch, isSupportBranch, isHotfixBranch);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// externals
|
|
4
|
+
const semver = require('semver');
|
|
5
|
+
const path = require('path');
|
|
6
|
+
|
|
7
|
+
// local
|
|
8
|
+
const tools = require('../../utils/tools');
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
const getCurrentVersion = (pkg) => {
|
|
12
|
+
return Promise.resolve()
|
|
13
|
+
.then(() => {
|
|
14
|
+
let currentVersion;
|
|
15
|
+
|
|
16
|
+
tools.logTitle('Extracting current version');
|
|
17
|
+
|
|
18
|
+
if (pkg.backend) {
|
|
19
|
+
// if nodejs backend, explicitely declared
|
|
20
|
+
if (pkg.build && pkg.build.nodejs) {
|
|
21
|
+
tools.logInfo('UI package => extracting from package.json');
|
|
22
|
+
|
|
23
|
+
const pathPkgJson = path.resolve(pkg.paths.pkgDirectory, 'package.json');
|
|
24
|
+
const pkgJson = require(pathPkgJson);
|
|
25
|
+
currentVersion = pkgJson.version;
|
|
26
|
+
|
|
27
|
+
// by default maven java backend is taken into account
|
|
28
|
+
} else {
|
|
29
|
+
tools.logInfo('Backend => extracting pom.xml');
|
|
30
|
+
const xmlContent = tools.getXMLJsContent(path.join(pkg.paths.pkgDirectory, 'pom.xml'));
|
|
31
|
+
|
|
32
|
+
tools.logInfo('Content found:');
|
|
33
|
+
console.log(xmlContent);
|
|
34
|
+
|
|
35
|
+
currentVersion = xmlContent.project.version.toString();
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
} else {
|
|
39
|
+
tools.logInfo('UI package => extracting from package.json');
|
|
40
|
+
|
|
41
|
+
const pathPkgJson = path.resolve(pkg.paths.pkgDirectory, 'package.json');
|
|
42
|
+
const pkgJson = require(pathPkgJson);
|
|
43
|
+
currentVersion = pkgJson.version;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
tools.logSuccess('Current version found : ' + currentVersion);
|
|
47
|
+
return currentVersion;
|
|
48
|
+
})
|
|
49
|
+
.catch((e) => {
|
|
50
|
+
throw e;
|
|
51
|
+
})
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
const getReleaseType = (commitsMetadata) => {
|
|
56
|
+
tools.logInfo('Getting release type based on commits metadata parsed from last tag');
|
|
57
|
+
|
|
58
|
+
const RELEASE_TYPES = ['major', 'minor', 'patch'];
|
|
59
|
+
|
|
60
|
+
let level = 2;
|
|
61
|
+
let breakings = 0;
|
|
62
|
+
let features = 0;
|
|
63
|
+
|
|
64
|
+
commitsMetadata.forEach((commit) => {
|
|
65
|
+
if (commit.breakingChange) {
|
|
66
|
+
breakings += commit.body;
|
|
67
|
+
level = 1; // no major bump on "breaking changes"
|
|
68
|
+
} else if (commit.type === 'feat') {
|
|
69
|
+
features += 1;
|
|
70
|
+
if (level === 2) {
|
|
71
|
+
level = 1;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
return {
|
|
77
|
+
level: level,
|
|
78
|
+
reason: 'There are ' + breakings + ' BREAKING CHANGES and ' + features + ' features',
|
|
79
|
+
releaseType: RELEASE_TYPES[level]
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
// PUBLIC METHODS
|
|
85
|
+
|
|
86
|
+
module.exports.getNewVersion = (
|
|
87
|
+
pkg,
|
|
88
|
+
commits,
|
|
89
|
+
isSnapshot, isNextBranch, isSupportBranch, isHotfixBranch
|
|
90
|
+
) => {
|
|
91
|
+
return Promise.resolve()
|
|
92
|
+
.then(() => {
|
|
93
|
+
return getCurrentVersion(pkg);
|
|
94
|
+
})
|
|
95
|
+
|
|
96
|
+
.then((currentVersion) => {
|
|
97
|
+
tools.logTitle('Extracting recommended version');
|
|
98
|
+
|
|
99
|
+
tools.logInfo(`Current version found : ${currentVersion}`);
|
|
100
|
+
|
|
101
|
+
const release = getReleaseType(commits);
|
|
102
|
+
tools.logInfo('release info found : ' + JSON.stringify(release));
|
|
103
|
+
|
|
104
|
+
let newVersion = '1.0.0';
|
|
105
|
+
|
|
106
|
+
if (isNextBranch) {
|
|
107
|
+
newVersion = semver.inc(currentVersion, 'prerelease');
|
|
108
|
+
} else {
|
|
109
|
+
newVersion = semver.valid(release.releaseType) || semver.inc(currentVersion, release.releaseType)
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
tools.logInfo('probable new version : ' + newVersion);
|
|
113
|
+
|
|
114
|
+
if (isSnapshot) {
|
|
115
|
+
if (pkg.backend) {
|
|
116
|
+
if (pkg.build && pkg.build.nodejs) {
|
|
117
|
+
newVersion += '-snapshot-' + Date.now();
|
|
118
|
+
} else {
|
|
119
|
+
newVersion += '-SNAPSHOT';
|
|
120
|
+
}
|
|
121
|
+
} else {
|
|
122
|
+
newVersion += '-snapshot-' + Date.now();
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
} else if (isSupportBranch) {
|
|
126
|
+
if (pkg.backend) {
|
|
127
|
+
newVersion = semver.inc(currentVersion, 'prerelease');
|
|
128
|
+
}
|
|
129
|
+
} else if (isHotfixBranch) {
|
|
130
|
+
newVersion = semver.inc(currentVersion, 'prerelease');
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
tools.logSuccess('new version generated : ' + newVersion);
|
|
134
|
+
|
|
135
|
+
return newVersion;
|
|
136
|
+
})
|
|
137
|
+
.catch((e) => {
|
|
138
|
+
throw e;
|
|
139
|
+
})
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// externals
|
|
4
|
+
const semver = require('semver');
|
|
5
|
+
const path = require('path');
|
|
6
|
+
const execa = require('execa');
|
|
7
|
+
const fs = require('fs');
|
|
8
|
+
|
|
9
|
+
// local
|
|
10
|
+
const tools = require('../../utils/tools');
|
|
11
|
+
const metadataUtils = require('../metadata/metadata-utils');
|
|
12
|
+
|
|
13
|
+
// inner modules
|
|
14
|
+
const innerCommon = require('./common');
|
|
15
|
+
|
|
16
|
+
// constants
|
|
17
|
+
const { dryRun } = tools.getArgs();
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
// for env-based build, we take the latest TST release version as the base
|
|
21
|
+
module.exports.getNewVersion = (pkg, envTarget) => {
|
|
22
|
+
let versionsMetadata;
|
|
23
|
+
let envsMetadata;
|
|
24
|
+
|
|
25
|
+
return Promise.resolve()
|
|
26
|
+
// fetch versions history and store
|
|
27
|
+
.then(() => {
|
|
28
|
+
return metadataUtils.packageVersions.getMetadata(pkg);
|
|
29
|
+
})
|
|
30
|
+
.then((metadata) => {
|
|
31
|
+
versionsMetadata = metadata;
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
// fetch envs metadata and store
|
|
35
|
+
.then(() => {
|
|
36
|
+
return metadataUtils.packageEnvs.getMetadata(pkg);
|
|
37
|
+
})
|
|
38
|
+
.then((metadata) => {
|
|
39
|
+
envsMetadata = metadata;
|
|
40
|
+
})
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
// generating new version based on the env target and the envs cycle type
|
|
44
|
+
.then(() => {
|
|
45
|
+
return innerCommon.getNewVersionDefault(envTarget, versionsMetadata, envsMetadata);
|
|
46
|
+
})
|
|
47
|
+
|
|
48
|
+
.catch((e) => {
|
|
49
|
+
throw e;
|
|
50
|
+
})
|
|
51
|
+
}
|