From 970a1ef5e69750943c791f9431d0f51242077fda Mon Sep 17 00:00:00 2001 From: Alexa Kreizinger Date: Thu, 31 Jul 2025 13:29:01 -0700 Subject: [PATCH 01/13] remaining stragglers Signed-off-by: Alexa Kreizinger --- README.md | 2 +- pipeline/outputs/opensearch.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 070a46708..b658e7cb4 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ description: High Performance Telemetry Agent for Logs, Metrics and Traces - Wasm: [Wasm Filter Plugins](development/wasm-filter-plugins.md) or [Wasm Input Plugins](development/wasm-input-plugins.md) - Write [Filters in Lua](pipeline/filters/lua.md) or [Output plugins in Golang](development/golang-output-plugins.md) - [Monitoring](administration/monitoring.md): Expose internal metrics over HTTP in JSON and [Prometheus](https://prometheus.io/) format -- [Stream Processing](stream-processing/introduction.md): Perform data selection and transformation using simple SQL queries +- [Stream Processing](stream-processing/introduction.md): Perform data selection and transformation using basic SQL queries - Create new streams of data using query results - Aggregation windows - Data analysis and prediction: Time series forecasting diff --git a/pipeline/outputs/opensearch.md b/pipeline/outputs/opensearch.md index 35c7d481b..f4e03d313 100644 --- a/pipeline/outputs/opensearch.md +++ b/pipeline/outputs/opensearch.md @@ -246,7 +246,7 @@ Without this you will see errors like: {"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"Action/metadata line [1] contains an unknown parameter [_type]"}],"type":"illegal_argument_exception","reason":"Action/metadata line [1] contains an unknown parameter [_type]"},"status":400} ``` -### Fluent-Bit and Amazon OpenSearch serverless +### Fluent Bit and Amazon OpenSearch serverless Amazon OpenSearch Serverless is an offering that eliminates your need to manage OpenSearch clusters. All existing Fluent Bit OpenSearch output plugin options work with OpenSearch Serverless. For Fluent Bit, you must specify the service name as `aoss` (Amazon OpenSearch Serverless) when you enable `AWS_Auth`: From ed9bad204c280f6ed76aafe84292700d8d8e4603 Mon Sep 17 00:00:00 2001 From: Alexa Kreizinger Date: Thu, 31 Jul 2025 13:29:07 -0700 Subject: [PATCH 02/13] turn off vale Signed-off-by: Alexa Kreizinger --- CONTRIBUTING.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f4a019db6..ca117dbae 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,3 +1,5 @@ + + # Contributing to Fluent Bit docs First of all, thanks for taking the time to read this guide. The fact that you're @@ -191,3 +193,5 @@ suggestions, but doesn't block merging. Line wrap tests are off due to a GitBook decision that hard wraps the rendered page on line wraps in the markdown. This leads to rendered pages with awkward line wraps. + + From 33e656df01bc79fd1659853809cff7ae87417188 Mon Sep 17 00:00:00 2001 From: Alexa Kreizinger Date: Thu, 31 Jul 2025 17:36:09 -0700 Subject: [PATCH 03/13] add errors Signed-off-by: Alexa Kreizinger --- pipeline/processors/conditional-processing.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pipeline/processors/conditional-processing.md b/pipeline/processors/conditional-processing.md index 3af5ef63d..dab2fbf85 100644 --- a/pipeline/processors/conditional-processing.md +++ b/pipeline/processors/conditional-processing.md @@ -2,7 +2,7 @@ Conditional processing lets you selectively apply [processors](README.md) to logs based on the value of fields within those logs. This feature lets you create processing pipelines that only process records that meet certain criteria, and ignore the rest. -Conditional processing is available in Fluent Bit version 4.0 and greater. +Conditional processing is available in Fluentbit version 4.0 and greater. ## Configuration @@ -12,7 +12,7 @@ You can turn a standard processor into a conditional processor by adding a `cond - Only [YAML configuration files](../../administration/configuring-fluent-bit/yaml/README.md) support processors, including conditional processors. -- Conditional processing isn't supported if you're using a [filter as a processor](../filters). +* *Conditional processing isn't supported if you're using a [filter as a processor](../filters). {% endhint %} @@ -276,4 +276,4 @@ pipeline: {% endtab %} {% endtabs %} -This configuration adds an `alert` field to error logs from critical services, and adds a `paging_required` field to errors that contain specific critical patterns. +This configuration adds an `alert` field to error logs from critical services, & adds a `paging_required` field to errors that contain specific critical patterns. From a873b9fc1d9aafa00dddc9669b2064b3159fc9e0 Mon Sep 17 00:00:00 2001 From: Alexa Kreizinger Date: Thu, 31 Jul 2025 17:41:09 -0700 Subject: [PATCH 04/13] add another error Signed-off-by: Alexa Kreizinger --- pipeline/processors/conditional-processing.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pipeline/processors/conditional-processing.md b/pipeline/processors/conditional-processing.md index dab2fbf85..7d4905478 100644 --- a/pipeline/processors/conditional-processing.md +++ b/pipeline/processors/conditional-processing.md @@ -2,7 +2,7 @@ Conditional processing lets you selectively apply [processors](README.md) to logs based on the value of fields within those logs. This feature lets you create processing pipelines that only process records that meet certain criteria, and ignore the rest. -Conditional processing is available in Fluentbit version 4.0 and greater. +Conditional processing is available in fluent-bit version 4.0 and greater. ## Configuration @@ -94,6 +94,7 @@ The `conditions.rules.op` parameter has the following possible values: - `regex`: matches a regular expression - `not_regex`: does not match a regular expression - `in`: is included in the specified array + - `not_in`: is not included in the specified array ## Examples From fbf0a702ea9f5d158c3ea8c86783607d03577018 Mon Sep 17 00:00:00 2001 From: Alexa Kreizinger Date: Thu, 31 Jul 2025 17:44:44 -0700 Subject: [PATCH 05/13] more Signed-off-by: Alexa Kreizinger --- pipeline/processors/conditional-processing.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pipeline/processors/conditional-processing.md b/pipeline/processors/conditional-processing.md index 7d4905478..0ba1883ae 100644 --- a/pipeline/processors/conditional-processing.md +++ b/pipeline/processors/conditional-processing.md @@ -12,7 +12,7 @@ You can turn a standard processor into a conditional processor by adding a `cond - Only [YAML configuration files](../../administration/configuring-fluent-bit/yaml/README.md) support processors, including conditional processors. -* *Conditional processing isn't supported if you're using a [filter as a processor](../filters). +- Conditional processing is not supported if you're using a [filter as a processor](../filters). {% endhint %} @@ -85,7 +85,8 @@ You can use `$field` syntax to access a top-level field, and `$field['child']['s The `conditions.rules.op` parameter has the following possible values: -- `eq`: equal to +* `eq`: equal to + - `neq`: not equal to - `gt`: greater than - `lt`: less than @@ -94,7 +95,6 @@ The `conditions.rules.op` parameter has the following possible values: - `regex`: matches a regular expression - `not_regex`: does not match a regular expression - `in`: is included in the specified array - - `not_in`: is not included in the specified array ## Examples From 47748d9a52e8549349686524df942dcb1df872ca Mon Sep 17 00:00:00 2001 From: Alexa Kreizinger Date: Thu, 31 Jul 2025 17:48:05 -0700 Subject: [PATCH 06/13] revert errors Signed-off-by: Alexa Kreizinger --- pipeline/processors/conditional-processing.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/pipeline/processors/conditional-processing.md b/pipeline/processors/conditional-processing.md index 0ba1883ae..eaf1ca0e4 100644 --- a/pipeline/processors/conditional-processing.md +++ b/pipeline/processors/conditional-processing.md @@ -2,7 +2,7 @@ Conditional processing lets you selectively apply [processors](README.md) to logs based on the value of fields within those logs. This feature lets you create processing pipelines that only process records that meet certain criteria, and ignore the rest. -Conditional processing is available in fluent-bit version 4.0 and greater. +Conditional processing is available in Fluent Bit version 4.0 and greater. ## Configuration @@ -11,8 +11,7 @@ You can turn a standard processor into a conditional processor by adding a `cond {% hint style="info" %} - Only [YAML configuration files](../../administration/configuring-fluent-bit/yaml/README.md) support processors, including conditional processors. - -- Conditional processing is not supported if you're using a [filter as a processor](../filters). +- Conditional processing isn't supported if you're using a [filter as a processor](../filters). {% endhint %} @@ -85,8 +84,7 @@ You can use `$field` syntax to access a top-level field, and `$field['child']['s The `conditions.rules.op` parameter has the following possible values: -* `eq`: equal to - +- `eq`: equal to - `neq`: not equal to - `gt`: greater than - `lt`: less than @@ -277,4 +275,4 @@ pipeline: {% endtab %} {% endtabs %} -This configuration adds an `alert` field to error logs from critical services, & adds a `paging_required` field to errors that contain specific critical patterns. +This configuration adds an `alert` field to error logs from critical services, and adds a `paging_required` field to errors that contain specific critical patterns. From 43dad418d2f6367e1bb669030af24d9876a8e73d Mon Sep 17 00:00:00 2001 From: Alexa Kreizinger Date: Thu, 31 Jul 2025 20:04:19 -0700 Subject: [PATCH 07/13] update contributors guide Signed-off-by: Alexa Kreizinger --- .gitbook/assets/markdownlint-example.png | Bin 0 -> 47217 bytes .gitbook/assets/vale-example-error.png | Bin 0 -> 28317 bytes .gitbook/assets/vale-example-warning.png | Bin 0 -> 25800 bytes CONTRIBUTING.md | 251 ++++++++++------------- 4 files changed, 105 insertions(+), 146 deletions(-) create mode 100644 .gitbook/assets/markdownlint-example.png create mode 100644 .gitbook/assets/vale-example-error.png create mode 100644 .gitbook/assets/vale-example-warning.png diff --git a/.gitbook/assets/markdownlint-example.png b/.gitbook/assets/markdownlint-example.png new file mode 100644 index 0000000000000000000000000000000000000000..35cb39bc58e2b2d749ef6564d5212eee3784b1ea GIT binary patch literal 47217 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 z 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 literal 0 HcmV?d00001 diff --git a/.gitbook/assets/vale-example-warning.png b/.gitbook/assets/vale-example-warning.png new file mode 100644 index 0000000000000000000000000000000000000000..460c7579bf0a41df3d34ef1dd892dbe8e5d0eae3 GIT binary patch literal 25800 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 literal 0 HcmV?d00001 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ca117dbae..b33afd42b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,197 +1,156 @@ + # Contributing to Fluent Bit docs -First of all, thanks for taking the time to read this guide. The fact that you're -here means you're interested in contributing to Fluent Bit, and we highly appreciate -your time. +First of all, thanks for taking the time to read this guide. The fact that you're here means you're interested in contributing to Fluent Bit, and we highly appreciate your time. -This repository contains the files for the -[Fluent Bit documentation library](https://docs.fluentbit.io/). Keeping these docs -separate from the [main Fluent Bit repository](https://github.com/fluent/fluent-bit) -helps reduce the number of commits to the Fluent Bit source code and makes it -easier to maintain both projects. +This repository contains the files for the [Fluent Bit documentation library](https://docs.fluentbit.io/). Keeping these docs separate from the [main Fluent Bit repository](https://github.com/fluent/fluent-bit) helps reduce the number of commits to the Fluent Bit source code and makes it easier to maintain both projects. -Fluent Bit has a group of dedicated maintainers who oversee this repository, -including several technical writers. These writers will review any pull requests -you open, so don't be afraid to contribute—even if you're not a writer by trade. -Your suggestions are valuable, and we'll help you wrangle any stray commas. +Fluent Bit has a group of dedicated maintainers who oversee this repository, including several technical writers. These writers will review any pull requests you open, so don't be afraid to contribute—even if you're not a writer by trade. Your suggestions are valuable, and we'll help you wrangle any stray commas. -## GitBook +## :star: Quick tips -The Fluent Bit docs library is built and hosted through -[GitBook](https://docs.gitbook.com/). Unfortunately, GitBook doesn't support -local previews for contributors, but a Fluent Bit maintainer with a dedicated GitBook -account can verify that things are formatted correctly after you open a new pull -request. +- [Sign off](#sign-off-your-git-commits) your Git commits. +- Use [soft line wraps](#line-wraps) in Markdown files. +- To link between pages, use [absolute file paths](#links). +- Review the results of [linters](#linters) for style and formatting guidance. -Each `.md` file in this repository is a single page. You can use -[standard Markdown syntax](https://docs.gitbook.com/content-editor/editing-content/markdown) -to edit existing pages, or create a new `.md` file to add an additional page to -the docs library. If you create a new page, you'll also need to update -[GitBook's `SUMMARY.md` file](https://docs.gitbook.com/integrations/git-sync/content-configuration#structure) -(or request that a maintainer to update it for you). +## Review process -## Workflow +After you open a pull request in this repository, a Fluent Bit maintainer will review it, add comments or suggestions as needed, and then merge it. After your changes are successfully merges into `master`, the docs site will update within a few minutes. -After you open a pull request in this repository, a Fluent Bit maintainer will review -it, triage it, add comments or suggestions as needed, and then merge it. After -your changes are successfully merged into `master`, the docs site will update -within a few minutes. +### Request review without merging -### Stale pull requests - -If you open a pull request that requires ongoing discussion or review, the Fluent Bit -maintainers will add a `waiting-for-user` to your pull request. This tag means that -we're blocked from moving forward until you reply. To keep contributions from going -stale, we'll wait 45 days for your response, but we might close the pull request if we -don't hear back from you by then. +If you're contributing documentation for a Fluent Bit feature that's still in development, add the `waiting-on-code-merge` label to a pull request. This lets the maintainers know that your changes are ready for review but not ready to be merged. -## Submit a contribution +### Stale pull requests -When you open a pull request, make your changes against `master`, which is the -active development branch. If your contribution also applies to the latest -stable version, submit another PR for that versioned branch. However, if -submitting multiple PRs at the same time adds too much complexity, you can instead -create a single PR against `master` and specify that your changes need to be -**backported** to other branches; one of our maintainers will take care of that -process on your behalf. +If you open a pull request that requires extended discussion or review, the Fluent Bit maintainers will add a `waiting-for-user` label to your pull request. This label means that we're blocked from moving forward until you reply. To keep contributions from going stale, we'll wait 45 days for your response, but we might close the pull request if we don't hear back from you by then. -All contributions must be made **first** against [master branch](https://github.com/fluent/fluent-bit-docs/tree/master) which is the active development branch, and then if the contribution also applies for the current stable branch, submit another PR for that specific branch, if submitting another PR adds some complexity, specify in the first PR as a comment (for master branch) that it needs to be backported. One of the maintainers will take care of that process. +## Pass DCO checks -As a contributor, we'll ask you to follow a few best practices related to Git: +To pass this repository's [DCO checks](https://github.com/apps/dco), you'll need to adhere to the following Git practices. -### One file per commit +### Set your email in Git -Each commit you make should only modify one file or interface, following the same -practice as commits to the Fluent Bit source code. +To sign commits properly, you must first set your email address in your local Git environment. This should be the same email address associated with your GitHub account. -### Commit subjects +For more information, refer to GitHub's guide to [setting your commit email address in Git](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address#setting-your-commit-email-address-in-git). -Use descriptive commit subjects that describe which file or interface you're -modifying. +### Sign off your Git commits -For example, if you're modifying the Syslog output plugin doc, whose file is -located at [pipeline/outputs/syslog.md](https://github.com/fluent/fluent-bit-docs/blob/master/pipeline/outputs/syslog.md), this would be a descriptive commit subject: +You must sign off your commits to certify your identity as the commit author. A commit is "signed off" when its commit message looks like this: -`pipeline: outputs: syslog: fix grammar in examples` +```text +pipeline: outputs: syslog: fix grammar in examples +Signed-off-by: Tux +``` -Because this commit is prefixed with the relevant file's path, it helps the maintainers -understand and prioritize your contribution. +For faster signing, you can use the `-s` flag: -### Set your email in Git +`git commit -a -s -m "pipeline: outputs: syslog: fix grammar in examples"` -Make sure your email address is configured in your local Git environment. This -should be the same email address associated with your GitHub account. +> :bulb: If you're using VSCode, the [**Git: Always Sign Off**](https://github.com/microsoft/vscode/issues/83096#issuecomment-545350047) option automatically appends a `Signed-off-by:` message to all of your commits. -For more information, refer to GitHub's guide to -[setting your commit email address in Git](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address#setting-your-commit-email-address-in-git). +### Fix "DCO is missing" errors -### Sign off your commits +If a DCO error blocks your pull request from merging, refer to this guide about [how to add sign-offs retroactively](https://github.com/src-d/guide/blob/master/developer-community/fix-DCO.md#how-to-add-sign-offs-retroactively). -You must sign off your commits to certify your identity as the commit author. If -you don't sign off your commits, the CI system will flag the pull request with a -[DCO](https://github.com/src-d/guide/blob/master/developer-community/fix-DCO.md) -error and prevent your pull request from merging. +## Style guidelines -To prevent DCO errors, refer to the following guide about -[signing your commits properly](https://github.com/src-d/guide/blob/master/developer-community/fix-DCO.md). +The Fluent Bit documentation follows the [Google developer documentation style guide](https://developers.google.com/style) for most topics related to grammar and style. We don't expect you +to memorize these style rules, but the maintainers who review your pull request might suggest changes accordingly. -> :bulb: For faster signing, you can use the `-s` flag in Git: -> -> `git commit -a -s -m "pipeline: outputs: syslog: fix grammar in examples"` -> -> If you're using VSCode, enable the -> [**Git: Always Sign Off**](https://github.com/microsoft/vscode/issues/83096#issuecomment-545350047) -> setting, which automatically appends a `Signed-off-by:` message to your commits. +The active [linters](#linters) in this repository flag certain style errors and, in some cases, explain how to fix them. -## Style guidelines +## Formatting guidelines -The Fluent Bit maintainers refer to the -[Google developer documentation style guide](https://developers.google.com/style) -for most topics related to grammar, style, and formatting. We don't expect you -to memorize these style rules, but the technical writer who reviews your pull -request can suggest changes accordingly. +The Fluent Bit docs library is built and hosted through [GitBook](https://docs.gitbook.com/). Unfortunately, GitBook doesn't support local previews for contributors, but a Fluent Bit maintainer with a dedicated GitBook account can verify that things are formatted correctly after you open a new pull request. -### URLs +### Links -When cross-linking to a page in this repository, use a full absolute path whenever +When cross-linking between in this repository, use a full absolute path whenever possible. For example: ```text [LTSV](../pipeline/parsers/ltsv.md) and [Logfmt](../pipeline/parsers/logfmt.md) ``` -## Additional testing +### Line wraps + +When GitBook renders pages, it treats all newlines literally, which means hard line wraps in Markdown files create awkward line breaks in the Fluent Bit docs site. Due to this, docs contributions must use soft line wraps. + +

+:white_check_mark: Example: soft line wraps + +```text +Soft-wrapped text uses newlines only to mark the end of a paragraph. From the perspective of a text editor, this means each paragraph looks like a single, unbroken line of text. + +After two newlines, another paragraph begins. +``` + +
+ +
+:no_entry_sign: Example: hard line wraps + +```text +Hard-wrapped text uses newlines +in the middle of sentences and +paragraphs. + +This can make text easier for +humans to read, but GitBook +renders hard line wraps +awkwardly. +``` + +
+ +### Quotes + +By default, Google Docs and Microsoft Word turn standard straight quotes into "smart" +curly quotes. If you copy-paste from one of these tools, you must correct the quotes back to straight quotes. You can also turn off smart quotes in [Google Docs](https://support.google.com/docs/thread/217182974/can-i-turn-smart-quotes-off-in-a-google-doc?hl=en) or [Microsoft Word](https://support.microsoft.com/en-us/office/smart-quotes-in-word-and-powerpoint-702fc92e-b723-4e3d-b2cc-71dedaf2f343) to prevent this problem. + +### Table of contents + +When you create a new `.md` file for a new page, you must add an entry to this repository's [`SUMMARY.md` file](https://github.com/fluent/fluent-bit-docs/blob/master/SUMMARY.md) (or ask a maintainer to add it on your behalf). If you don't update `SUMMARY.md`, the new page won't appear in the table of contents on the Fluent Bit docs site. + +## Linters -Fluent Bit uses additional tests for style and consistency. Your maintainers -suggest installing and applying the suggestions from these linters. +This repository runs linters as GitHub Actions for each pull request. If a linter finds errors or makes suggested changes, you can view these results in the **Files changed** tab. + +
+:white_check_mark: Examples: linter results + +![An example of a warning-level Vale result.](/.gitbook/assets/vale-example-warning.png) + +![An example of an error-level Vale result.](/.gitbook/assets/vale-example-error.png) + +![An example of a Markdownlint result.](/.gitbook/assets/markdownlint-example.png) + +
### Vale -The Fluent Bit maintainers use the [Vale](https://vale.sh/docs/) plugin, which lints -the prose of your pull requests and adds suggestions to improve style and clarity. -There is a [VSCode plugin for Vale](https://marketplace.visualstudio.com/items?itemName=ChrisChinchilla.vale-vscode) -which outputs suggestions to the problems pane in the IDE. - -The Fluent Bit repository runs Vale as a GitHub Action on updated text in new pull -requests. Vale suggestions, errors, and warnings will display in GitHub on the -**Files changed** page. - -[See the Vale tests for Fluent Bit](https://github.com/fluent/fluent-bit-docs/tree/master/vale-styles). - -Most Vale tests are at the `suggestion` level and won't block merging. - -The following tests are at `error` level and will cause a test failure: - -- [AmSpelling](https://developers.google.com/style/word-list) -- [Ampersand](https://developers.google.com/style/word-list#ampersand) -- [Don'tUse](https://github.com/fluent/fluent-bit-docs/blob/master/vale-styles/FluentBit/DontUse.yml) -- [Emdash](https://github.com/errata-ai/Google/blob/master/Google/EmDash.yml) -- [Endash](https://github.com/errata-ai/Google/blob/master/Google/EmDash.yml) -- [Exclamation](https://github.com/errata-ai/Google/blob/master/Google/Exclamation.yml) -- [Gender](https://developers.google.com/style/pronouns#gender-neutral-pronouns) -- [GenderBias](https://developers.google.com/style/inclusive-documentation) -- [Hints](https://github.com/fluent/fluent-bit-docs/blob/master/vale-styles/FluentBit/Hints.yml) using `>`. -- [HeadingPunctuation](https://developers.google.com/style/capitalization#capitalization-in-titles-and-headings) -- [Latin](https://developers.google.com/style/abbreviations) -- [LyHyphens](https://developers.google.com/style/hyphens) -- [MayMightCan](https://github.com/fluent/fluent-bit-docs/blob/master/vale-styles/FluentBit/MayMightCan.yml) -- [NonStandardQuotes](https://github.com/fluent/fluent-bit-docs/blob/master/vale-styles/FluentBit/NonStandardQuotes.yml): - [Use standard quotes](https://developers.google.com/style/quotation-marks#straight-and-curly-quotation-marks). - By default, Google Docs and Microsoft Word turn standard straight quotes into "smart" - curly quotes. If you copy-paste from one of these tools, you must correct the quotes - back to straight quotes. You can also turn off smart quotes - in [Google Docs](https://support.google.com/docs/thread/217182974/can-i-turn-smart-quotes-off-in-a-google-doc?hl=en) - or [Microsoft Word](https://support.microsoft.com/en-us/office/smart-quotes-in-word-and-powerpoint-702fc92e-b723-4e3d-b2cc-71dedaf2f343) - to prevent this problem. -- [Optional plurals](https://developers.google.com/style/plurals-parentheses) -- [Ordinal](https://developers.google.com/style/numbers) -- [Periods](https://developers.google.com/style/abbreviations) -- [Ranges](https://developers.google.com/style/hyphens) -- [Repetition](https://github.com/errata-ai/vale/blob/v3/testdata/styles/Markup/Repetition.yml): - Checks for the same word used twice in succession. -- [Slang](https://developers.google.com/style/abbreviations) -- [Spacing](https://developers.google.com/style/sentence-spacing) - -The following tests are at a `warning` level and won't prevent merging: - -- [Ampersand](https://developers.google.com/style/word-list#ampersand) -- [First person](https://developers.google.com/style/pronouns#personal-pronouns) -- [Possessives](https://developers.google.com/style/possessives) -- [Simplicity](https://developers.google.com/style/word-list#easy) +[Vale](https://vale.sh/docs/) lints prose for style and clarity. In addition to reviewing the results of each Vale action in GitHub, you can use the [Vale plugin for VSCode](https://marketplace.visualstudio.com/items?itemName=ChrisChinchilla.vale-vscode) to view errors and suggestions locally. + +Vale tests for the Fluent Bit docs are stored in the [`/vale-styles`](https://github.com/fluent/fluent-bit-docs/tree/master/vale-styles) folder. Most Vale tests are at the `suggestion` or `warning` level and won't block pull requests from merging. However, tests at the `error` level will block merging until the associated issue is fixed. ### Markdownlint -[Markdownlint](https://github.com/markdownlint/markdownlint) checks markdown in a -file and makes suggestions for improvements. Most markdownlint tests are enabled. -[See the configuration file](https://github.com/fluent/fluent-bit-docs/blob/master/.markdownlint.json). +[Markdownlint](https://github.com/markdownlint/markdownlint) lints Markdown formatting and makes suggestions for improvements. + +Markdownlint tests for the Fluent Bit docs are stored in [`markdownlint.json`](https://github.com/fluent/fluent-bit-docs/blob/master/.markdownlint.json). These tests don't block pull requests from merging. + +## Additional resources -The Fluent Bit documentation repository is using a GitHub action to check for invalid -markdown based on the configuration file. This action might provide review -suggestions, but doesn't block merging. +For general guidance about writing documentation, consult the following resources: -Line wrap tests are off due to a GitBook decision that hard wraps the rendered page -on line wraps in the markdown. This leads to rendered pages with awkward line wraps. +- [Open Source Technical Documentation Essentials (LFC111)](https://training.linuxfoundation.org/training/open-source-technical-documentation-essentials-lfc111/) +- [Creating Effective Documentation for Developers (LFC112)](https://training.linuxfoundation.org/training/creating-effective-documentation-for-developers-lfc112/) +- [Google Technical Writing Courses for Engineers](https://developers.google.com/tech-writing) + From d9557215b198612cdd32c9730d40b5c0186bd939 Mon Sep 17 00:00:00 2001 From: Alexa Kreizinger Date: Thu, 31 Jul 2025 20:13:49 -0700 Subject: [PATCH 08/13] swap emoji Signed-off-by: Alexa Kreizinger --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b33afd42b..fe1434abd 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -122,7 +122,7 @@ When you create a new `.md` file for a new page, you must add an entry to this r This repository runs linters as GitHub Actions for each pull request. If a linter finds errors or makes suggested changes, you can view these results in the **Files changed** tab.
-:white_check_mark: Examples: linter results +:mag: Examples: linter results ![An example of a warning-level Vale result.](/.gitbook/assets/vale-example-warning.png) From d1984c8ee8be44065031eddb43c6e6db76f4bb45 Mon Sep 17 00:00:00 2001 From: Alexa Kreizinger Date: Fri, 1 Aug 2025 09:04:00 -0700 Subject: [PATCH 09/13] add markdownlint plugin link Signed-off-by: Alexa Kreizinger --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fe1434abd..02e18ea55 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -134,13 +134,13 @@ This repository runs linters as GitHub Actions for each pull request. If a linte ### Vale -[Vale](https://vale.sh/docs/) lints prose for style and clarity. In addition to reviewing the results of each Vale action in GitHub, you can use the [Vale plugin for VSCode](https://marketplace.visualstudio.com/items?itemName=ChrisChinchilla.vale-vscode) to view errors and suggestions locally. +[Vale](https://vale.sh/docs/) lints prose for style and clarity. In addition to reviewing the results of each Vale test in GitHub, you can use the [Vale plugin for VSCode](https://marketplace.visualstudio.com/items?itemName=ChrisChinchilla.vale-vscode) to view errors and suggestions locally. Vale tests for the Fluent Bit docs are stored in the [`/vale-styles`](https://github.com/fluent/fluent-bit-docs/tree/master/vale-styles) folder. Most Vale tests are at the `suggestion` or `warning` level and won't block pull requests from merging. However, tests at the `error` level will block merging until the associated issue is fixed. ### Markdownlint -[Markdownlint](https://github.com/markdownlint/markdownlint) lints Markdown formatting and makes suggestions for improvements. +[Markdownlint](https://github.com/markdownlint/markdownlint) lints Markdown formatting and makes suggestions for improvements. In addition to reviewing the results of each test in GitHub, you can use the [markdownlint plugin for VSCode](https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint) to view suggestions locally. Markdownlint tests for the Fluent Bit docs are stored in [`markdownlint.json`](https://github.com/fluent/fluent-bit-docs/blob/master/.markdownlint.json). These tests don't block pull requests from merging. From b2d5cfcc32f1d4eb5e236f02166e81e5753753cf Mon Sep 17 00:00:00 2001 From: Alexa Kreizinger Date: Fri, 1 Aug 2025 10:41:38 -0700 Subject: [PATCH 10/13] clarify label usage Signed-off-by: Alexa Kreizinger --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 02e18ea55..da6760d77 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -22,7 +22,7 @@ After you open a pull request in this repository, a Fluent Bit maintainer will r ### Request review without merging -If you're contributing documentation for a Fluent Bit feature that's still in development, add the `waiting-on-code-merge` label to a pull request. This lets the maintainers know that your changes are ready for review but not ready to be merged. +If you're contributing documentation for a Fluent Bit feature that's still in development, ask a maintainer to add the `waiting-on-code-merge` label to your pull request. This lets other maintainers know that your changes aren't ready to merge yet, even if they were approved. ### Stale pull requests From 83e278154ee253cbec9b6581331d27b5d1f0ddfa Mon Sep 17 00:00:00 2001 From: Alexa Kreizinger Date: Tue, 5 Aug 2025 08:48:01 -0700 Subject: [PATCH 11/13] add note about updating page titles Signed-off-by: Alexa Kreizinger --- CONTRIBUTING.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index da6760d77..ac76adc35 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -117,6 +117,8 @@ curly quotes. If you copy-paste from one of these tools, you must correct the qu When you create a new `.md` file for a new page, you must add an entry to this repository's [`SUMMARY.md` file](https://github.com/fluent/fluent-bit-docs/blob/master/SUMMARY.md) (or ask a maintainer to add it on your behalf). If you don't update `SUMMARY.md`, the new page won't appear in the table of contents on the Fluent Bit docs site. +Similarly, if you update the `#h1` header to change the title of an existing page, make sure to update that page's `SUMMARY.md` entry to match. + ## Linters This repository runs linters as GitHub Actions for each pull request. If a linter finds errors or makes suggested changes, you can view these results in the **Files changed** tab. From b810b4bc50ea0a8bb5b0f861b775fc79af9f2c5b Mon Sep 17 00:00:00 2001 From: Alexa Kreizinger Date: Tue, 5 Aug 2025 09:00:02 -0700 Subject: [PATCH 12/13] phrasing/clarity Signed-off-by: Alexa Kreizinger --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ac76adc35..8ceb22c03 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -117,7 +117,7 @@ curly quotes. If you copy-paste from one of these tools, you must correct the qu When you create a new `.md` file for a new page, you must add an entry to this repository's [`SUMMARY.md` file](https://github.com/fluent/fluent-bit-docs/blob/master/SUMMARY.md) (or ask a maintainer to add it on your behalf). If you don't update `SUMMARY.md`, the new page won't appear in the table of contents on the Fluent Bit docs site. -Similarly, if you update the `#h1` header to change the title of an existing page, make sure to update that page's `SUMMARY.md` entry to match. +Similarly, if you update the `# h1` title header of an existing page, make sure to update that page's `SUMMARY.md` entry to match. If you don't, the `SUMMARY.md` entry takes precedence in both the table of contents entry and the page title itself. ## Linters From 61429a41397d44055408dc7cf47f7c6bc4aaf57b Mon Sep 17 00:00:00 2001 From: Alexa Kreizinger Date: Tue, 5 Aug 2025 09:06:08 -0700 Subject: [PATCH 13/13] phrasing again Signed-off-by: Alexa Kreizinger --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8ceb22c03..b723f22d4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -117,7 +117,7 @@ curly quotes. If you copy-paste from one of these tools, you must correct the qu When you create a new `.md` file for a new page, you must add an entry to this repository's [`SUMMARY.md` file](https://github.com/fluent/fluent-bit-docs/blob/master/SUMMARY.md) (or ask a maintainer to add it on your behalf). If you don't update `SUMMARY.md`, the new page won't appear in the table of contents on the Fluent Bit docs site. -Similarly, if you update the `# h1` title header of an existing page, make sure to update that page's `SUMMARY.md` entry to match. If you don't, the `SUMMARY.md` entry takes precedence in both the table of contents entry and the page title itself. +Similarly, if you update the `# h1` title header of an existing page, make sure to update that page's `SUMMARY.md` entry to match. `SUMMARY.md` entries takes precedence over in-page headers, which means that if you update a page's `# h1` title without updating `SUMMARY.md`, the unchanged `SUMMARY.md` title will persist in both the rendered page and the table of contents. ## Linters