From a8995add982ce1defc685a34deafeb1d098f5dfc Mon Sep 17 00:00:00 2001 From: David Goss Date: Thu, 9 Dec 2021 14:41:43 +0000 Subject: [PATCH 1/9] install lib --- package-lock.json | 28 +++++++++++----------------- package.json | 2 +- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/package-lock.json b/package-lock.json index de5e9b1a8..fb37eb539 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.7.0", - "@cucumber/create-meta": "6.0.4", + "@cucumber/ci-environment": "7.0.1", "@cucumber/cucumber-expressions": "^14.0.0", "@cucumber/gherkin": "^22.0.0", "@cucumber/gherkin-streams": "^4.0.0", @@ -531,20 +531,17 @@ "node": ">=12" } }, + "node_modules/@cucumber/ci-environment": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@cucumber/ci-environment/-/ci-environment-7.0.1.tgz", + "integrity": "sha512-VtB6l7gCmYDT6yw+LrA5nFkTqMH5mrFIB512YZa162Slg80qZi9PNHxJRniTdXjTjuttBfzcMl1E6sb35XaXlQ==" + }, "node_modules/@cucumber/compatibility-kit": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/@cucumber/compatibility-kit/-/compatibility-kit-9.1.2.tgz", "integrity": "sha512-oB01JROFcwFfbqMV+jtJtj8bWU6mrLPUomuki/f9TvXsHMjYgqkBopeJqjcWWtgIfA7Y2CZEnTMWdLxoyBd4RA==", "dev": true }, - "node_modules/@cucumber/create-meta": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@cucumber/create-meta/-/create-meta-6.0.4.tgz", - "integrity": "sha512-VnSnd0PdhOIBcjasRcFcpCKxL9nw5ApZDXZ8Ae96ac5XwA/R9+xbMQxZ8rGGyCI5bK+PZhlhEbPgmTN9nGggow==", - "dependencies": { - "@cucumber/messages": "^17.1.1" - } - }, "node_modules/@cucumber/cucumber-expressions": { "version": "14.0.0", "resolved": "https://registry.npmjs.org/@cucumber/cucumber-expressions/-/cucumber-expressions-14.0.0.tgz", @@ -7331,20 +7328,17 @@ "@cspotcode/source-map-consumer": "0.8.0" } }, + "@cucumber/ci-environment": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@cucumber/ci-environment/-/ci-environment-7.0.1.tgz", + "integrity": "sha512-VtB6l7gCmYDT6yw+LrA5nFkTqMH5mrFIB512YZa162Slg80qZi9PNHxJRniTdXjTjuttBfzcMl1E6sb35XaXlQ==" + }, "@cucumber/compatibility-kit": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/@cucumber/compatibility-kit/-/compatibility-kit-9.1.2.tgz", "integrity": "sha512-oB01JROFcwFfbqMV+jtJtj8bWU6mrLPUomuki/f9TvXsHMjYgqkBopeJqjcWWtgIfA7Y2CZEnTMWdLxoyBd4RA==", "dev": true }, - "@cucumber/create-meta": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@cucumber/create-meta/-/create-meta-6.0.4.tgz", - "integrity": "sha512-VnSnd0PdhOIBcjasRcFcpCKxL9nw5ApZDXZ8Ae96ac5XwA/R9+xbMQxZ8rGGyCI5bK+PZhlhEbPgmTN9nGggow==", - "requires": { - "@cucumber/messages": "^17.1.1" - } - }, "@cucumber/cucumber-expressions": { "version": "14.0.0", "resolved": "https://registry.npmjs.org/@cucumber/cucumber-expressions/-/cucumber-expressions-14.0.0.tgz", diff --git a/package.json b/package.json index d7f52ca2c..5c2c076bc 100644 --- a/package.json +++ b/package.json @@ -183,7 +183,7 @@ }, "dependencies": { "@cspotcode/source-map-support": "^0.7.0", - "@cucumber/create-meta": "6.0.4", + "@cucumber/ci-environment": "7.0.1", "@cucumber/cucumber-expressions": "^14.0.0", "@cucumber/gherkin": "^22.0.0", "@cucumber/gherkin-streams": "^4.0.0", From 57a2e34e0ee53cba87ebf681428cc5fc3b7f3cb5 Mon Sep 17 00:00:00 2001 From: David Goss Date: Thu, 9 Dec 2021 14:56:32 +0000 Subject: [PATCH 2/9] WIP --- src/cli/helpers.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/cli/helpers.ts b/src/cli/helpers.ts index 0967a52fa..51e4084b7 100644 --- a/src/cli/helpers.ts +++ b/src/cli/helpers.ts @@ -9,7 +9,7 @@ import OptionSplitter from './option_splitter' import { Readable } from 'stream' import { IdGenerator } from '@cucumber/messages' import * as messages from '@cucumber/messages' -import createMeta from '@cucumber/create-meta' +import detectCiEnvironment from '@cucumber/ci-environment' import { ISupportCodeLibrary } from '../support_code_library_builder/types' import TestCaseHookDefinition from '../models/test_case_hook_definition' import TestRunHookDefinition from '../models/test_run_hook_definition' @@ -119,8 +119,23 @@ export async function emitMetaMessage( ): Promise { // eslint-disable-next-line @typescript-eslint/no-var-requires const { version } = require('../../package.json') + const ciEnvironment = detectCiEnvironment(env) + const meta: messages.Meta = { + protocolVersion: messages.version, + implementation: { + version, + name: 'cucumber-js', + }, + ci: { + ...ciEnvironment, + git: { + ...ciEnvironment.git, + remote: ciEnvironment.git.remote, + }, + }, + } eventBroadcaster.emit('envelope', { - meta: createMeta('cucumber-js', version, env), + meta, }) } From 944e933f7c77c38d965ade1a5e829818048cd930 Mon Sep 17 00:00:00 2001 From: David Goss Date: Thu, 9 Dec 2021 15:07:07 +0000 Subject: [PATCH 3/9] bump other cucumber deps --- package-lock.json | 12 ++++++------ package.json | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index fb37eb539..e41a9a488 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,12 +11,12 @@ "dependencies": { "@cspotcode/source-map-support": "^0.7.0", "@cucumber/ci-environment": "7.0.1", - "@cucumber/cucumber-expressions": "^14.0.0", - "@cucumber/gherkin": "^22.0.0", - "@cucumber/gherkin-streams": "^4.0.0", - "@cucumber/html-formatter": "^17.0.0", - "@cucumber/messages": "^17.1.1", - "@cucumber/tag-expressions": "^4.1.0", + "@cucumber/cucumber-expressions": "14.0.0", + "@cucumber/gherkin": "22.0.0", + "@cucumber/gherkin-streams": "4.0.0", + "@cucumber/html-formatter": "17.0.0", + "@cucumber/messages": "17.1.1", + "@cucumber/tag-expressions": "4.1.0", "assertion-error-formatter": "^3.0.0", "capital-case": "^1.0.4", "cli-table3": "^0.6.0", diff --git a/package.json b/package.json index 5c2c076bc..26bd16b7b 100644 --- a/package.json +++ b/package.json @@ -184,12 +184,12 @@ "dependencies": { "@cspotcode/source-map-support": "^0.7.0", "@cucumber/ci-environment": "7.0.1", - "@cucumber/cucumber-expressions": "^14.0.0", - "@cucumber/gherkin": "^22.0.0", - "@cucumber/gherkin-streams": "^4.0.0", - "@cucumber/html-formatter": "^17.0.0", - "@cucumber/messages": "^17.1.1", - "@cucumber/tag-expressions": "^4.1.0", + "@cucumber/cucumber-expressions": "14.0.0", + "@cucumber/gherkin": "22.0.0", + "@cucumber/gherkin-streams": "4.0.0", + "@cucumber/html-formatter": "17.0.0", + "@cucumber/messages": "17.1.1", + "@cucumber/tag-expressions": "4.1.0", "assertion-error-formatter": "^3.0.0", "capital-case": "^1.0.4", "cli-table3": "^0.6.0", From adfd2f316b3d7425229591ab23e4fc1e09cca2c2 Mon Sep 17 00:00:00 2001 From: David Goss Date: Thu, 9 Dec 2021 15:28:48 +0000 Subject: [PATCH 4/9] finish impl --- src/cli/helpers.ts | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/src/cli/helpers.ts b/src/cli/helpers.ts index 51e4084b7..7f5c09b4c 100644 --- a/src/cli/helpers.ts +++ b/src/cli/helpers.ts @@ -7,6 +7,7 @@ import { EventDataCollector } from '../formatter/helpers' import { doesHaveValue } from '../value_checker' import OptionSplitter from './option_splitter' import { Readable } from 'stream' +import os from 'os' import { IdGenerator } from '@cucumber/messages' import * as messages from '@cucumber/messages' import detectCiEnvironment from '@cucumber/ci-environment' @@ -126,13 +127,27 @@ export async function emitMetaMessage( version, name: 'cucumber-js', }, - ci: { - ...ciEnvironment, - git: { - ...ciEnvironment.git, - remote: ciEnvironment.git.remote, - }, + cpu: { + name: os.arch(), + }, + os: { + name: os.platform(), + version: os.release(), + }, + runtime: { + name: 'node.js', + version: process.versions.node, }, + ci: ciEnvironment + ? { + ...ciEnvironment, + git: { + ...ciEnvironment.git, + remote: ciEnvironment.git.remote ?? '', + revision: ciEnvironment.git.revision ?? '', + }, + } + : null, } eventBroadcaster.emit('envelope', { meta, From 02a99326d62facd1be83f80800c6217f7cf8bb39 Mon Sep 17 00:00:00 2001 From: David Goss Date: Thu, 9 Dec 2021 15:31:22 +0000 Subject: [PATCH 5/9] add changelog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 669bf5bec..be9492ea0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/). Please see [CONTRIBUTING.md](https://github.com/cucumber/cucumber/blob/master/CONTRIBUTING.md) on how to contribute to Cucumber. ## [Unreleased] +### Changed +- Switched to new `@cucumber/ci-environment` library for CI detection ([#1867](https://github.com/cucumber/cucumber-js/issues/1867)) + ### Fixed - Allows for parentheses in paths for developers working on cucumber's own code ([[#1735](https://github.com/cucumber/cucumber-js/issues/1735)]) - Smoother onboarding for Windows developers ([#1863](https://github.com/cucumber/cucumber-js/pull/1863)) From ed2888663f8d24cc1da921294972f008eaf81af4 Mon Sep 17 00:00:00 2001 From: David Goss Date: Wed, 15 Dec 2021 20:45:58 +0000 Subject: [PATCH 6/9] redundant comment --- src/cli/helpers.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/cli/helpers.ts b/src/cli/helpers.ts index abef007f6..6618f2563 100644 --- a/src/cli/helpers.ts +++ b/src/cli/helpers.ts @@ -119,7 +119,6 @@ export async function emitMetaMessage( eventBroadcaster: EventEmitter, env: NodeJS.ProcessEnv ): Promise { - // eslint-disable-next-line @typescript-eslint/no-var-requires const ciEnvironment = detectCiEnvironment(env) const meta: messages.Meta = { protocolVersion: messages.version, From ca530a70ed8de3884413839d563261c561de3b27 Mon Sep 17 00:00:00 2001 From: David Goss Date: Wed, 15 Dec 2021 20:47:19 +0000 Subject: [PATCH 7/9] update library, simplify mapping --- package-lock.json | 14 +++++++------- package.json | 2 +- src/cli/helpers.ts | 11 +---------- 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5b15f2b08..10a0a7386 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.7.0", - "@cucumber/ci-environment": "7.0.1", + "@cucumber/ci-environment": "8.0.0", "@cucumber/cucumber-expressions": "14.0.0", "@cucumber/gherkin": "22.0.0", "@cucumber/gherkin-streams": "4.0.0", @@ -533,9 +533,9 @@ } }, "node_modules/@cucumber/ci-environment": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@cucumber/ci-environment/-/ci-environment-7.0.1.tgz", - "integrity": "sha512-VtB6l7gCmYDT6yw+LrA5nFkTqMH5mrFIB512YZa162Slg80qZi9PNHxJRniTdXjTjuttBfzcMl1E6sb35XaXlQ==" + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@cucumber/ci-environment/-/ci-environment-8.0.0.tgz", + "integrity": "sha512-YYz/nOYsLOvppKIZzSAzySRObZMbEKGd9w5rCzqiv3A/IPCaJ592kQrLGNXW71HWAT/uqThj9qY16hV2spyDRw==" }, "node_modules/@cucumber/compatibility-kit": { "version": "9.1.2", @@ -7379,9 +7379,9 @@ } }, "@cucumber/ci-environment": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@cucumber/ci-environment/-/ci-environment-7.0.1.tgz", - "integrity": "sha512-VtB6l7gCmYDT6yw+LrA5nFkTqMH5mrFIB512YZa162Slg80qZi9PNHxJRniTdXjTjuttBfzcMl1E6sb35XaXlQ==" + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@cucumber/ci-environment/-/ci-environment-8.0.0.tgz", + "integrity": "sha512-YYz/nOYsLOvppKIZzSAzySRObZMbEKGd9w5rCzqiv3A/IPCaJ592kQrLGNXW71HWAT/uqThj9qY16hV2spyDRw==" }, "@cucumber/compatibility-kit": { "version": "9.1.2", diff --git a/package.json b/package.json index 513bc4077..8ac095b52 100644 --- a/package.json +++ b/package.json @@ -184,7 +184,7 @@ }, "dependencies": { "@cspotcode/source-map-support": "^0.7.0", - "@cucumber/ci-environment": "7.0.1", + "@cucumber/ci-environment": "8.0.0", "@cucumber/cucumber-expressions": "14.0.0", "@cucumber/gherkin": "22.0.0", "@cucumber/gherkin-streams": "4.0.0", diff --git a/src/cli/helpers.ts b/src/cli/helpers.ts index 6618f2563..9694676f4 100644 --- a/src/cli/helpers.ts +++ b/src/cli/helpers.ts @@ -137,16 +137,7 @@ export async function emitMetaMessage( name: 'node.js', version: process.versions.node, }, - ci: ciEnvironment - ? { - ...ciEnvironment, - git: { - ...ciEnvironment.git, - remote: ciEnvironment.git.remote ?? '', - revision: ciEnvironment.git.revision ?? '', - }, - } - : null, + ci: ciEnvironment, } eventBroadcaster.emit('envelope', { meta, From 078b64a594290edcdd148e6169a5f99598578417 Mon Sep 17 00:00:00 2001 From: David Goss Date: Wed, 15 Dec 2021 20:50:24 +0000 Subject: [PATCH 8/9] simplify again --- src/cli/helpers.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/cli/helpers.ts b/src/cli/helpers.ts index 9694676f4..da1598a6e 100644 --- a/src/cli/helpers.ts +++ b/src/cli/helpers.ts @@ -8,8 +8,8 @@ import { doesHaveValue } from '../value_checker' import OptionSplitter from './option_splitter' import { Readable } from 'stream' import os from 'os' -import { IdGenerator } from '@cucumber/messages' import * as messages from '@cucumber/messages' +import { IdGenerator } from '@cucumber/messages' import detectCiEnvironment from '@cucumber/ci-environment' import { ISupportCodeLibrary } from '../support_code_library_builder/types' import TestCaseHookDefinition from '../models/test_case_hook_definition' @@ -119,7 +119,6 @@ export async function emitMetaMessage( eventBroadcaster: EventEmitter, env: NodeJS.ProcessEnv ): Promise { - const ciEnvironment = detectCiEnvironment(env) const meta: messages.Meta = { protocolVersion: messages.version, implementation: { @@ -137,7 +136,7 @@ export async function emitMetaMessage( name: 'node.js', version: process.versions.node, }, - ci: ciEnvironment, + ci: detectCiEnvironment(env), } eventBroadcaster.emit('envelope', { meta, From f3eeb8e12215bc80d733e3b777fb7dfa9ed8cd07 Mon Sep 17 00:00:00 2001 From: David Goss Date: Wed, 15 Dec 2021 20:50:59 +0000 Subject: [PATCH 9/9] update changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7cce4b2b1..190435040 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ Please see [CONTRIBUTING.md](https://github.com/cucumber/cucumber/blob/master/CO ## [Unreleased] ### Changed -- Switched to new `@cucumber/ci-environment` library for CI detection ([#1867](https://github.com/cucumber/cucumber-js/issues/1867)) +- Switched to new `@cucumber/ci-environment` library for CI detection ([#1868](https://github.com/cucumber/cucumber-js/pull/1868)) ### Fixed - Handles spaces in paths for developers working on cucumbers's own code ([#1845](https://github.com/cucumber/cucumber-js/issues/1845))