Cucumber-js: Zeit für eine Freigabe? `message` formatter funktioniert nicht in der neuesten Version, aber funktioniert auf `master`

Erstellt am 22. Juni 2020  ·  14Kommentare  ·  Quelle: cucumber/cucumber-js

Hi,

In der neuesten Version funktioniert das Formatierungsprogramm message leider nicht. Es tut in master , was großartige Neuigkeiten sind. Wäre es ein guter Zeitpunkt für eine Veröffentlichung? :)

Danke 💜

fixed-in-7

Hilfreichster Kommentar

@aslakhellesoy Ich arbeite gerade an #1318, das eine Validierung gegen CCK und Updates für die neuesten Gurken, Nachrichten usw.

Ich wollte Ihre Absicht mit dem Javascript-CCK-Paket überprüfen - ich habe bemerkt, dass es vor einiger Zeit unter @cucumber/compatibility-kit in npm veröffentlicht wurde, aber seit einiger Zeit nicht mehr aktualisiert wurde. Im Moment kopiere ich nur Dateien aus dem Monorepo, um dagegen zu arbeiten, aber die CCK-Funktionen und Nachrichten-Fixtures als Abhängigkeit zu haben, scheint eine gute Möglichkeit zu sein, dies zu tun.

Alle 14 Kommentare

Hallo @sroze - hast du die generierten Nachrichten mit irgendwelchen Verbrauchern getestet? Wenn ja, welche?

Ich möchte sicherstellen, dass die generierte Ausgabe mit Folgendem funktioniert:

@vincent-psarga - können wir das cck aktualisieren, um dies als Teil des Monorepo-Builds zu validieren?

Folgendes sollte vor dem Schneiden einer Version aktualisiert werden:

  • "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"

Wenn eine Veröffentlichung ohne diese Upgrades erfolgen würde, wären die vom message Formatierer erzeugten Nachrichten nicht kompatibel mit den neuesten Versionen von cucumber-html , json-formatter und allem anderen, das auf den neueste Version von @cucumber/messages . Und das wäre für niemanden nützlich, denke ich.

@aslakhellesoy Ich verwende sie tatsächlich mit meinem eigenen Parser, um sie in eine automatisch generierte Dokumentation (in ein Plugin für mkdocs) zu integrieren, also verwende ich --format message:output.ndjson und lese diese output.ndjson Datei. Soweit so gut, viel besser als die vorherige JSON-Ausgabe muss ich sagen

@vincent-psarga - können wir das cck aktualisieren, um dies als Teil des Monorepo-Builds zu validieren?

Nur um sicher zu gehen, dass ich das richtig verstanden habe: Führen Sie die neueste Version xxx-formatter gegen die Version von messages um sicherzustellen, dass wir keine Version der Formatierer überspringen?
Das macht auf jeden Fall Sinn. Wobei ich nicht weiß, ob das Teil des CCK sein soll oder ein zweiter CI-Job für jeden Formatierer.

@sroze sehr cool! Denken Sie daran, dass in der Bibliothek @cucumber/messages einige abwärtskompatible Änderungen von 8.0.0 auf 12.1.1 . Es wurde auch umbenannt. Jede davon abhängige Bibliothek muss ebenfalls aktualisiert werden.

Die anderen Cucumber-Implementierungen (JVM/Java und Ruby) verwenden die neuesten Versionen der Nachrichtenbibliothek, sodass Ihr Tool diese nicht verwenden kann.

@sroze hast du einen link zu deinem projekt?

@vincent-psarga Ich habe vorgeschlagen, dass wir überprüfen können, ob cucumber.js mit unserem cck kompatibel ist. Wir müssten Schrittdefinitionen implementieren, cucumber.js mit dem Nachrichtenformatierer ausführen und dann prüfen, ob sowohl json-formatter als auch html-formatter diese Nachrichten verarbeiten können.

Machen wir das nicht schon für Gurken-Rubin und Gurken-JVM?

Ah ok, ich habe nicht gesehen, dass wir uns im cucumber-js Repo befinden (das ist das Problem beim Überprüfen von Benachrichtigungen am Telefon ...).

Ich denke, es wäre machbar, aber ich bin mir nicht sicher, ob wir es im Monorepo selbst tun sollten, mehr in diesem Repository. Für Ruby haben wir zwei Validierungen gegen den CCK durchgeführt:

  • eine in cucumber-ruby , die den Gurken-Ruby-Master mit der neuesten Version von Nachrichten validiert (aber den Master von json-formatter und html-formatter )
  • eine im Monorepo, das den aktuellen Master der Nachrichten und die neueste Version von cucumber-ruby . Es musste deaktiviert werden, da es Diskrepanzen zwischen der unterstützten Nachrichtenversion von cucumber-ruby gab (es könnte wieder aktiviert werden, müsste aber nach der nächsten Veröffentlichung von Nachrichten wieder deaktiviert werden)

Und soweit ich mich erinnere, sind die JS-Schritte für die Produktion des goldenen NDJson mit fake-cucumber bereits implementiert, also ist dieser Teil fast fertig (nur die Importe müssen möglicherweise aktualisiert werden)

@aslakhellesoy Ich arbeite gerade an #1318, das eine Validierung gegen CCK und Updates für die neuesten Gurken, Nachrichten usw.

Ich wollte Ihre Absicht mit dem Javascript-CCK-Paket überprüfen - ich habe bemerkt, dass es vor einiger Zeit unter @cucumber/compatibility-kit in npm veröffentlicht wurde, aber seit einiger Zeit nicht mehr aktualisiert wurde. Im Moment kopiere ich nur Dateien aus dem Monorepo, um dagegen zu arbeiten, aber die CCK-Funktionen und Nachrichten-Fixtures als Abhängigkeit zu haben, scheint eine gute Möglichkeit zu sein, dies zu tun.

Danke @davidjgoss , freue mich darauf, die neue Version nutzen zu können. Während dies geschieht, muss ich Folgendes tun, um die master Version von cucumber-js . Die größte Herausforderung besteht darin, dass sich npm jedes Mal beschwert, wenn ich npm i erneut ausführe, dass node_modules/cucumber ein Git-Repository ist. Kennen Sie einen besseren Weg? 🤔

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",

Darf ich nervig sein und dem folgenden nachjagen, um eine Veröffentlichung zu schneiden?

  1. @aslakhellesoy die Abhängigkeiten wurden tatsächlich aktualisiert.
  2. ✅ Die (massive) Arbeit von @davidjgoss an CCK wurde zusammengeführt (wodurch das Problem testResult -> testStepResult richtig erkannt wurde)

Wir haben tatsächlich eine Veröffentlichung @sroze geschnitten. Probieren Sie @cucumber/cucumber - dies ist eine Vorabversion. Informationen zum Aktualisieren finden Sie im Migrationsleitfaden .

Oh toll, werde ich ausprobieren, danke! Wusste nicht, weil kein Tag gepusht wurde 🙃

Danke für den Hinweis @sroze - ich hatte tatsächlich vergessen, das Tag zu drücken. Es ist jetzt soweit.

Irgendwelche Gedanken zu einem Paket wie diesem, um mehr Leuten zu helfen, die neue Version zu entdecken?

7.0.0 ist jetzt veröffentlicht, Migrationsanweisungen finden Sie im Changelog . Vielen Dank!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen