From 377bde07dece13aa5a7b1acbe01ea12f97d14ab2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20F=C3=BCrstenberg?= Date: Sun, 13 Sep 2026 10:40:51 +0000 Subject: [PATCH 1/2] docs: add README, MIT license and third-party notices Prepares the project for an open source release: a README that explains what guerkchen is for (writing requirements in a fixed Gherkin format with a consistent vocabulary), install and build instructions, and a layout overview. Licensed under MIT, with the bundled gherkin-languages.json from cucumber/gherkin attributed separately. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01VaCnD9kSVwGRgFkUSPgn8Q --- LICENSE | 21 +++++++ README.md | 130 +++++++++++++++++++++++++++++++++++++++++ THIRD-PARTY-NOTICES.md | 37 ++++++++++++ 3 files changed, 188 insertions(+) create mode 100644 LICENSE create mode 100644 README.md create mode 100644 THIRD-PARTY-NOTICES.md diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..45f8a54 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 René Fürstenberg + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..1f856a2 --- /dev/null +++ b/README.md @@ -0,0 +1,130 @@ +
+ +guerkchen + +# guerkchen + +**Ein kleiner Gherkin-Editor für macOS, der dafür sorgt, dass du Anforderungen immer im gleichen Format und mit dem gleichen Vokabular beschreibst.** + +[![Build](https://github.com/fuerstenberg/guerkchen/actions/workflows/build.yml/badge.svg)](https://github.com/fuerstenberg/guerkchen/actions/workflows/build.yml) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) +[![macOS 15+](https://img.shields.io/badge/macOS-15%2B-blue.svg)](#installation) + +
+ +## Wofür ist guerkchen gedacht? + +guerkchen ist als Werkzeug entstanden, um **Anforderungen an eine KI** aufzuschreiben — und zwar +jedes Mal in derselben festen Struktur: + +```gherkin +# language: de +Funktionalität: Anmeldung + Als registrierter Nutzer + möchte ich mich anmelden können, + damit ich mein persönliches Dashboard sehe + + Szenario: Erfolgreiche Anmeldung + Gegeben sei der Nutzer ist auf der Anmeldeseite + Wenn der Nutzer gültige Zugangsdaten eingibt + Dann sieht der Nutzer das Dashboard +``` + +Gherkin (`.feature`) ist dafür ein guter Rahmen: Rolle, Ziel und Nutzen stehen oben, die +Erwartungen darunter als Given/When/Then. Kein Prosa-Wust, keine Interpretationslücken — und +weil das Format schon lange existiert, verstehen es Sprachmodelle ebenso gut wie Menschen. + +Das eigentliche Problem beim Aufschreiben ist nicht die Struktur, sondern die **Sprachdisziplin**: +In Datei A steht „der Nutzer ist angemeldet“, in Datei B „ein eingeloggter User“ — gemeint ist +dasselbe. Genau da setzt guerkchen an. Beim Tippen schlägt der Editor zwei Dinge vor: + +1. die **Schlüsselwörter** des gewählten Gherkin-Dialekts (`g` → `Given`, `sc` → `Scenario`, + `Scenario O` → `Scenario Outline`), und +2. alle **Step-Texte, die im Projekt schon existieren** (`Given ` + `a u` → `a user is logged in`). + +So entsteht über alle Dateien hinweg ein einheitliches Vokabular, ohne dass man ein Glossar +pflegen muss. Ein Ordner ist ein Projekt, die `.feature`-Dateien darin sind der Wortschatz. + +guerkchen ist bewusst **kein** Test-Runner, kein Cucumber-Ersatz und kein Step-Definition-Generator. +Es ist ein Editor — mehr nicht. Die Feature-Dateien landen anschließend dort, wo du sie brauchst: +im Prompt, im Repository oder in einem echten Cucumber-Setup. + +> **Note** — Die App-Oberfläche ist auf Deutsch. Bearbeitet werden können Feature-Dateien in allen +> Gherkin-Dialekten (rund 80 Sprachen, via `# language:`-Zeile). + +## Features + +- **Projekt = Ordner.** Dateibaum mit Ordnern und `.feature`-Dateien; anlegen, umbenennen und in + den Papierkorb legen per Kontextmenü. Änderungen von außen werden automatisch übernommen. +- **Suggest beim Tippen.** Ab dem ersten Zeichen, Fuzzy-Matching, max. 10 Einträge. + Pfeiltasten wählen, Enter/Tab übernimmt, Escape schließt. +- **Alle Gherkin-Dialekte.** Erkennung über die offizielle `# language: de`-Zeile, Fallback `en`. + Step-Vorschläge kommen nur aus Dateien derselben Sprache. +- **Syntax-Highlighting** für acht Kategorien: Feature/Rule, Background, Scenario/Outline/Examples, + Steps, Kommentare, Tags, Tabellen, Doc-Strings — jede Farbe in den Einstellungen anpassbar, + mit Reset auf die Standardwerte. +- **Autosave.** Rund eine Sekunde nach der letzten Änderung, beim Dateiwechsel und beim Beenden. +- **Zuletzt geöffnet.** Das letzte Projekt öffnet beim Start wieder, die zehn letzten stehen im Menü. +- **Sandboxed**, ohne Netzwerkzugriff und ohne Fremdabhängigkeiten. + +## Installation + +Fertige Builds liegen unter [Releases](https://github.com/fuerstenberg/guerkchen/releases) — +`latest` ist der jeweils aktuelle Stand von `main`. Universal Build (Apple Silicon + Intel), +benötigt **macOS 15 oder neuer**. + +1. ZIP herunterladen, entpacken, `guerkchen.app` nach `/Applications` ziehen. +2. Die App ist nur ad-hoc signiert und nicht notarisiert, deshalb blockiert macOS den ersten Start. + Einmalig das Quarantäne-Flag entfernen: + + ```sh + xattr -dr com.apple.quarantine /Applications/guerkchen.app + ``` + +Zum Ausprobieren: App starten, „Ordner öffnen…“ und den mitgelieferten Ordner +[`Examples/demo-project`](Examples/demo-project) wählen. + +## Selbst bauen + +Vorausgesetzt werden Xcode 26 und [XcodeGen](https://github.com/yonaskolb/XcodeGen) +(`brew install xcodegen`). + +```sh +git clone https://github.com/fuerstenberg/guerkchen.git +cd guerkchen +swift test --package-path Core # Tests der UI-freien Schichten +xcodegen generate # erzeugt guerkchen.xcodeproj +xcodebuild -scheme guerkchen -configuration Debug build +``` + +`guerkchen.xcodeproj` ist nicht eingecheckt und wird immer aus [`project.yml`](project.yml) erzeugt. + +## Aufbau + +Die UI-freien Schichten liegen in einem lokalen Swift-Package, damit ihre Tests ohne Xcode-Testhost +laufen: + +| Pfad | Inhalt | +| --- | --- | +| `Core/Sources/GuerkchenCore/Gherkin/` | Dialekte aus `gherkin-languages.json`, zeilenweiser Scanner | +| `Core/Sources/GuerkchenCore/Project/` | Ordner als Projekt, Dateibaum, FSEvents-Watcher, Step-Index | +| `Core/Sources/GuerkchenCore/Suggest/` | Vorschlagslogik und Fuzzy-Matcher | +| `App/` | SwiftUI-Shell mit `NSTextView` via `NSViewRepresentable` | +| `Design/AppIcon/` | Icon-Quellen und gerenderte Größen ([Details](Design/AppIcon/README.md)) | +| `docs/superpowers/` | Design-Spezifikation und Umsetzungsplan | + +## Status + +Ein Hobbyprojekt, das genau das tut, was ich davon brauche. Es gibt keine Roadmap, keine +Support-Zusage und keine garantierten Antwortzeiten. Issues und Pull Requests sind willkommen, +können aber unbeantwortet bleiben — wer mehr oder anderes will, darf die MIT-Lizenz gerne +ausnutzen und forken. + +## Lizenz + +[MIT](LICENSE) — © 2026 René Fürstenberg. Benutzen, ändern, weitergeben und verkaufen ist erlaubt, +solange der Copyright-Hinweis erhalten bleibt. Ohne Gewährleistung und ohne Haftung. + +Enthaltene Drittanbieter-Bestandteile sind in +[THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md) aufgeführt: die Datei `gherkin-languages.json` +stammt aus dem [Cucumber-Projekt](https://github.com/cucumber/gherkin) und steht ebenfalls unter MIT. diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md new file mode 100644 index 0000000..8d11061 --- /dev/null +++ b/THIRD-PARTY-NOTICES.md @@ -0,0 +1,37 @@ +# Drittanbieter-Lizenzen + +guerkchen selbst steht unter der [MIT-Lizenz](LICENSE) und hat keine Laufzeit-Abhängigkeiten. +Mitgeliefert wird eine Datei aus einem fremden Projekt: + +## cucumber/gherkin — `gherkin-languages.json` + +- Pfad in diesem Repository: `Core/Sources/GuerkchenCore/Resources/gherkin-languages.json` +- Herkunft: +- Lizenz: MIT + +Die Datei enthält die offiziellen Gherkin-Schlüsselwörter aller unterstützten Sprachen und wird +unverändert in die App gebündelt. + +``` +MIT License + +Copyright (c) 2017 Cucumber Ltd, Gaspar Nagy, Björn Rasmusson, Peter Sergeant, and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` From 7a95bda1bdd945381f711b6867ace03abd8029c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20F=C3=BCrstenberg?= Date: Sun, 13 Sep 2026 10:45:10 +0000 Subject: [PATCH 2/2] docs: write README and third-party notices in English The README is the entry point for an open source release, so it should not require German. Same content and structure as before, with the example feature taken from Examples/demo-project/login.feature. The note about the German user interface stays, since that is what an English reader needs to know up front. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01VaCnD9kSVwGRgFkUSPgn8Q --- README.md | 147 ++++++++++++++++++++--------------------- THIRD-PARTY-NOTICES.md | 16 ++--- 2 files changed, 80 insertions(+), 83 deletions(-) diff --git a/README.md b/README.md index 1f856a2..b90a352 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ # guerkchen -**Ein kleiner Gherkin-Editor für macOS, der dafür sorgt, dass du Anforderungen immer im gleichen Format und mit dem gleichen Vokabular beschreibst.** +**A small Gherkin editor for macOS that keeps you writing requirements in the same format — and with the same vocabulary — every time.** [![Build](https://github.com/fuerstenberg/guerkchen/actions/workflows/build.yml/badge.svg)](https://github.com/fuerstenberg/guerkchen/actions/workflows/build.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) @@ -12,119 +12,116 @@ -## Wofür ist guerkchen gedacht? +## What is guerkchen for? -guerkchen ist als Werkzeug entstanden, um **Anforderungen an eine KI** aufzuschreiben — und zwar -jedes Mal in derselben festen Struktur: +guerkchen started as a tool for writing down **requirements for an AI** — always in the same fixed +structure: ```gherkin -# language: de -Funktionalität: Anmeldung - Als registrierter Nutzer - möchte ich mich anmelden können, - damit ich mein persönliches Dashboard sehe - - Szenario: Erfolgreiche Anmeldung - Gegeben sei der Nutzer ist auf der Anmeldeseite - Wenn der Nutzer gültige Zugangsdaten eingibt - Dann sieht der Nutzer das Dashboard +Feature: Login + As a registered user + I want to log in with my e-mail address + So that I can see my personal dashboard + + Scenario: Successful login + Given a user is on the login page + When the user enters valid credentials + Then the user sees the dashboard ``` -Gherkin (`.feature`) ist dafür ein guter Rahmen: Rolle, Ziel und Nutzen stehen oben, die -Erwartungen darunter als Given/When/Then. Kein Prosa-Wust, keine Interpretationslücken — und -weil das Format schon lange existiert, verstehen es Sprachmodelle ebenso gut wie Menschen. +Gherkin (`.feature`) is a good frame for that: role, goal and benefit up top, the expectations +below as Given/When/Then. No wall of prose, no room for interpretation — and because the format +has been around for years, language models read it just as well as people do. -Das eigentliche Problem beim Aufschreiben ist nicht die Struktur, sondern die **Sprachdisziplin**: -In Datei A steht „der Nutzer ist angemeldet“, in Datei B „ein eingeloggter User“ — gemeint ist -dasselbe. Genau da setzt guerkchen an. Beim Tippen schlägt der Editor zwei Dinge vor: +The hard part of writing these files isn't the structure, it's **staying consistent in wording**. +File A says "a user is logged in", file B says "the user has signed in" — both mean the same thing. +That is exactly where guerkchen helps. As you type, the editor suggests two things: -1. die **Schlüsselwörter** des gewählten Gherkin-Dialekts (`g` → `Given`, `sc` → `Scenario`, - `Scenario O` → `Scenario Outline`), und -2. alle **Step-Texte, die im Projekt schon existieren** (`Given ` + `a u` → `a user is logged in`). +1. the **keywords** of the selected Gherkin dialect (`g` → `Given`, `sc` → `Scenario`, + `Scenario O` → `Scenario Outline`), and +2. every **step text that already exists in the project** (`Given ` + `a u` → `a user is on the login page`). -So entsteht über alle Dateien hinweg ein einheitliches Vokabular, ohne dass man ein Glossar -pflegen muss. Ein Ordner ist ein Projekt, die `.feature`-Dateien darin sind der Wortschatz. +The result is one shared vocabulary across all your files, without maintaining a glossary. A folder +is a project, and the `.feature` files inside it are the vocabulary. -guerkchen ist bewusst **kein** Test-Runner, kein Cucumber-Ersatz und kein Step-Definition-Generator. -Es ist ein Editor — mehr nicht. Die Feature-Dateien landen anschließend dort, wo du sie brauchst: -im Prompt, im Repository oder in einem echten Cucumber-Setup. +guerkchen is deliberately **not** a test runner, not a Cucumber replacement and not a step +definition generator. It is an editor, nothing more. The feature files then go wherever you need +them: into a prompt, into a repository, or into a real Cucumber setup. -> **Note** — Die App-Oberfläche ist auf Deutsch. Bearbeitet werden können Feature-Dateien in allen -> Gherkin-Dialekten (rund 80 Sprachen, via `# language:`-Zeile). +> **Note** — The app's user interface is in German. The files it edits can use any Gherkin dialect +> (around 80 languages, selected with the `# language:` line). ## Features -- **Projekt = Ordner.** Dateibaum mit Ordnern und `.feature`-Dateien; anlegen, umbenennen und in - den Papierkorb legen per Kontextmenü. Änderungen von außen werden automatisch übernommen. -- **Suggest beim Tippen.** Ab dem ersten Zeichen, Fuzzy-Matching, max. 10 Einträge. - Pfeiltasten wählen, Enter/Tab übernimmt, Escape schließt. -- **Alle Gherkin-Dialekte.** Erkennung über die offizielle `# language: de`-Zeile, Fallback `en`. - Step-Vorschläge kommen nur aus Dateien derselben Sprache. -- **Syntax-Highlighting** für acht Kategorien: Feature/Rule, Background, Scenario/Outline/Examples, - Steps, Kommentare, Tags, Tabellen, Doc-Strings — jede Farbe in den Einstellungen anpassbar, - mit Reset auf die Standardwerte. -- **Autosave.** Rund eine Sekunde nach der letzten Änderung, beim Dateiwechsel und beim Beenden. -- **Zuletzt geöffnet.** Das letzte Projekt öffnet beim Start wieder, die zehn letzten stehen im Menü. -- **Sandboxed**, ohne Netzwerkzugriff und ohne Fremdabhängigkeiten. +- **A project is a folder.** File tree of folders and `.feature` files; create, rename and move to + trash from the context menu. Changes made outside the app are picked up automatically. +- **Suggestions while typing.** From the first character, fuzzy matched, at most 10 entries. + Arrow keys select, Enter/Tab accepts, Escape dismisses. +- **Every Gherkin dialect.** Detected from the official `# language: de` line, falling back to `en`. + Step suggestions only come from files in the same language. +- **Syntax highlighting** for eight categories: Feature/Rule, Background, + Scenario/Outline/Examples, steps, comments, tags, tables and doc strings — every color + configurable in Settings, with a reset to the defaults. +- **Autosave.** About a second after the last edit, when switching files, and on quit. +- **Recent projects.** The last project reopens on launch; the last ten are listed in the menu. +- **Sandboxed**, with no network access and no third-party dependencies. ## Installation -Fertige Builds liegen unter [Releases](https://github.com/fuerstenberg/guerkchen/releases) — -`latest` ist der jeweils aktuelle Stand von `main`. Universal Build (Apple Silicon + Intel), -benötigt **macOS 15 oder neuer**. +Prebuilt apps are on the [releases page](https://github.com/fuerstenberg/guerkchen/releases) — +`latest` always tracks the current state of `main`. Universal build (Apple Silicon + Intel), +requires **macOS 15 or newer**. -1. ZIP herunterladen, entpacken, `guerkchen.app` nach `/Applications` ziehen. -2. Die App ist nur ad-hoc signiert und nicht notarisiert, deshalb blockiert macOS den ersten Start. - Einmalig das Quarantäne-Flag entfernen: +1. Download the ZIP, unpack it and move `guerkchen.app` to `/Applications`. +2. The app is only ad-hoc signed and not notarized, so macOS blocks the first launch. Clear the + quarantine flag once: ```sh xattr -dr com.apple.quarantine /Applications/guerkchen.app ``` -Zum Ausprobieren: App starten, „Ordner öffnen…“ und den mitgelieferten Ordner -[`Examples/demo-project`](Examples/demo-project) wählen. +To try it out: launch the app, choose "Ordner öffnen…" (Open folder) and pick the bundled +[`Examples/demo-project`](Examples/demo-project) folder. -## Selbst bauen +## Building from source -Vorausgesetzt werden Xcode 26 und [XcodeGen](https://github.com/yonaskolb/XcodeGen) +Requires Xcode 26 and [XcodeGen](https://github.com/yonaskolb/XcodeGen) (`brew install xcodegen`). ```sh git clone https://github.com/fuerstenberg/guerkchen.git cd guerkchen -swift test --package-path Core # Tests der UI-freien Schichten -xcodegen generate # erzeugt guerkchen.xcodeproj +swift test --package-path Core # tests for the UI-free layers +xcodegen generate # creates guerkchen.xcodeproj xcodebuild -scheme guerkchen -configuration Debug build ``` -`guerkchen.xcodeproj` ist nicht eingecheckt und wird immer aus [`project.yml`](project.yml) erzeugt. +`guerkchen.xcodeproj` is not checked in; it is always generated from [`project.yml`](project.yml). -## Aufbau +## Layout -Die UI-freien Schichten liegen in einem lokalen Swift-Package, damit ihre Tests ohne Xcode-Testhost -laufen: +The UI-free layers live in a local Swift package so their tests run without an Xcode test host: -| Pfad | Inhalt | +| Path | Contents | | --- | --- | -| `Core/Sources/GuerkchenCore/Gherkin/` | Dialekte aus `gherkin-languages.json`, zeilenweiser Scanner | -| `Core/Sources/GuerkchenCore/Project/` | Ordner als Projekt, Dateibaum, FSEvents-Watcher, Step-Index | -| `Core/Sources/GuerkchenCore/Suggest/` | Vorschlagslogik und Fuzzy-Matcher | -| `App/` | SwiftUI-Shell mit `NSTextView` via `NSViewRepresentable` | -| `Design/AppIcon/` | Icon-Quellen und gerenderte Größen ([Details](Design/AppIcon/README.md)) | -| `docs/superpowers/` | Design-Spezifikation und Umsetzungsplan | +| `Core/Sources/GuerkchenCore/Gherkin/` | Dialects from `gherkin-languages.json`, line-by-line scanner | +| `Core/Sources/GuerkchenCore/Project/` | Folder as a project, file tree, FSEvents watcher, step index | +| `Core/Sources/GuerkchenCore/Suggest/` | Suggestion logic and fuzzy matcher | +| `App/` | SwiftUI shell wrapping `NSTextView` via `NSViewRepresentable` | +| `Design/AppIcon/` | Icon sources and rendered sizes ([details](Design/AppIcon/README.md)) | +| `docs/superpowers/` | Design specification and implementation plan (in German) | ## Status -Ein Hobbyprojekt, das genau das tut, was ich davon brauche. Es gibt keine Roadmap, keine -Support-Zusage und keine garantierten Antwortzeiten. Issues und Pull Requests sind willkommen, -können aber unbeantwortet bleiben — wer mehr oder anderes will, darf die MIT-Lizenz gerne -ausnutzen und forken. +A hobby project that does exactly what I need from it. There is no roadmap, no support promise and +no guaranteed response times. Issues and pull requests are welcome but may go unanswered — if you +want more, or something different, please make use of the MIT license and fork it. -## Lizenz +## License -[MIT](LICENSE) — © 2026 René Fürstenberg. Benutzen, ändern, weitergeben und verkaufen ist erlaubt, -solange der Copyright-Hinweis erhalten bleibt. Ohne Gewährleistung und ohne Haftung. +[MIT](LICENSE) — © 2026 René Fürstenberg. Use, modify, redistribute and sell it as you like, as +long as the copyright notice stays intact. No warranty, no liability. -Enthaltene Drittanbieter-Bestandteile sind in -[THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md) aufgeführt: die Datei `gherkin-languages.json` -stammt aus dem [Cucumber-Projekt](https://github.com/cucumber/gherkin) und steht ebenfalls unter MIT. +Bundled third-party components are listed in +[THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md): `gherkin-languages.json` comes from the +[Cucumber project](https://github.com/cucumber/gherkin) and is MIT licensed as well. diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 8d11061..46be6fe 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -1,16 +1,16 @@ -# Drittanbieter-Lizenzen +# Third-party notices -guerkchen selbst steht unter der [MIT-Lizenz](LICENSE) und hat keine Laufzeit-Abhängigkeiten. -Mitgeliefert wird eine Datei aus einem fremden Projekt: +guerkchen itself is [MIT licensed](LICENSE) and has no runtime dependencies. One file from another +project ships with it: ## cucumber/gherkin — `gherkin-languages.json` -- Pfad in diesem Repository: `Core/Sources/GuerkchenCore/Resources/gherkin-languages.json` -- Herkunft: -- Lizenz: MIT +- Path in this repository: `Core/Sources/GuerkchenCore/Resources/gherkin-languages.json` +- Upstream: +- License: MIT -Die Datei enthält die offiziellen Gherkin-Schlüsselwörter aller unterstützten Sprachen und wird -unverändert in die App gebündelt. +The file holds the official Gherkin keywords for every supported language and is bundled into the +app unmodified. ``` MIT License