Cucumber-js: 是时候发布了? `message` 格式化程序在最新版本中不起作用,但在 `master` 上工作

创建于 2020-06-22  ·  14评论  ·  资料来源: cucumber/cucumber-js

你好呀,

不幸的是,在最新版本中, message格式化程序不起作用。 它在master ,这是个好消息。 现在是发布的好时机吗? :)

谢谢💜

fixed-in-7

最有用的评论

@aslakhellesoy我现在正在处理 #1318,它增加了针对 CCK 的验证以及对最新小黄瓜、消息等的更新。只是解决剩余的空白,不长 - 目标是在接下来的几天内完成。 我认为在那之后我们会很好地发布 7.0.0。

我实际上想用javascript CCK 包检查您的意图 - 我注意到它不久前在@cucumber/compatibility-kit下发布到 npm 但有一段时间没有更新。 现在我只是从 monorepo 复制文件以进行工作,但是将 CCK 功能和消息装置作为依赖项似乎是一个很好的方法。

所有14条评论

@sroze - 您是否与任何消费者测试了生成的消息? 如果有,是哪些?

我想确保生成的输出适用于以下内容:

@vincent-psarga - 我们可以更新 cck 以验证它是 monorepo 构建的一部分吗?

在剪切发布之前,应升级以下内容:

  • "cucumber-expressions": "^8.3.0" -> "@cucumber/cucumber-expressions": "^10.2.0"
  • "cucumber-messages": "^8.0.0" -> "@cucumber/messages": "^12.1.1"
  • "cucumber-tag-expressions": "^2.0.3" -> "@cucumber/tag-expressions": "^3.0.0"
  • "gherkin": "^9.0.0" -> "@cucumber/gherkin": "^13.0.0"

如果要在没有这些升级的情况下进行发布,则message格式化程序生成的消息将与cucumber-htmljson-formatter的最新版本以及任何其他依赖于@cucumber/messages最新版本。 这对我认为的任何人都没有用。

@aslakhellesoy我实际上是将它们与我自己的解析器一起使用,将它们集成到自动生成的文档中(在 mkdocs 的插件中),所以我正在使用--format message:output.ndjson并读取该output.ndjson文件。 到目前为止一切顺利,比之前的 JSON 输出要好得多我必须说 👌

@vincent-psarga - 我们可以更新 cck 以验证它是 monorepo 构建的一部分吗?

只是为了确保我正确理解这一点:针对messages的发布运行最新版本的xxx-formatter messages以确保我们不会跳过格式化程序的发布?
这绝对是有道理的。 虽然我不知道这是否应该成为 CCK 的一部分或每个格式化程序的第二个 CI 作业。

@sroze非常酷! 请记住,在@cucumber/messages库中存在一些向后不兼容的更改,从8.0.012.1.1 。 它也已更名。 任何依赖于它的库也必须更新。

其他 Cucumber 实现(JVM/Java 和 Ruby)使用最新版本的消息库,因此您的工具将无法使用它们。

@sroze你有你的项目的链接吗?

@vincent-psarga 我建议我们可以验证cucumber.js 是否符合我们的cck。 我们必须实现步骤定义,使用消息格式化程序运行cucumber.js,然后检查json-formatter 和html-formatter 是否都可以使用这些消息。

我们不是已经在为 Cucumber-ruby 和 Cucumber-jvm 做这件事了吗?

啊好吧,我没有看到我们在cucumber-js回购中(这是检查电话通知时的问题......)。

我想这是可行的,但我不确定我们是否应该在 monorepo 本身中这样做,更多的是在这个存储库中。 对于 ruby​​,我们针对 CCK 运行了两个验证:

  • cucumber-ruby ,它根据最新版本的消息验证黄瓜红宝石主控(但使用json-formatterhtml-formatter的主控)
  • 一个在 monorepo 中完成的,它使用当前的消息主和cucumber-ruby的最新版本。 它必须被禁用,因为受支持的 Cucumber-ruby 消息版本之间存在差异(它可以重新启用,但在下一次消息发布后必须再次禁用)

据我所知,JS 步骤已经实现,用于使用fake-cucumber生成金色 NDJson,所以这部分几乎完成(只有导入可能需要更新)

@aslakhellesoy我现在正在处理 #1318,它增加了针对 CCK 的验证以及对最新小黄瓜、消息等的更新。只是解决剩余的空白,不长 - 目标是在接下来的几天内完成。 我认为在那之后我们会很好地发布 7.0.0。

我实际上想用javascript CCK 包检查您的意图 - 我注意到它不久前在@cucumber/compatibility-kit下发布到 npm 但有一段时间没有更新。 现在我只是从 monorepo 复制文件以进行工作,但是将 CCK 功能和消息装置作为依赖项似乎是一个很好的方法。

谢谢@davidjgoss ,期待能够使用新版本。 在完成此操作时,这是我必须执行的操作才能使用cucumber-jsmaster版本。 主要的挑战是,每次我再次运行npm i时, npm抱怨node_modules/cucumber是一个 Git 存储库。 你知道更好的方法吗? 🤔

diff --git a/package.json b/package.json
index e78cd20..8702cb7 100644
--- a/package.json
+++ b/package.json
@@ -30,7 +30,8 @@
     "typeorm": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js -f src/orm-migratio
ns-config.ts",
     "typeorm:migrate": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js -f src/orm-
migrations-config.ts migration:run",
     "typeorm:revert": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js -f src/orm-m
igrations-config.ts migration:revert",
-    "pod:migrate": "node ./node_modules/typeorm/cli.js -f dist/orm-migrations-config.js migration:run"
+    "pod:migrate": "node ./node_modules/typeorm/cli.js -f dist/orm-migrations-config.js migration:run",
+    "postinstall": "cd node_modules && mv cucumber cucumber-old && git clone https://github.com/cucumber/cucumber-js && mv cucumber-js cucumber && cd cucumber && npm i && npm run build-local && cd ../.."
   },
   "dependencies": {
@@ -86,7 +87,7 @@
     "@typescript-eslint/eslint-plugin": "^3.4.0",
     "@typescript-eslint/parser": "^3.4.0",
     "common-tags": "^1.8.0",
-    "cucumber": "^6.0.5",
+    "cucumber": "cucumber/cucumber-js#master",
     "cucumber-pretty": "^6.0.0",
     "cucumber-tsflow": "^3.2.0",
     "eslint": "^7.3.1",

我可以烦人并追逐以下内容以减少发布吗?

  1. @aslakhellesoy依赖项确实升级了。
  2. @davidjgoss在 CCK 上的(大量)工作已经合并(它正确地识别了testResult -> testStepResult问题)

我们实际上确实发布了@sroze。 试试@cucumber/cucumber - 这是一个预发行版。 有关如何更新,请参阅迁移指南

哦,太好了,我试试,谢谢! 不知道因为没有推标签🙃

感谢@sroze 的提醒- 我确实忘记推送标签了。 现在好了。

对这样的软件包有什么想法可以帮助更多人发现新版本吗?

7.0.0 现已发布,请参阅变更日志以获取迁移说明。 谢谢!

此页面是否有帮助?
0 / 5 - 0 等级