From 0bc42de6cbf38a97921117f0fc94146f91199214 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Mon, 18 Mar 2024 08:16:25 -0400 Subject: [PATCH] Add check-spelling --- .github/actions/spelling/README.md | 18 + .github/actions/spelling/advice.md | 31 + .github/actions/spelling/allow.txt | 5 + .../actions/spelling/block-delimiters.list | 31 + .github/actions/spelling/candidate.patterns | 675 ++++ .github/actions/spelling/excludes.txt | 90 + .github/actions/spelling/expect.txt | 3564 +++++++++++++++++ .../actions/spelling/line_forbidden.patterns | 163 + .github/actions/spelling/patterns.txt | 151 + .github/actions/spelling/reject.txt | 11 + .github/workflows/spelling.yml | 165 + 11 files changed, 4904 insertions(+) create mode 100644 .github/actions/spelling/README.md create mode 100644 .github/actions/spelling/advice.md create mode 100644 .github/actions/spelling/allow.txt create mode 100644 .github/actions/spelling/block-delimiters.list create mode 100644 .github/actions/spelling/candidate.patterns create mode 100644 .github/actions/spelling/excludes.txt create mode 100644 .github/actions/spelling/expect.txt create mode 100644 .github/actions/spelling/line_forbidden.patterns create mode 100644 .github/actions/spelling/patterns.txt create mode 100644 .github/actions/spelling/reject.txt create mode 100644 .github/workflows/spelling.yml diff --git a/.github/actions/spelling/README.md b/.github/actions/spelling/README.md new file mode 100644 index 00000000000..da6f2e9d9b5 --- /dev/null +++ b/.github/actions/spelling/README.md @@ -0,0 +1,18 @@ +# check-spelling/check-spelling configuration + +File | Purpose | Format | Info +-|-|-|- +[dictionary.txt](dictionary.txt) | Replacement dictionary (creating this file will override the default dictionary) | one word per line | [dictionary](https://github.com/check-spelling/check-spelling/wiki/Configuration#dictionary) +[allow.txt](allow.txt) | Add words to the dictionary | one word per line (only letters and `'`s allowed) | [allow](https://github.com/check-spelling/check-spelling/wiki/Configuration#allow) +[reject.txt](reject.txt) | Remove words from the dictionary (after allow) | grep pattern matching whole dictionary words | [reject](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-reject) +[excludes.txt](excludes.txt) | Files to ignore entirely | perl regular expression | [excludes](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-excludes) +[only.txt](only.txt) | Only check matching files (applied after excludes) | perl regular expression | [only](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-only) +[patterns.txt](patterns.txt) | Patterns to ignore from checked lines | perl regular expression (order matters, first match wins) | [patterns](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-patterns) +[candidate.patterns](candidate.patterns) | Patterns that might be worth adding to [patterns.txt](patterns.txt) | perl regular expression with optional comment block introductions (all matches will be suggested) | [candidates](https://github.com/check-spelling/check-spelling/wiki/Feature:-Suggest-patterns) +[line_forbidden.patterns](line_forbidden.patterns) | Patterns to flag in checked lines | perl regular expression (order matters, first match wins) | [patterns](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-patterns) +[expect.txt](expect.txt) | Expected words that aren't in the dictionary | one word per line (sorted, alphabetically) | [expect](https://github.com/check-spelling/check-spelling/wiki/Configuration#expect) +[advice.md](advice.md) | Supplement for GitHub comment when unrecognized words are found | GitHub Markdown | [advice](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-advice) +[block-delimiters.list](block-delimiters.list) | Define block begin/end markers to ignore lines of text | line with _literal string_ for **start** followed by line with _literal string_ for **end** | [block ignore](https://github.com/check-spelling/check-spelling/wiki/Feature%3A-Block-Ignore#status) + +Note: you can replace any of these files with a directory by the same name (minus the suffix) +and then include multiple files inside that directory (with that suffix) to merge multiple files together. diff --git a/.github/actions/spelling/advice.md b/.github/actions/spelling/advice.md new file mode 100644 index 00000000000..a32d1090aaf --- /dev/null +++ b/.github/actions/spelling/advice.md @@ -0,0 +1,31 @@ + +
If the flagged items are :exploding_head: false positives + +If items relate to a ... +* binary file (or some other file you wouldn't want to check at all). + + Please add a file path to the `excludes.txt` file matching the containing file. + + File paths are Perl 5 Regular Expressions - you can [test]( +https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your files. + + `^` refers to the file's path from the root of the repository, so `^README\.md$` would exclude [README.md]( +../tree/HEAD/README.md) (on whichever branch you're using). + +* well-formed pattern. + + If you can write a [pattern]( +https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns +) that would match it, + try adding it to the `patterns.txt` file. + + Patterns are Perl 5 Regular Expressions - you can [test]( +https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your lines. + + Note that patterns can't match multiline strings. + +
+ + +:steam_locomotive: If you're seeing this message and your PR is from a branch that doesn't have check-spelling, +please merge to your PR's base branch to get the version configured for your repository. diff --git a/.github/actions/spelling/allow.txt b/.github/actions/spelling/allow.txt new file mode 100644 index 00000000000..61567618d82 --- /dev/null +++ b/.github/actions/spelling/allow.txt @@ -0,0 +1,5 @@ +github +https +ssh +ubuntu +workarounds diff --git a/.github/actions/spelling/block-delimiters.list b/.github/actions/spelling/block-delimiters.list new file mode 100644 index 00000000000..4b3c0b2d401 --- /dev/null +++ b/.github/actions/spelling/block-delimiters.list @@ -0,0 +1,31 @@ +# Public Keys +-----BEGIN PUBLIC KEY----- +-----END PUBLIC KEY----- + +# RSA Private Key +-----BEGIN RSA PRIVATE KEY----- +-----END RSA PRIVATE KEY----- + +# GPG Public Key +-----BEGIN PGP PUBLIC KEY BLOCK----- +-----END PGP PUBLIC KEY BLOCK----- + +# Certificates +-----BEGIN CERTIFICATE----- +-----END CERTIFICATE----- + +# design/AcAC.md +(lldb) p dumpActorCallBacktrace() +``` + +# design/AcAC.md +echo "AsfmEwAAAAAACQAAAMfmEwAAAAAAAM2oiSx71iIAGrSuCzh6ICZdEwAAAAAAJl0TAAAAAAAA +bin/acac + +# fdbrpc/Base64Decode.cpp +StringRef urlEncodedTestData +}; + +# fdbclient/Tracing.actor.cpp +const char* longString = +"; diff --git a/.github/actions/spelling/candidate.patterns b/.github/actions/spelling/candidate.patterns new file mode 100644 index 00000000000..586c304e0f2 --- /dev/null +++ b/.github/actions/spelling/candidate.patterns @@ -0,0 +1,675 @@ +# marker to ignore all code on line +^.*/\* #no-spell-check-line \*/.*$ +# marker to ignore all code on line +^.*\bno-spell-check(?:-line|)(?:\s.*|)$ + +# https://cspell.org/configuration/document-settings/ +# cspell inline +^.*\b[Cc][Ss][Pp][Ee][Ll]{2}:\s*[Dd][Ii][Ss][Aa][Bb][Ll][Ee]-[Ll][Ii][Nn][Ee]\b + +# patch hunk comments +^@@ -\d+(?:,\d+|) \+\d+(?:,\d+|) @@ .* +# git index header +index (?:[0-9a-z]{7,40},|)[0-9a-z]{7,40}\.\.[0-9a-z]{7,40} + +# file permissions +['"`\s][-bcdLlpsw](?:[-r][-w][-Ssx]){2}[-r][-w][-SsTtx]\+?['"`\s] + +# css url wrappings +\burl\([^)]+\) + +# cid urls +(['"])cid:.*?\g{-1} + +# data url in parens +\(data:(?:[^) ][^)]*?|)(?:[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,})[^)]*\) +# data url in quotes +([`'"])data:(?:[^ `'"].*?|)(?:[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,}).*\g{-1} +# data url +\bdata:[-a-zA-Z=;:/0-9+]*,\S* + +# https/http/file urls +(?:\b(?:https?|ftp|file)://)[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|] + +# mailto urls +mailto:[-a-zA-Z=;:/?%&0-9+@._]{3,} + +# magnet urls +magnet:[?=:\w]+ + +# magnet urls +"magnet:[^"]+" + +# obs: +"obs:[^"]*" + +# The `\b` here means a break, it's the fancy way to handle urls, but it makes things harder to read +# In this examples content, I'm using a number of different ways to match things to show various approaches +# asciinema +\basciinema\.org/a/[0-9a-zA-Z]+ + +# asciinema v2 +^\[\d+\.\d+, "[io]", ".*"\]$ + +# apple +\bdeveloper\.apple\.com/[-\w?=/]+ +# Apple music +\bembed\.music\.apple\.com/fr/playlist/usr-share/[-\w.]+ + +# appveyor api +\bci\.appveyor\.com/api/projects/status/[0-9a-z]+ +# appveyor project +\bci\.appveyor\.com/project/(?:[^/\s"]*/){2}builds?/\d+/job/[0-9a-z]+ + +# Amazon + +# Amazon +\bamazon\.com/[-\w]+/(?:dp/[0-9A-Z]+|) +# AWS S3 +\b\w*\.s3[^.]*\.amazonaws\.com/[-\w/&#%_?:=]* +# AWS execute-api +\b[0-9a-z]{10}\.execute-api\.[-0-9a-z]+\.amazonaws\.com\b +# AWS ELB +\b\w+\.[-0-9a-z]+\.elb\.amazonaws\.com\b +# AWS SNS +\bsns\.[-0-9a-z]+.amazonaws\.com/[-\w/&#%_?:=]* +# AWS VPC +vpc-\w+ + +# While you could try to match `http://` and `https://` by using `s?` in `https?://`, sometimes there +# YouTube url +\b(?:(?:www\.|)youtube\.com|youtu.be)/(?:channel/|embed/|user/|playlist\?list=|watch\?v=|v/|)[-a-zA-Z0-9?&=_%]* +# YouTube music +\bmusic\.youtube\.com/youtubei/v1/browse(?:[?&]\w+=[-a-zA-Z0-9?&=_]*) +# YouTube tag +<\s*youtube\s+id=['"][-a-zA-Z0-9?_]*['"] +# YouTube image +\bimg\.youtube\.com/vi/[-a-zA-Z0-9?&=_]* +# Google Accounts +\baccounts.google.com/[-_/?=.:;+%&0-9a-zA-Z]* +# Google Analytics +\bgoogle-analytics\.com/collect.[-0-9a-zA-Z?%=&_.~]* +# Google APIs +\bgoogleapis\.(?:com|dev)/[a-z]+/(?:v\d+/|)[a-z]+/[-@:./?=\w+|&]+ +# Google Storage +\b[-a-zA-Z0-9.]*\bstorage\d*\.googleapis\.com(?:/\S*|) +# Google Calendar +\bcalendar\.google\.com/calendar(?:/u/\d+|)/embed\?src=[@./?=\w&%]+ +\w+\@group\.calendar\.google\.com\b +# Google DataStudio +\bdatastudio\.google\.com/(?:(?:c/|)u/\d+/|)(?:embed/|)(?:open|reporting|datasources|s)/[-0-9a-zA-Z]+(?:/page/[-0-9a-zA-Z]+|) +# The leading `/` here is as opposed to the `\b` above +# ... a short way to match `https://` or `http://` since most urls have one of those prefixes +# Google Docs +/docs\.google\.com/[a-z]+/(?:ccc\?key=\w+|(?:u/\d+|d/(?:e/|)[0-9a-zA-Z_-]+/)?(?:edit\?[-\w=#.]*|/\?[\w=&]*|)) +# Google Drive +\bdrive\.google\.com/(?:file/d/|open)[-0-9a-zA-Z_?=]* +# Google Groups +\bgroups\.google\.com(?:/[a-z]+/(?:#!|)[^/\s"]+)* +# Google Maps +\bmaps\.google\.com/maps\?[\w&;=]* +# Google themes +themes\.googleusercontent\.com/static/fonts/[^/\s"]+/v\d+/[^.]+. +# Google CDN +\bclients2\.google(?:usercontent|)\.com[-0-9a-zA-Z/.]* +# Goo.gl +/goo\.gl/[a-zA-Z0-9]+ +# Google Chrome Store +\bchrome\.google\.com/webstore/detail/[-\w]*(?:/\w*|) +# Google Books +\bgoogle\.(?:\w{2,4})/books(?:/\w+)*\?[-\w\d=&#.]* +# Google Fonts +\bfonts\.(?:googleapis|gstatic)\.com/[-/?=:;+&0-9a-zA-Z]* +# Google Forms +\bforms\.gle/\w+ +# Google Scholar +\bscholar\.google\.com/citations\?user=[A-Za-z0-9_]+ +# Google Colab Research Drive +\bcolab\.research\.google\.com/drive/[-0-9a-zA-Z_?=]* + +# GitHub SHAs (api) +\bapi.github\.com/repos(?:/[^/\s"]+){3}/[0-9a-f]+\b +# GitHub SHAs (markdown) +#(?:\[`?[0-9a-f]+`?\]\(https:/|)/(?:www\.|)github\.com(?:/[^/\s"]+){2,}(?:/[^/\s")]+)(?:[0-9a-f]+(?:[-0-9a-zA-Z/#.]*|)\b|) +# GitHub SHAs +\bgithub\.com(?:/[^/\s"]+){2}[@#][0-9a-f]+\b +# GitHub SHA refs +\[([0-9a-f]+)\]\(https://(?:www\.|)github.com/[-\w]+/[-\w]+/commit/\g{-1}[0-9a-f]* +# GitHub wiki +\bgithub\.com/(?:[^/]+/){2}wiki/(?:(?:[^/]+/|)_history|[^/]+(?:/_compare|)/[0-9a-f.]{40,})\b +# githubusercontent +/[-a-z0-9]+\.githubusercontent\.com/[-a-zA-Z0-9?&=_\/.]* +# githubassets +\bgithubassets.com/[0-9a-f]+(?:[-/\w.]+) +# gist github +\bgist\.github\.com/[^/\s"]+/[0-9a-f]+ +# git.io +\bgit\.io/[0-9a-zA-Z]+ +# GitHub JSON +"node_id": "[-a-zA-Z=;:/0-9+_]*" +# Contributor +\[[^\]]+\]\(https://github\.com/[^/\s"]+/?\) +# GHSA +GHSA(?:-[0-9a-z]{4}){3} + +# GitHub actions +\buses:\s+[-\w.]+/[-\w./]+@[-\w.]+ + +# GitLab commit +\bgitlab\.[^/\s"]*/\S+/\S+/commit/[0-9a-f]{7,16}#[0-9a-f]{40}\b +# GitLab merge requests +\bgitlab\.[^/\s"]*/\S+/\S+/-/merge_requests/\d+/diffs#[0-9a-f]{40}\b +# GitLab uploads +\bgitlab\.[^/\s"]*/uploads/[-a-zA-Z=;:/0-9+]* +# GitLab commits +\bgitlab\.[^/\s"]*/(?:[^/\s"]+/){2}commits?/[0-9a-f]+\b + +# binance +accounts\.binance\.com/[a-z/]*oauth/authorize\?[-0-9a-zA-Z&%]* + +# bitbucket diff +\bapi\.bitbucket\.org/\d+\.\d+/repositories/(?:[^/\s"]+/){2}diff(?:stat|)(?:/[^/\s"]+){2}:[0-9a-f]+ +# bitbucket repositories commits +\bapi\.bitbucket\.org/\d+\.\d+/repositories/(?:[^/\s"]+/){2}commits?/[0-9a-f]+ +# bitbucket commits +\bbitbucket\.org/(?:[^/\s"]+/){2}commits?/[0-9a-f]+ + +# bit.ly +\bbit\.ly/\w+ + +# bitrise +\bapp\.bitrise\.io/app/[0-9a-f]*/[\w.?=&]* + +# bootstrapcdn.com +\bbootstrapcdn\.com/[-./\w]+ + +# cdn.cloudflare.com +\bcdnjs\.cloudflare\.com/[./\w]+ + +# circleci +\bcircleci\.com/gh(?:/[^/\s"]+){1,5}.[a-z]+\?[-0-9a-zA-Z=&]+ + +# gitter +\bgitter\.im(?:/[^/\s"]+){2}\?at=[0-9a-f]+ + +# gravatar +\bgravatar\.com/avatar/[0-9a-f]+ + +# ibm +[a-z.]*ibm\.com/[-_#=:%!?~.\\/\d\w]* + +# imgur +\bimgur\.com/[^.]+ + +# Internet Archive +\barchive\.org/web/\d+/(?:[-\w.?,'/\\+&%$#_:]*) + +# discord +/discord(?:app\.com|\.gg)/(?:invite/)?[a-zA-Z0-9]{7,} + +# Disqus +\bdisqus\.com/[-\w/%.()!?&=_]* + +# medium link +\blink\.medium\.com/[a-zA-Z0-9]+ +# medium +\bmedium\.com/@?[^/\s"]+/[-\w]+ + +# microsoft +\b(?:https?://|)(?:(?:download\.visualstudio|docs|msdn2?|research)\.microsoft|blogs\.msdn)\.com/[-_a-zA-Z0-9()=./%]* +# powerbi +\bapp\.powerbi\.com/reportEmbed/[^"' ]* +# vs devops +\bvisualstudio.com(?::443|)/[-\w/?=%&.]* +# microsoft store +\bmicrosoft\.com/store/apps/\w+ + +# mvnrepository.com +\bmvnrepository\.com/[-0-9a-z./]+ + +# now.sh +/[0-9a-z-.]+\.now\.sh\b + +# oracle +\bdocs\.oracle\.com/[-0-9a-zA-Z./_?#&=]* + +# chromatic.com +/\S+.chromatic.com\S*[")] + +# codacy +\bapi\.codacy\.com/project/badge/Grade/[0-9a-f]+ + +# compai +\bcompai\.pub/v1/png/[0-9a-f]+ + +# mailgun api +\.api\.mailgun\.net/v3/domains/[0-9a-z]+\.mailgun.org/messages/[0-9a-zA-Z=@]* +# mailgun +\b[0-9a-z]+.mailgun.org + +# /message-id/ +/message-id/[-\w@./%]+ + +# Reddit +\breddit\.com/r/[/\w_]* + +# requestb.in +\brequestb\.in/[0-9a-z]+ + +# sched +\b[a-z0-9]+\.sched\.com\b + +# Slack url +slack://[a-zA-Z0-9?&=]+ +# Slack +\bslack\.com/[-0-9a-zA-Z/_~?&=.]* +# Slack edge +\bslack-edge\.com/[-a-zA-Z0-9?&=%./]+ +# Slack images +\bslack-imgs\.com/[-a-zA-Z0-9?&=%.]+ + +# shields.io +\bshields\.io/[-\w/%?=&.:+;,]* + +# stackexchange -- https://stackexchange.com/feeds/sites +\b(?:askubuntu|serverfault|stack(?:exchange|overflow)|superuser).com/(?:questions/\w+/[-\w]+|a/) + +# Sentry +[0-9a-f]{32}\@o\d+\.ingest\.sentry\.io\b + +# Twitter markdown +\[@[^[/\]:]*?\]\(https://twitter.com/[^/\s"')]*(?:/status/\d+(?:\?[-_0-9a-zA-Z&=]*|)|)\) +# Twitter hashtag +\btwitter\.com/hashtag/[\w?_=&]* +# Twitter status +\btwitter\.com/[^/\s"')]*(?:/status/\d+(?:\?[-_0-9a-zA-Z&=]*|)|) +# Twitter profile images +\btwimg\.com/profile_images/[_\w./]* +# Twitter media +\btwimg\.com/media/[-_\w./?=]* +# Twitter link shortened +\bt\.co/\w+ + +# facebook +\bfburl\.com/[0-9a-z_]+ +# facebook CDN +\bfbcdn\.net/[\w/.,]* +# facebook watch +\bfb\.watch/[0-9A-Za-z]+ + +# dropbox +\bdropbox\.com/sh?/[^/\s"]+/[-0-9A-Za-z_.%?=&;]+ + +# ipfs protocol +ipfs://[0-9a-zA-Z]{3,} +# ipfs url +/ipfs/[0-9a-zA-Z]{3,} + +# w3 +\bw3\.org/[-0-9a-zA-Z/#.]+ + +# loom +\bloom\.com/embed/[0-9a-f]+ + +# regex101 +\bregex101\.com/r/[^/\s"]+/\d+ + +# figma +\bfigma\.com/file(?:/[0-9a-zA-Z]+/)+ + +# freecodecamp.org +\bfreecodecamp\.org/[-\w/.]+ + +# image.tmdb.org +\bimage\.tmdb\.org/[/\w.]+ + +# mermaid +\bmermaid\.ink/img/[-\w]+|\bmermaid-js\.github\.io/mermaid-live-editor/#/edit/[-\w]+ + +# Wikipedia +\ben\.wikipedia\.org/wiki/[-\w%.#]+ + +# gitweb +[^"\s]+/gitweb/\S+;h=[0-9a-f]+ + +# HyperKitty lists +/archives/list/[^@/]+@[^/\s"]*/message/[^/\s"]*/ + +# lists +/thread\.html/[^"\s]+ + +# list-management +\blist-manage\.com/subscribe(?:[?&](?:u|id)=[0-9a-f]+)+ + +# kubectl.kubernetes.io/last-applied-configuration +"kubectl.kubernetes.io/last-applied-configuration": ".*" + +# pgp +\bgnupg\.net/pks/lookup[?&=0-9a-zA-Z]* + +# Spotify +\bopen\.spotify\.com/embed/playlist/\w+ + +# Mastodon +\bmastodon\.[-a-z.]*/(?:media/|@)[?&=0-9a-zA-Z_]* + +# scastie +\bscastie\.scala-lang\.org/[^/]+/\w+ + +# images.unsplash.com +\bimages\.unsplash\.com/(?:(?:flagged|reserve)/|)[-\w./%?=%&.;]+ + +# pastebin +\bpastebin\.com/[\w/]+ + +# heroku +\b\w+\.heroku\.com/source/archive/\w+ + +# quip +\b\w+\.quip\.com/\w+(?:(?:#|/issues/)\w+)? + +# badgen.net +\bbadgen\.net/badge/[^")\]'\s]+ + +# statuspage.io +\w+\.statuspage\.io\b + +# media.giphy.com +\bmedia\.giphy\.com/media/[^/]+/[\w.?&=]+ + +# tinyurl +\btinyurl\.com/\w+ + +# codepen +\bcodepen\.io/[\w/]+ + +# registry.npmjs.org +\bregistry\.npmjs\.org/(?:@[^/"']+/|)[^/"']+/-/[-\w@.]+ + +# getopts +\bgetopts\s+(?:"[^"]+"|'[^']+') + +# ANSI color codes +(?:\\(?:u00|x)1[Bb]|\x1b|\\u\{1[Bb]\})\[\d+(?:;\d+|)m + +# URL escaped characters +%[0-9A-F][A-F](?=[A-Za-z]) +# lower URL escaped characters +#%[0-9a-f][a-f](?=[a-z]{2,}) +# IPv6 +\b(?:[0-9a-fA-F]{0,4}:){3,7}[0-9a-fA-F]{0,4}\b +# c99 hex digits (not the full format, just one I've seen) +0x[0-9a-fA-F](?:\.[0-9a-fA-F]*|)[pP] +# Punycode +\bxn--[-0-9a-z]+ +# sha +sha\d+:[0-9]*[a-f]{3,}[0-9a-f]* +# sha-... -- uses a fancy capture +(\\?['"]|")[0-9a-f]{40,}\g{-1} +# hex runs +\b[0-9a-fA-F]{16,}\b +# hex in url queries +=[0-9a-fA-F]*?(?:[A-F]{3,}|[a-f]{3,})[0-9a-fA-F]*?& +# ssh +(?:ssh-\S+|-nistp256) [-a-zA-Z=;:/0-9+]{12,} + +# PGP +\b(?:[0-9A-F]{4} ){9}[0-9A-F]{4}\b +# GPG keys +\b(?:[0-9A-F]{4} ){5}(?: [0-9A-F]{4}){5}\b +# Well known gpg keys +.well-known/openpgpkey/[\w./]+ + +# pki +-----BEGIN.*-----END + +# uuid: +\b[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}\b +# hex digits including css/html color classes: +(?:[\\0][xX]|\\u|[uU]\+|#x?|%23)[0-9_a-fA-FgGrR]*?[a-fA-FgGrR]{2,}[0-9_a-fA-FgGrR]*(?:[uUlL]{0,3}|[iu]\d+)\b +# integrity +integrity=(['"])(?:\s*sha\d+-[-a-zA-Z=;:/0-9+]{40,})+\g{-1} + +# https://www.gnu.org/software/groff/manual/groff.html +# man troff content +\\f[BCIPR] +# '/" +\\\([ad]q + +# .desktop mime types +^MimeTypes?=.*$ +# .desktop localized entries +^[A-Z][a-z]+\[[a-z]+\]=.*$ +# Localized .desktop content +Name\[[^\]]+\]=.* + +# IServiceProvider / isAThing +\b(?:I|isA)(?=(?:[A-Z][a-z]{2,})+(?:[A-Z]|\b)) + +# crypt +(['"])\$2[ayb]\$.{56}\g{-1} + +# scrypt / argon +\$(?:scrypt|argon\d+[di]*)\$\S+ + +# go.sum +\bh1:\S+ + +# scala modules +("[^"]+"\s*%%?\s*){2,3}"[^"]+" + +# Input to GitHub JSON +content: (['"])[-a-zA-Z=;:/0-9+]*=\g{-1} + +# This does not cover multiline strings, if your repository has them, +# you'll want to remove the `(?=.*?")` suffix. +# The `(?=.*?")` suffix should limit the false positives rate +# printf +#%(?:(?:(?:hh?|ll?|[jzt])?[diuoxn]|l?[cs]|L?[fega]|p)(?=[a-z]{2,})|(?:X|L?[FEGA]|p)(?=[a-zA-Z]{2,}))(?!%)(?=[_a-zA-Z]+(?!%)\b)(?=.*?['"]) + +# Alternative printf +# %s +%(?:s(?=[a-z]{2,}))(?!%)(?=[_a-zA-Z]+(?!%)\b)(?=.*?['"]) + +# Python string prefix / binary prefix +# Note that there's a high false positive rate, remove the `?=` and search for the regex to see if the matches seem like reasonable strings +(?|m([|!/@#,;']).*?\g{-1}) + +# perl qr regex +(?|\(.*?\)|([|!/@#,;']).*?\g{-1}) + +# perl run +perl(?:\s+-[a-zA-Z]\w*)+ + +# C network byte conversions +#(?:\d|\bh)to(?!ken)(?=[a-z])|to(?=[adhiklpun]\() + +# Go regular expressions +regexp?\.MustCompile\(`[^`]*`\) + +# regex choice +#\(\?:[^)]+\|[^)]+\) + +# proto +^\s*(\w+)\s\g{-1} = + +# sed regular expressions +sed 's/(?:[^/]*?[a-zA-Z]{3,}[^/]*?/){2} + +# node packages +(["'])@[^/'" ]+/[^/'" ]+\g{-1} + +# go install +go install(?:\s+[a-z]+\.[-@\w/.]+)+ + +# jetbrains schema https://youtrack.jetbrains.com/issue/RSRP-489571 +urn:shemas-jetbrains-com + +# kubernetes pod status lists +# https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase +\w+(?:-\w+)+\s+\d+/\d+\s+(?:Running|Pending|Succeeded|Failed|Unknown)\s+ + +# kubectl - pods in CrashLoopBackOff +\w+-[0-9a-f]+-\w+\s+\d+/\d+\s+CrashLoopBackOff\s+ + +# kubernetes object suffix +-[0-9a-f]{10}-\w{5}\s + +# posthog secrets +([`'"])phc_[^"',]+\g{-1} + +# xcode + +# xcodeproject scenes +(?:Controller|destination|ID|id)="\w{3}-\w{2}-\w{3}" + +# xcode api botches +customObjectInstantitationMethod + +# configure flags +#.* \| --\w{2,}.*?(?=\w+\s\w+) + +# font awesome classes +\.fa-[-a-z0-9]+ + +# bearer auth +(['"])[Bb]ear[e][r] .*?\g{-1} + +# bearer auth +\b[Bb]ear[e][r]:? [-a-zA-Z=;:/0-9+.]+ + +# basic auth +(['"])[Bb]asic [-a-zA-Z=;:/0-9+]{3,}\g{-1} + +# base64 encoded content +#([`'"])[-a-zA-Z=;:/0-9+]{3,}=\g{-1} +# base64 encoded content in xml/sgml +>[-a-zA-Z=;:/0-9+]{3,}== 0.0.22) +\\\w{2,}\{ + +# American Mathematical Society (AMS) / Doxygen +TeX/AMS + +# File extensions +\*\.[+\w]+, + +# eslint +"varsIgnorePattern": ".+" + +# Windows short paths +[/\\][^/\\]{5,6}~\d{1,2}[/\\] + +# cygwin paths +/cygdrive/[a-zA-Z]/(?:Program Files(?: \(.*?\)| ?)(?:/[-+.~\\/()\w ]+)*|[-+.~\\/()\w])+ + +# in check-spelling@v0.0.22+, printf markers aren't automatically consumed +# printf markers +#(?v# +(?:(?<=[A-Z]{2})V|(?<=[a-z]{2}|[A-Z]{2})v)\d+(?:\b|(?=[a-zA-Z_])) + +# Compiler flags (Unix, Java/Scala) +# Use if you have things like `-Pdocker` and want to treat them as `docker` +(?:^|[\t ,>"'`=(])-(?:(?:J-|)[DPWXY]|[Llf])(?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,}) + +# Compiler flags (Windows / PowerShell) +# This is a subset of the more general compiler flags pattern. +# It avoids matching `-Path` to prevent it from being treated as `ath` +(?:^|[\t ,"'`=(])-(?:[DPL](?=[A-Z]{2,})|[WXYlf](?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,})) + +# Compiler flags (linker) +,-B + +# libraries +\blib(?!rar(?:ies|y))(?=[a-z]) + +# WWNN/WWPN (NAA identifiers) +#\b(?:0x)?10[0-9a-f]{14}\b|\b(?:0x|3)?[25][0-9a-f]{15}\b|\b(?:0x|3)?6[0-9a-f]{31}\b + +# iSCSI iqn (approximate regex) +\biqn\.[0-9]{4}-[0-9]{2}(?:[\.-][a-z][a-z0-9]*)*\b + +# curl arguments +\b(?:\\n|)curl(?:\.exe|)(?:\s+-[a-zA-Z]{1,2}\b)*(?:\s+-[a-zA-Z]{3,})(?:\s+-[a-zA-Z]+)* +# set arguments +\b(?:bash|sh|set)(?:\s+-[abefimouxE]{1,2})*\s+-[abefimouxE]{3,}(?:\s+-[abefimouxE]+)* +# tar arguments +\b(?:\\n|)g?tar(?:\.exe|)(?:(?:\s+--[-a-zA-Z]+|\s+-[a-zA-Z]+|\s[ABGJMOPRSUWZacdfh-pr-xz]+\b)(?:=[^ ]*|))+ +# tput arguments -- https://man7.org/linux/man-pages/man5/terminfo.5.html -- technically they can be more than 5 chars long... +\btput\s+(?:(?:-[SV]|-T\s*\w+)\s+)*\w{3,5}\b +# macOS temp folders +/var/folders/\w\w/[+\w]+/(?:T|-Caches-)/ +# github runner temp folders +/home/runner/work/_temp/[-_/a-z0-9]+ diff --git a/.github/actions/spelling/excludes.txt b/.github/actions/spelling/excludes.txt new file mode 100644 index 00000000000..65795edf086 --- /dev/null +++ b/.github/actions/spelling/excludes.txt @@ -0,0 +1,90 @@ +# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-excludes +(?:^|/)(?i)COPYRIGHT +(?:^|/)(?i)LICEN[CS]E +(?:^|/)3rdparty/ +(?:^|/)go\.sum$ +(?:^|/)package(?:-lock|)\.json$ +(?:^|/)Pipfile$ +(?:^|/)pyproject.toml +(?:^|/)requirements(?:-dev|-doc|-test|)\.txt$ +(?:^|/)vendor/ +\.a$ +\.ai$ +\.all-contributorsrc$ +\.avi$ +\.bmp$ +\.bz2$ +\.cer$ +\.class$ +\.coveragerc$ +\.crl$ +\.crt$ +\.csr$ +\.dll$ +\.docx?$ +\.drawio$ +\.DS_Store$ +\.eot$ +\.eps$ +\.exe$ +\.gif$ +\.git-blame-ignore-revs$ +\.gitattributes$ +\.gitkeep$ +\.graffle$ +\.gz$ +\.icns$ +\.ico$ +\.ipynb$ +\.jar$ +\.jks$ +\.jpe?g$ +\.key$ +\.lib$ +\.lock$ +\.map$ +\.min\.. +\.mo$ +\.mod$ +\.mp[34]$ +\.o$ +\.ocf$ +\.otf$ +\.p12$ +\.parquet$ +\.pdf$ +\.pem$ +\.pfx$ +\.png$ +\.psd$ +\.pyc$ +\.pylintrc$ +\.qm$ +\.s$ +\.sig$ +\.so$ +\.svgz?$ +\.sys$ +\.tar$ +\.tgz$ +\.tiff?$ +\.ttf$ +\.wav$ +\.webm$ +\.webp$ +\.woff2?$ +\.xcf$ +\.xlsx?$ +\.xpm$ +\.xz$ +\.zip$ +^\.github/actions/spelling/ +^\Q.github/workflows/spelling.yml\E$ +^\Qbindings/go/godoc-resources/jquery.js\E$ +^\Qbindings/go/src/fdb/fdb_darwin.go\E$ +^\Qbindings/go/src/fdb/tuple/testdata/tuples.golden\E$ +^\Qbindings/python/fdb/libfdb_c.dylib.pth\E$ +^\Qfdbrpc/libcoroutine/asm.S\E$ +^\Qfdbrpc/libcoroutine/Base.h\E$ +^contrib/ +ignore$ diff --git a/.github/actions/spelling/expect.txt b/.github/actions/spelling/expect.txt new file mode 100644 index 00000000000..a012a02b4ea --- /dev/null +++ b/.github/actions/spelling/expect.txt @@ -0,0 +1,3564 @@ +aapcs +abcd +ABCDEFGHIJKL +ABCDEFGHIJKLMNOPQRSTUVWXY +ABCDEFGHIJKLO +abdc +abmax +abmin +abortable +absl +acac +accountname +Accs +accumulativechecksumindex +ACCUMULATIVECHECKSUMUTIL +achain +ACI +actime +actorcollection +actorcompiler +actorid +ACTORLINEAGE +actorname +ADCs +addgroup +addi +addname +addoption +addref +addtask +adminserver +adonovan +advanceversion +aeabi +AESE +AESMC +Aest +AFAICT +aftest +ahm +ahusain +aio +aixdesc +ajb +ajsdflkajdsflkjadsf +AKIAIOSFODNN +Alakuijala +alarmtime +alexmiller +Alito +ALittle +alksdfjaklsdfjlkasdjflkasdjfklajsdflk +allmul +allnext +allocs +allowitemcountdecrease +allprev +alltaskslot +ALLUSERSPROFILE +alog +alphanum +altivec +altname +ALUs +alwaysfail +AMachine +amazonlinux +amz +amzn +anoyes +Ansaldi +ansicpg +antipattern +antiquorum +antirez +anton +anyy +apath +apiguardian +apitester +apiversion +APIWORKLOAD +apotylitsin +APPLYMETADATAMUTATION +architecting +argcc +ARGN +ARGPARSEUTIL +armon +arpa +ARPPRODUCTICON +ARRAYSIZE +artifactory +arv +asan +asbehdlquj +asciz +asdfasdf +asdfzxc +AServer +asi +ASingle +ASIOREACTOR +ASIZE +asmdefs +asmfile +ASnapshot +Asnyc +aspxx +ASSER +asyncfile +ASYNCFILEBLOBSTORE +ASYNCFILECACHED +ASYNCFILEEIO +ASYNCFILEKAIO +ASYNCFILENONDURABLE +ASYNCFILEREADAHEAD +ASYNCFILEWINASIO +asynctaskthread +ASYNCVAR +asyncvfs +ATable +atfork +atn +ATOMICOP +atos +attoseconds +attrlist +attrname +AType +AUDITUTILS +austrncpy +authlib +authtoken +AUTIASP +autocheckpoint +autorestart +autouse +autovacuum +autovectorization +autovectorize +autovectorizing +aveq +AVL +avp +avx +AWorkload +awscli +awssdk +axn +Aync +azurestorage +backlinks +backupagent +BACKUPINTERFACE +BACKUPKEYS +backuplatest +BACKUPPROGRESS +backupstatus +BACKUPTLSCONFIG +Bader +BAFRW +bananna +barthread +BARW +baseblock +BASEKIT +bavail +bbb +bbc +bcc +bck +BCs +bctrl +BDBA +bdir +beginkey +beginstr +beginthread +BEK +beq +Beurden +bfd +bfines +bfree +bfrom +bgbackup +bgcc +bgencryptionctx +bgencryptionkey +bgf +bgfiledescription +bgfilepointer +bgh +bgl +bglibs +bgm +bgmerge +bgmergebounds +bgmutation +bgpforce +bgrestore +bgrw +bgs +bgtenantprefix +BGUF +BGV +BGW +bic +bieber +bigdoc +bigobj +Bigtable +biilabs +bindingtester +BINDINGTESTS +bindir +binliu +binpath +binutils +bitfield +bitflip +bitfliph +bitflipl +bitlen +bitrot +bitsflip +bkb +bkey +bkeysel +bkn +bknl +bkp +blahblahbl +blb +blobbification +blobbified +blobbify +blobbifying +blobdir +blobgranule +BLOBGRANULECOMMON +BLOBGRANULEFILES +BLOBGRANULESERVERCOMMON +BLOBGRANULEVALIDATION +blobkey +blobmanager +BLOBMANAGERINTERFACE +BLOBMIGRATORINTERFACE +blobrange +blobrestore +BLOBRESTORECOMMON +blobspace +blobstats +blobstore +BLOBWORKER +BLOBWORKERCOMMON +BLOBWORKERINTERFACE +BLOBWORKERSTATUSSTREAM +blockable +blockid +blr +BMC +bmi +BMID +BMQ +Bnd +bocksrocker +bools +bootup +BORINGSSL +BORLANDC +bpo +braunl +breadcrumb +BREAKONERROR +Breyer +brokenrole +browlett +brownbag +brsst +bsd +bsel +bsize +bstore +BStream +bti +btpage +Btrfs +bttest +BType +bucketname +bufferedout +buflen +bufr +bufs +BUFSIZ +BUFSTDOUTERR +buggification +buggified +buggify +BUGGIFYd +buggifying +BUGREPORT +buildbot +builddebs +builddir +BUILDFLAGS +buildpkg +buildroot +buildrpms +BUILDTIME +bulkload +burtleburtle +busymap +bvr +bwa +bwi +BWID +bwl +BWOn +BWrite +BWs +BWTo +bytelimit +byteset +byteshift +bytesize +bytesleft +byteslice +bytesstored +bytewise +CACHEDFILE +cachehits +CACHEMEMLIMIT +cachemisses +CAcreateserial +callbackf +callgraph +CANTOPEN +capi +Capitain +Cardano +cba +cback +cbfunc +cbi +cbl +CBlock +cbs +cbtr +cbz +ccache +ccb +CCBM +ccc +CCCK +ccd +ccdc +CCDD +CCEKP +Cch +CCheck +cck +CCLS +ccmake +CCMG +ccmp +CCOLON +ccr +CCRK +ccs +CCSIn +cctx +CCUp +CCWDB +ccx +CDISABLED +CENABLED +CEnum +ceqaa +ceqbb +cerrno +CERTAUTHFILE +certindex +certserial +CES +cfa +CFID +CFIn +cfis +CFolder +cfp +cfront +CFSTR +CFuture +Cgen +cgn +changeclusterkey +changecounter +changedescription +changefeed +CHANGEFEEDSTREAM +CHANTABILITY +CHAOSMETRICS +charstring +Chd +checkall +checkbuf +Checkpointbytes +checkv +childf +childs +chkconfig +chksum +chsize +CIAL +CInfo +CInt +ciph +cipherkey +CItr +CKey +CKID +ckr +cks +ckv +Classlike +Classloader +Classmember +clearknob +Clearn +clearrange +clearstats +clientgoscheme +clientid +CLIENTKNOBCCOLLECTION +CLIENTKNOBCOLLECTION +CLIENTLEADERREG +clientlib +CLIENTLOGEVENTS +CLIENTSDIR +CLIENTWORKERINTERFACE +Clinkenbeard +Clnt +CLoc +CLOCKIMPL +closesocket +clsname +clumpiness +CLUSTERCONNECTIONFILE +CLUSTERCONNECTIONKEY +CLUSTERCONNECTIONMEMORYRECORD +clustercontroller +CLUSTERFILE +CLUSTERFILEEXISTS +CLUSTERFILEPATH +CLUSTERID +CLUSTERRECOVERY +clzll +cma +cmakedefine +CMDEXE +cmds +cmpfunc +cneg +cnf +cnk +cnode +cntvct +cocoartf +cocoasubrtf +codechar +codepath +codewalk +coinflip +collabs +coloc +colortbl +Comapction +combinedh +combinedl +commitget +commitoverall +commitproxy +COMMITPROXYINTERFACE +Committedx +committers +COMMITTRANSACTION +COMPACTRANGE +condrestart +conection +confd +confdir +conff +conffile +CONFIGCLASS +CONFIGFILEEXISTS +CONFIGFOLDER +CONFIGFOLLOWER +CONFIGTXN +CONFIGURECLUSTER +configuretenant +conflictor +CONFLICTSET +confpath +conio +CONNECTIONPOOL +connectionprovider +CONNECTIONSTRING +connectpool +CONNFILE +CONOUT +consistencycheck +consistencycheckurgent +consistencyscan +CONSISTENCYSCANINTERFACE +CONSOLELOG +constness +constrange +containsbreak +CONTINUOUSSAMPLE +contnode +cookielib +COOLDOWN +coor +COORDINATIONINTERFACE +Coordinatorslist +copyable +COPYONLY +coredump +COROFLOW +coroimpl +coros +COROUTILS +COROUTINESIMPL +corretto +countforzeta +countp +coveragefile +coveragetool +cpack +cpalloc +CPath +cplusplus +CPointer +cppcoro +cppflags +cpuacct +CPUFLAG +cpusec +cpuset +cpustate +cquery +cranges +CRASHONERROR +CREATEMETACLUSTER +createtemplatedb +createtenant +crpf +crps +crt +crtype +crv +CService +CShim +CSID +CSIDL +csimple +CSource +CSpace +cstate +cstream +CStyle +ctest +CThread +cti +Ctrval +ctxp +ctxs +ctz +ctzll +curm +currentbin +currentmodule +CURRENTVER +cvalue +cvar +CVersion +cwpf +cwps +cxa +cxxabi +cxxflags +CYEXAMPLEKEY +dacl +dadgar +Dahab +DATABASECONFIGURATION +databased +datacenter +datadir +datadistribution +DATADISTRIBUTORINTERFACE +Datadog +Datadurable +datafolder +datahall +dataloss +datamove +Datas +datasize +datastructure +datebuf +dateparser +datestamp +DBBG +DBCF +DBCORESTATE +DBCS +dbcx +dbf +dbgid +dbi +dbinfo +dbits +DBKVS +DBOn +DCBA +DCFO +dcid +DCIs +dcs +DCTo +ddbalance +ddconfig +ddcx +ddd +DDdispatch +DDDo +ddi +ddid +DDinit +DDKVs +DDRELOCATIONQUEUE +dds +DDSHARDTRACKER +DDSHAREDCONTEXT +ddsketch +ddtc +DDTXNPROCESSOR +DDV +ddvalue +deadbeef +deadcode +debian +Debouncer +debuginfo +debuglink +DEBUGTRACE +dechunked +deciphertext +declear +DECODECACHE +decodednode +decoderange +DECOMMISSIONMETACLUSTER +deconfigure +deconfigured +deconflict +deconstruction +decryptedtext +decryptor +dedup +deduping +defattr +defaulttenant +defb +definedness +defragmented +Defragmenting +DEK +Dekorte +deleteme +DELETERANGE +deletetenant +delref +deltask +deltatree +demangled +denormalizing +dentalloc +dentoffs +Deompress +depacked +deprioritize +deprioritized +Deq +Deregistering +deserialiser +destcontainer +destdir +destlog +dests +desync +DETAILALLOCATORMEMUSAGE +detailf +DETERMINISTICRANDOM +detmine +devhelp +devinfo +devstat +devstoreaccount +devtoolset +diffing +digestlen +dinfo +Dini +dirents +dirfd +dirp +dirtyfeeds +DISABLEDTESTS +Disableon +diskstats +DISPLAYERROR +distros +dkr +dladdr +dlclose +dlerror +dlfcn +Dlg +dli +dlobj +dlpi +dmb +DMetric +DMID +dmitry +dmv +dname +dnl +DNSTo +dnsutils +docdemo +docfields +dochecksum +docid +docname +docpreview +doctestjson +doctree +documentclass +Dof +domaindata +domainids +donotuse +dontcare +DONTDUMP +DONTREPLACE +dontstop +dosmaperr +dotagging +dotdot +DOTNET +dotrace +DOUBLETIME +downsample +downsampled +downsampling +DPDK +dpointer +dprint +dqv +drd +dre +drps +DRs +DRU +dryrun +DSample +dscur +DSL +dsltest +DSocket +dstend +dstin +dstofss +dstonly +dstream +dstu +dtags +dto +dtransaction +dtype +Duh +DUMPTOKEN +dupl +DVL +dvs +DWAL +easyaspi +eax +EBackup +ebp +EBrake +ebx +ecc +ecode +ecx +edb +edi +EDIPARTY +editline +edmweb +edx +eee +eexpected +eflags +EHsc +eip +ekb +ekey +ekeysel +ekn +eknl +ekp +EKPID +EKPTo +ELECTIONRESULT +elsebody +elts +embiggen +EMk +emmintrin +emoji +emptydir +emulu +encryptionheader +ENCRYPTKEYPROXYINTERFACE +encryptor +endcommit +enddate +endfunction +endiannesses +endk +endkey +endlink +endloc +endmacro +Endof +endp +endproc +endptr +endregion +endstr +endt +Endtime +endversion +ent +entp +ENVKNOB +envsize +eoe +eoo +EOperation +epel +epoc +Eprev +epu +erc +ERestore +errbuf +errorcode +ERRORFILE +errorlimit +errorno +errval +erv +ERWISE +ESCAPINGK +ESCAPINGKV +Eschenburg +esel +esi +ESide +ESock +EStage +etcdir +ethz +etime +ETLS +etp +Etter +etterth +EType +evals +evan +evanbeurden +Evensen +eventfd +EVENTLOG +eventstream +EVENTTYPES +evfd +evictable +evp +evt +Exactrange +examplebucket +EXCED +excludedcid +excludedlocality +excludemachineid +excludeprocessid +excludezoneid +execinfo +EXECUTELONGFUNCTION +execv +existingother +EXITDIALOGOPTIONALTEXT +Expecto +exportloopref +extclients +extensibly +EXTERNC +extfile +extrapath +extrathingy +fadvise +failback +failedlocality +failmon +FAILUREMONITOR +fakekey +fakeroot +falloc +famfamfam +FANIN +Faried +FARSH +FASTALLOC +fastlog +fastpath +fastrand +FASTREF +fastrestore +FAULTINJECTION +fba +fbase +fbest +fbits +fblock +FBPS +fcharset +fchmodat +fchownat +fcm +FCopy +Fct +fcx +fdb +FDBAWS +fdbbackup +FDBBACKUPEXE +FDBBENCH +FDBBG +fdbbin +fdbblob +fdbc +FDBCDLL +FDBCH +FDBCINTERNAL +fdbcli +fdbclib +fdbclient +fdbclientlinktest +FDBCLIEXE +fdbconvert +FDBCOPTIONSH +FDBCTYPES +fdbd +fdbdecode +fdbdir +fdbdirectory +fdbdocmonitor +fdbdr +FDBDREXE +fdbempty +fdbemptylist +fdbenv +fdbfileconfig +fdbgolangsample +fdbimpl +fdbinvalid +fdbjni +fdbkey +fdbkubernetesmonitor +FDBLIB +FDBLIBDIR +fdblocality +fdbmon +fdbmonitor +fdboptions +FDBOPTIONSFILE +FDBPY +fdbpythonsample +FDBRELEASE +FDBREPO +fdbrestore +FDBRESTOREEXE +FDBROCKSDBVERSION +fdbrpc +fdbrpclinktest +fdbserver +fdbservice +fdbstatus +fdbsubspace +FDBSWIFTTEST +fdbtmp +fdbtuple +FDBTYPES +fdbver +FDBVERSION +fdc +FDCWD +fdesc +fdisk +fdopendir +fdq +fdr +FDRPC +FDSYNC +feddb +FEMI +fetchkeys +ffer +ffi +ffix +FFpace +FFs +fghijk +fha +FHP +fibonacci +fiemap +fii +fildes +fileconfig +fileconfigure +FILECONVERTER +filedir +FILENUM +fileset +filesz +Filetime +filetree +filledup +finalname +FINDBEST +Findjemalloc +findnode +Finduring +finishlen +fis +fixedbyte +fixedsize +fixmap +fixstr +Fjst +FKID +FKPL +flamegraph +flatbuffer +fldinst +fldrslt +flocalities +flowbench +FLOWLINENOISE +flowlinktest +flowlock +flowprocess +fluentd +flushall +fmap +fmter +fmutation +fnil +folderid +fonttbl +foobarbaz +foos +forcepurge +forcetoken +foundationdb +foundcorruption +fout +fpacc +FPFMT +fpformat +fpointer +FPOWNED +fpr +fpregs +fprint +fpstate +fpu +frconn +freeable +freeifaddrs +FREELIKE +freelist +freerealloc +freetable +fresults +fromdata +fromdocname +fromfeed +fromserverse +frsize +fsize +fsnotify +fsplit +fss +fstatat +fstati +fstatus +fsync'ed +fsyncs +ftr +ftss +ftw +ftwbuf +FUBd +FULLFILE +fullnames +fullsigset +fullsnapshot +futimens +futs +futurestream +fvs +fwe +fworkers +fwrites +fxn +Gamaarachchi +Gbps +gcov +gcp +gdbm +gdeb +GDI +gdwarf +gecos +GENERATIONREG +genericactors +genpkey +genprefix +gento +Geospatial +getall +getargspec +getbuf +getbyte +GETCHANGES +GETCIPHERKEYS +getclass +GETCLASSES +GETCLUSTER +GETCOMMITTEDVERSION +getcwdb +getdelta +getdevs +geten +getent +getevents +getframe +GETGENERATION +getifaddrs +getknob +GETLEADER +getlocation +getm +getmcontext +getrange +getrangefallback +getrangekeys +getrangereqandresult +GETREADVERSION +getslice +GETSNAPSHOTANDCHANGES +getstack +gettenant +GETTENANTGROUP +gettid +gettime +gevent +GFLAGS +GFp +ggdb +GHS +Giaquinta +GJxxgu +gkeys +GKR +gkv +GKVR +globalconf +GLOBALCONFIG +GLOBALDATA +Globallevel +globaltoc +globl +gmake +gmtoff +GNetwork +GNUCXX +GNUG +GNUTLS +goconst +gocyclo +godoc +gofmt +goimports +golangci +golibdir +gomega +googlebenchmark +googletest +GOPLATFORM +gosec +gosimple +gotcha +GOTPAGEOFF +Gouvea +govet +gperfools +gperftools +gpi +gpr +GPROF +Grabsch +granulefiles +granulesummary +gregs +grv +grvproxy +GRVPROXYINTERFACE +GRVR +gss +Guenter +GVR +gztar +hackish +Hadoop +handover +handshakers +Handshook +hashbig +HASHLEN +hashlittle +hashmask +hashsize +HASHSTATE +hashword +hasindu +haswell +hca +HCAOPERATIONS +hcmp +HCOUNTER +hdd +hdr +HEAD'ing +headerdir +headeroverlay +heapelide +heliu +hellobadmd +helloerror +hexchars +HHHH +hhmm +hier +highcontention +HIGHCONTENTIONPREFIXALLOCATOR +highmem +highwater +hitarea +hkf +hkipad +HKLM +hlen +hmmm +holdme +hotrange +hotspotting +howto +hpux +HQUERY +HRESULT +Hsieh +htf +htmlentitydefs +htmlhelp +htrace +HTracer +HTTPKV +httpkvstore +httpx +hugepages +HUGETLB +husseydevin +HVj +Hwaci +Hygeine +IALP +iarchive +IASYNCFILE +iat +ibar +ibuf +ibytes +Icelake +ICLIENTAPI +ICLOSABLE +icloud +ICONNECTION +icpx +icuuc +ICX +IDD +idempotencyids +idempotently +IDIn +IDini +IDIRECTORY +IDISKQUEUE +IDISPATCHED +idl +idmp +IDOn +IDTo +iend +ierror +ietf +ifa +ifaces +ifaddrs +ifbody +Ifc +IFCOUNT +ifd +IFDATA +IFDB +ifdefs +ifi +ifilter +ifilterfalse +ifm +ifmd +IFMIB +ifmibdata +ifmiblen +ifstate +IFuture +ifying +Igain +iid +IIF +iit +IKEYVALUECONTAINER +IKEYVALUESTORE +IKNOBCOLLECTION +ikv +IKVSOn +iless +imax +imbalanced +imds +imm +immintrin +Immut +IMO +IMPLEM +implib +IMPLIBSO +IMPLTYPE +inbox +inboxes +includeall +includedir +includehidden +incompletes +incount +INCREMENTALONLY +indexbytes +INDEXEDSET +indexfolder +indexnode +indextext +ineffassign +inext +infs +initialising +initialsplit +initialsum +INITSTATE +initval +injectedness +inloop +inodes +inorder +inp +Inplacement +inputpath +inserti +INSERTRANGE +installable +INSTALLDIR +INSTDIR +Intelli +interf +Interix +INTERNALBUFFER +interoperates +interoperating +interpocess +intersphinx +intf +Inthe +Inthis +INTKEY +intrin +inttypes +iob +ioblock +IOBSD +iocb +iocbpp +IOCOMMON +iocx +IOERR +iolog +ionet +ioresult +iostreams +IOVMALL +iowait +IPADD +ipaddr +ipaddresses +ipage +IPAGEENCRYPTIONKEYPROVIDER +ipager +IPREF +ipw +IPx +IRANDOM +irb +Irix +isb +isdst +ismbchar +ismod +ISOC +isprefix +isr +iss +ISSJIS +istss +itb +ite +itemcount +itemspace +iterationsi +iterbytes +IThread +ITHREADPOOL +itimerspec +itlow +ITLS +itor +itotal +itp +itr +itup +IUDP +IUDPSOCKET +ival +ivalue +ivar +ivfsoverlay +IVLEN +iwgxxt +IWYU +izip +Jalr +javaresult +jax +JBLEN +jboolean +JBTYPE +jbuffer +jclass +jdb +jdouble +jellycan +jemalloc +jenkins +jenv +jfield +Jingyu +jkl +JLjava +jmethod +jmpbuf +jni +JNICALL +JNIEXPORT +jnilib +jobject +JOBOBJECT +joern +johscheuer +joinall +Joswiak +JPS +jratcliffscarab +jscheuermann +jserv +jslocum +JSO +jstring +jthrowable +jti +jto +jwks +jwts +Kagan +kaio +KAIOF +KAIOIO +Kalicinski +kbr +kbt +kctx +kcv +Kentaro +Kerase +kevent +kevin +KEYBACKEDRANGEMAP +KEYBACKEDTYPES +keybuf +keycount +keyid +keykey +Keylll +KEYLOCATIONSERVICE +keyname +keyout +keypair +KEYPREFIXLEN +KEYPROXY +keyrange +keyrangemap +keysel +keyselector +keyserver +keyspace +keystr +keyt +keyval +keyvaluearray +keyvalues +keyvault +keywordsprimitives +kfast +Kfind +kickstarted +killall +killproc +KILLTYPE +kinda +kinfo +Kinsert +kipad +kmax +KMetrics +KMSCONNECTORINTERFACE +knobmanagement +KNOBNAME +KNOBPROTECTIVEGROUPS +KNOBVALUE +kocc +Kohlhoff +koo +kopad +kpath +kpi +KPQ +kps +kptr +krange +krarr +KRL +krm +krv +Krzys +ksec +ksecond +KShard +KSLR +ksrv +KTags +kty +Kurahone +KVa +kvb +KVDo +kvfile +kvfiledump +kvfilegeneratesums +kvfileintegritycheck +kvformat +kvm +kvp +kvpairs +kvptr +KVQ +kvr +kvrange +kvrefs +kvs +kvsstorerocksdb +kvst +kvstore +kvstorerockddb +KVV +KWriters +laggy +laneq +langversion +largestkey +largeval +largs +LASTACC +lastbegin +lastbkey +lastcount +lastline +LASTOFFSET +lastupdated +LATENCYBANDCONFIG +lbsum +Lcom +LCV +ldconfig +ldflags +ldp +ldr +ldrb +leaderboards +LEADERELECTION +LEADERELECTIONREG +LEADERHEARTBEAT +Leftoverkeys +Leftovertasks +lenr +LESSTHAN +letterpaper +levelname +LFB +lfd +Lfdbserver +LFE +LFU +LIBCPP +Libcrypto +libcxx +libdir +Libeio +LIBNAME +libressl +LIBTLS +LIBURING +linecopy +linenoise +linenr +linkat +linkflags +linklen +LINKMAP +linkplain +linktest +lio +LISTCLUSTERS +listshards +LISTTENANTGROUPS +listtenants +literalinclude +Ljava +ljoswiak +lkey +lkfs +lld +lll +llu +llx +LMNPSZ +lng +LNOT +LOADBALANCE +LOADPLUGIN +loadu +LOCALCLIENTAPI +localconf +localdb +localdir +localentry +localinstall +localitygroup +LOCALITYKEY +localityvalue +localmap +localname +localtoc +locase +locationmetadata +lockaware +lockf +lockfree +lockid +Loesing +logc +logdir +logf +LOGFOLDER +logg +loggroup +logm +LOGPROTOCOLMESSAGE +logqueue +logr +logrouter +logserver +logset +logsize +LOGSTDOUT +logsystem +LOGSYSTEMCONFIG +LOGSYSTEMDISKQUEUEADAPTER +logtool +logversion +LONGLONG +lookuparray +loopprofile +Loopx +lowframe +lpath +LPFIBER +lpsz +LPx +Lredwood +lround +lrps +LRs +lrv +lsan +lsb +lseek +lseeki +lsp +lsr +Lstatus +LTx +luid +luoqi +lwa +machineid +madvise +makecontext +Makefiles +makeprop +makewrapper +Makoload +makotrace +malcolm +MALLOCLIKE +mallopt +maltivec +Manpreet +mappedkeyvalue +markdeep +marktwtn +MASTERDATA +MASTERINTERFACE +masterserver +MATCHALL +mavx +MAXCYCLES +maxdepth +maxed +MAXEVENTREASONS +MAXEVENTS +maxfd +MAXHISTOGRAMUNIT +maxing +maxint +maxlogs +maxlogssize +MAXPAIR +MAXPATHNAME +maxreqs +maxtime +maxv +maxval +maxversion +mbcharlen +mbegin +MBper +MBs +mbsicmp +mcall +mcl +MClocks +mcontext +MCount +mcpu +mcr +mcs +MCT +mdctx +MDENG +memaccess +memalign +memcheck +MEMLIMIT +MEMLOCK +memmem +MEMORYKEYVALUESTORE +MEMORYSTATUSEX +memsize +memsz +memtable +mergeable +MERGEACCS +messagepack +metacluster +METACLUSTERCONSISTENCY +METACLUSTERDATA +METACLUSTERINTERNAL +METACLUSTERMETADATA +METACLUSTERMETRICS +METACLUSTEROPERATIONCONTEXT +METACLUSTERREGISTRATION +METACLUSTERTYPES +METACLUSTERUTIL +Metadatas +METADATAVALUES +metadoc +metakey +metaprogramming +METASECTION +methname +methodset +METRICLOGGER +METRICSCONNFILE +METRICSPREFIX +mfcr +mflr +mfspr +MFVRD +MFVSRD +mgi +MGID +mgmt +mgs +microbenchmark +MICROVERSION +Midl +Minimalistic +MINIX +minormax +minout +Minusfrees +minval +minwait +mismatchid +mkdirat +Mkeys +mknodat +mktuple +mkv +mlock +mlockall +mlog +mlv +mman +mmikhail +mmintrin +mmmx +mmsystem +mno +mnop +mnt +mntfromname +MOCKDATADISTRIBUTOR +MOCKDDTEST +MOCKGLOBALSTATE +modifica +modindex +modname +modtime +moduleauthor +Modulelevel +modulemap +Monakhov +monitorleader +Moolenaar +MOVEFILE +movekeys +moverid +MOVEUNALIGNED +MOVINGWINDOW +movqda +MOVs +mpi +mpilman +mprotect +MPSC +mrd +mro +mrr +msan +msb +mscorlib +msghdr +msglen +msgname +msgpack +msgpackc +msgsize +msgtype +msp +msse +msvcfdb +mswin +msync +mta +mtctr +mtimespec +mtlr +mtouch +Mtransactions +mtune +MTVRD +MTVSRD +MType +mulo +MULQ +multicollisions +MULTIGENERATION +multiget +MULTIINTERFACE +multikey +multilib +multimaps +Multipage +multisets +multitenancy +multitest +MULTIVERSIONASSIGNMENTVARS +multiversionclient +MULTIVERSIONTRANSACTION +multj +Mulvey +Mumur +munmap +mutationk +MUTATIONLIST +mutationlogreader +mutationref +MUTATIONTRACKING +mutexattr +MVALUE +mvc +mvcc +mvector +mvn +mworker +myblob +mydoc +mys +myset +mytable +nakedret +namelen +nameofs +nameopt +namesalloc +namesoffs +namlen +natefinch +NATIVEAPI +navr +Nawaz +nbf +nbytes +ncat +nccs +ncis +nck +ndl +ndvr +NEEDAMD +NEEDARMMAKECONTEXT +NEEDPOWERMAKECONTEXT +NEEDSWAPCONTEXT +NEEDX +NEELAM +nelem +NETBINDADD +NETBINDDISABLE +NETBINDREMOVE +netinet +NETLINK +NETPATH +NETWORKADDRESS +NETWORKIMPL +networksender +networktest +networktestclient +networktestserver +neu +nev +NEVERRAN +newcluster +newconsole +NEWDB +newdir +NEWITERATOR +newsm +newsp +newspace +newss +newtestvalue +Nextlocation +nexts +nfds +nfk +nftw +NIDs +ninjatool +nio +nitems +NKeys +nkr +nkv +nlen +NLOCK +NLog +nmap +NNbits +nnc +nnn +NNNN +NNNNTTTT +nnow +NOACCESS +noatime +NOBOX +NOBUFSTDOUT +nocheckptr +NOCLOSE +Nodecount +nodelete +nodetext +NODEV +NOERR +noexecstack +NOGDI +NOGPFAULTERRORBOX +nohit +NOLOAD +NOMINMAX +noncopyable +nonfailed +nonfull +NONINFRINGEMENT +Nonoptimal +nonserializable +nonumberh +NOOOOOO +noops +Noordhuis +noout +noprefix +noreplace +nostdlib +NOSTOPWHENDONE +notcycle +notext +notjusthosting +NOTNEEDED +noverifycert +noverifyname +noverifytime +noversionhistory +nptr +Npw +nread +nrstruct +nseconds +NSIZE +nssb +NTDDI +ntext +Nto +ntohl +ntotal +NTransaction +ntriggered +nullf +NULLVALUE +numa +numdevs +numer +Numof +numtesters +nvalid +nvidia +NWK +NZCV +oarchive +objcopy +OBJDIR +objectnum +objectwriter +objtype +obytes +occ +ocr +ODIRECT +Ofbyte +ofd +offboarding +oflags +ofs +ofst +OICI +OKIf +OKTETO +OLAP +oldb +oldbeef +OLDBINARYDIR +OLDBINDIR +oldsigset +onchanges +ONCONFLICT +oneb +oneline +onsi +onstack +ooffset +oom +opackets +opd +openat +OPENDATABASE +OPENNETWORK +opensslv +opentest +opfunc +optarg +Opteron +optind +optintf +OPTIONAME +OPTIONNAME +OPTIONVALUE +optype +ori +oscm +osfhandle +osname +oss +OSSL +osx +otel +OTELMETRIC +OTELSPANCONTEXTMESSAGE +OTELSUM +oth +otherkey +OTHERNAME +othervalue +OTLP +oucp +outdb +outdir +outfiles +outfn +outp +outputtmp +outt +Overallocate +overreplicated +overreserving +overutil +overwriter +ownedfp +ows +PACIASP +packetization +paddr +PAddress +pagedata +pagerefs +pagerlog +papersize +PARAMCHANGE +parameterlist +paramgen +paramlist +PARAMNAME +paramtype +PARAMVALUE +pardirnatural +parentpid +parentwatch +pargs +participantgroup +partitionings +passcode +passin +Patronum +paxos +PClass +PCLMUL +pcnoordhuis +pctile +pctx +pdata +PDDS +PDEATHSIG +pdh +pdhmsg +peerc +peerp +Pelle +PEMs +Pentium +perfcontext +PERFMETRIC +permi +Peslyak +pessimizing +PFiles +Pgain +pgno +pgrep +PHANDLER +phc +phdr +phnum +physicalshardmove +physicalshards +pidfile +pidinfo +pidof +pids +Pilman +PIncoming +pinfo +pingtest +Pinnable +pipefd +pjvds +pkeyopt +pkgbuild +pkgconfig +pkv +plainchar +plinenoise +plog +plt +plusone +pmc +pml +pmutation +PNetwork +pointermap +pointsize +POLICYEXTRA +POLICYINDEX +POLICYSAMPLE +POLICYTOTAL +POLLIN +POLLOUT +ponger +popcountll +popout +poppush +posn +postcheck +postclients +Postconditions +Postgre +postinst +postread +postrm +postserver +Potylitsin +POutgoing +Powerbook +PPROCESS +PPW +PQSD +praw +prb +prctl +pread +PREADWRITE +preadwritelock +prealloc +preclients +preconcurrency +predfunc +prefixpadding +preflush +Preftch +preinst +preinstalled +Prepopulating +prerendered +prerm +Preserializer +preun +preunserver +prewrite +pri +Printables +prioritization +prioritylock +PRIORITYMULTILOCK +privkeyfile +proactively +procctl +processenv +processid +PROCESSINFO +processname +procps +procstk +productbuild +promhttp +promisestream +prot +protocolversion +PROXYCOMMITDATA +prty +Prv +psapi +pselect +pseudobytes +pssi +pstack +pstore +pstr +pstream +psz +pth +pthread +ptotal +ptree +pubkeyfile +PUBLICADDR +PUNPCKH +PUNPCKL +pvc +PVer +pwrite +PWSTR +pwsz +pyam +pyo +pyresult +PYTARGETDIR +PYTARGETDIRCUSTOM +pythonapi +qcs +QDelay +qend +QError +QPresent +qqq +qrstuv +qrv +Qry +qstart +queryformat +queuemodel +QUEUEWAIT +QUIETDATABASE +quietdb +qwe +qwert +qwertyu +radixtree +Ragne +randchar +randno +RANDOMSEED +RANDOMTEST +rangeconfig +RANGEFILE +RANGEID +RANGEMAP +rangeop +rangeresult +Rangesb +RANGESTREAM +rangevalue +ranlib +rapidjson +rapidxml +ratekeeper +RATEKEEPERINTERFACE +ratelimit +RATESAMPLE +rawline +rbg +rbo +rbp +rbs +Rbytes +rcb +rccr +Rchar +RCK +rconn +rcp +rcx +rdar +rdc +rdi +rdit +rdn +RDQ +RDQBS +rdr +rdri +rdx +rdynamic +reachout +readbg +READBLOBGRANULE +readgranulecontext +readlinkat +readload +READNONE +READPREFIX +readrange +readresult +READTYPE +READVALUE +READWRITEWORKLOAD +readycount +READYOURWRITES +reallocs +rebalancer +Rebooter +recaching +recipq +recipsq +reconfig +recoverying +RECOVERYSTATE +recr +Recursefilter +redef +redzones +reentrantly +refcounted +refnode +refres +refspecific +refuri +regis +REGISTERCLUSTER +reinitialization +relativelink +rellen +RELOCATESHARD +relocators +remoteload +remotesend +remotesubscribe +REMOVECLUSTER +renameat +renametenant +reorg +repartitioning +replicationdebug +REPLICATIONTEST +REPLYSTREAM +REPORTCACHE +REQBATCH +reqlock +reqpath +reqprio +reqq +Requestb +reqwait +rerecruit +reslock +resnapshot +resnapshotting +RESOLVERINTERFACE +respipe +restarter +RESTCLIENT +RESTDo +RESTKMS +RESTORECLUSTER +RESTORECOMMON +RESTORECONTAINER +RESTOREUTIL +RESTOREWORKER +RESTT +retann +retcode +retrans +retryable +RETRYAFTER +returntype +returnvalue +returnvoid +revb +REXMIT +rfds +Rfi +rflags +rfork +Rivest +rkey +rki +RKID +RKMPU +rkr +rkv +rlen +rlim +rlimit +rmap +RMK +rmq +rnds +rocksdb +ROCKSDBSTORAGE +rolename +rollforward +rollsize +rolltimes +rotateleft +rowlab +rowlimit +rpath +RPCGENERICACTORS +RPCNETWORKSENDER +rpcs +RPCTo +RPF +rpmbuild +rpms +rpmsave +rpr +rptr +rri +rrmxmx +rrps +rrr +rrs +RRW +rsize +rsp +rsr +rssize +rsssize +rto +rtom +rtr +RTSS +rtype +rubydomain +Ruid +rundate +RUnlock +RUnn +RUNRYWTRANSACTION +RUNSCRIPTS +RUNTESTS +RUNTRANSACTION +rvm +RVs +rwflag +rwl +RWLOCK +RWMT +ryanworl +RYO +ryow +ryw +RYWITERATOR +RYWNo +RYWT +Ryzen +saddr +Sanfilippo +sanitizers +sanityrest +SATF +Sattolo +SAXQ +sblock +sbox +sbps +sbuf +sbuffer +sbytes +scalarize +scalarized +Scalia +SCFK +Scherer +schmorp +scl +scm +SCRIPTNAME +sctx +SCW +sddl +sdkutils +sdt +searchorder +SECRETKEY +sectionauthor +SEEDCONNFILE +SEEDCONNSTRING +segfault +segnb +SEGV +Sema +SENDBUFFER +sendfilev +sendfilevec +SENDPARAM +separatecoordinator +seprint +seqno +serdes +SERVERDBINFO +SERVERDIR +SERVERKNOBCOLLECTION +servershards +Serverutils +serviceaccount +servicelog +setaffinity +setclass +SETCLEAR +SETCLEARRANGE +setdetachstate +setfunc +setknob +setlinebuf +SETMASK +setmcontext +setname +setrange +setref +setschedparam +setscope +setstacksize +settime +sev +sevnum +SFBTF +SFC +sfdb +SFS +SFT +sfv +SFW +sget +SGETRANGE +sgi +sgr +shardedrocksdb +Shardis +SHARDSAFFECTEDBYTEAMFAILURE +SHIBUKAWA +shldl +Shlwapi +Shmem +shmfd +shmpath +shmsize +shrn +shuf +shufflevector +SIGABORT +sigaction +sigaddset +SIGCHLDs +sigcontext +sigemptyset +sigev +sigevent +sigfillset +siginfo +SIGJBLEN +SIGLEN +sigmask +Signalable +signmask +signo +signode +sigprof +sigset +simconfig +simconnector +simdir +SIMENCRYPTKMSPROXY +SIMENCRYPTVAULTPROXY +simfdb +simpledoc +simsec +SIMTIME +SIMULATEDCLUSTER +SIMULATORMACHINEINFO +singlekey +sipaddr +Sisze +sival +skc +skeys +skfastrand +skiplist +skiplisttest +SKIPTOTAL +skr +sks +SKSC +skv +skylake +SLAs +sleeptest +slf +slli +sln +SLO +sloesing +slowpath +SLOWTASK +Slowx +smallestkey +smartypants +Snapfiles +SNAPSHOTCACHE +SNAPSHOTINTERVAL +SNAPUID +sndrexmitpack +sndtotal +snprint +socio +soffset +softirq +sooo +SOption +sortedcontainers +Sotomayor +sourcedir +sourcekit +sourcelink +Spah +spamming +spammy +SPANCONTEXTMESSAGE +spanid +spd +SPECIALKEYSPACE +sphinxcontrib +Splitable +splt +spop +srcend +srcofs +srcs +srcu +SReclaimable +sref +sreqs +SREs +srfds +srl +srli +SRPMS +ssb +sscount +ssd +sse +ssection +ssfailure +SSget +ssi +ssid +SSIn +SSOn +SSOr +ssrs +SSs +ssshard +sst +sstables +SSTo +sstr +stackcollapse +stacksize +stacktester +startarg +startdate +startfn +startkey +startloc +STARTOFFSET +startproc +startt +starttime +STARTUPINFO +startvalue +statdata +statefulset +statfs +stati +statinfo +statm +STATUSCLIENT +statusdoc +STATUSJSON +statvfsat +stdalign +stdarg +stdatomic +stdbool +stdc +stdcpp +stddef +stdint +stdtypes +stdu +steenking +stenant +stenantgroup +sthrottled +stksize +stopcount +STOPONERROR +STORAGCHECKPOINT +storagecache +storageengine +STORAGEMEMLIMIT +STORAGEMETRICS +storageserver +storageserveractor +STORAGESERVERINTERFACE +STORAGESERVERSHARD +STORAGESERVERUTILS +STORAGEWIGGLEMETRICS +storeu +stp +strb +strdate +strdup +streamlinejs +strecpy +strem +STREQUAL +stricmp +strinc +stringbuffer +STRINGIZE +STRLESS +strnicmp +strsafe +strsignal +strtime +strtoui +structcheck +stylechecker +subcmd +subcompactions +subdoc +subdocument +subheaders +subm +subquery +subsc +subseq +subsys +Subtrace +subtup +subvector +subworkloads +SUNPRO +SUnreclaim +superpriority +suspendkey +svalue +swapcontext +swiftc +swiftinterface +swiftmodule +swiftrt +swisstables +swversion +symbian +symbolicate +symbolify +symlinkat +SYMLOOP +syscalls +sysconf +sysctlbyname +syskey +syslimits +sysmacros +sysstat +SYSTEMDATA +tagid +TAGPARTITIONEDLOGSYSTEM +TAGPREFIXLENGTH +tagstr +TARGETDIR +targetnode +targetversion +TARNAME +taskbucket +taskcount +TASKFUNC +taskimpl +TASKPRIORITY +taskready +taskrunning +taskset +taskswitch +tbd +tbl +tbz +tcf +TCHAR +tci +tclinken +tcmalloc +TCodec +tcpdump +tcps +tcpstat +tcpstatus +tcx +TDB +tdisk +tdmetric +teambuilder +tempfilename +TENANTCONSISTENCY +TENANTDATA +TENANTENTRYCACHE +tenantgroup +tenantid +TENANTINFO +tenantmap +TENANTNAME +Tencent +terabytes +testcontainer +TESTCTRL +testdb +testdelta +TESTERINTERFACE +testfilecorrectness +testgraph +testhost +TESTINDEX +testingstorage +testint +testkey +TESTKNOBCOLLECTION +testname +Testnanosleep +TESTONL +testonly +testonservers +TESTPROBE +testservers +testspec +TESTTOTAL +testtype +textmode +tfp +tgz +thec +Thiesfield +THL +thr +threadcreate +threadedly +threadfuture +THREADHELPER +threadjoiner +THREADPRIMITIVES +THREADSAFETRANSACTION +THREASHOLD +threefoo +throughputs +ths +Thu +tids +timebase +timebomb +timebuf +timediff +timedout +timedwait +timeframe +timeinfo +timep +timepoint +TIMERR +timerslack +timestamped +timeval +Timf +tinfo +tini +tion +titlesonly +tjkuqo +Tkconstants +Tkdnd +TKey +tkfiledialog +tksimpledialog +tlcount +tli +tlog +TLOGINTERFACE +TLOGPOP +tlogserver +tlogset +tlsca +TLSCONFIG +TLSNo +tmpbuf +tmpfs +tmpfunc +tname +tnow +tnsec +tocbase +toctree +TODOREMOVE +todos +Toernig +tofit +TOKENCACHE +tokencmp +tokenfile +tokenid +tokensign +Tokensx +toobig +toolset +toparse +topbar +topdir +topdirname +TOPK +toplevels +totalbytes +toversion +TPCC +tpcv +TPLS +tpointer +tpschange +tpsinterval +tpsmax +tpsmin +TRACEALLOCATOR +traceclock +tracefile +traceformat +traceid +tracepath +traceroute +trackit +trackme +transactio +transactionality +transactionread +Transactionx +Transactors +transitioning +transtype +trapframe +trapno +TRBL +treap +TREEBENCHMARK +treecontrol +treecontroller +treeviews +triggerddteaminfolog +triggerteaminfolog +tring +trollius +trtr +truncateat +trx +trycatch +tsan +tsav +TSAVB +Tschannen +tsec +TSection +tsm +TSRC +tssi +tssid +TSSIn +tssq +tstamp +tstart +tsv +TTask +TTesters +TTO +tunables +tuplename +tupleorder +tuplify +tvdiff +txns +txnspec +txntagging +TXNTAGGINGPREFIX +txntrace +txs +typecodes +typeflag +typenames +typerolename +typestring +uber +ubsan +ubsum +uby +UChars +ucnv +ucontext +UConverter +ucp +udata +udt +UError +UIDP +uidptr +uids +Uil +uio +ujrnpumbfvc +uldlamzpspf +ULOCK +Ulr +UMAAL +UMAC +UMULL +unactorcompiler +unalign +unalignment +unassigns +unblobbified +unblobbify +unblobbifying +unbufferedout +uncache +Uncoalesced +unconfigured +und +underalignment +undercount +underfilled +underutil +underutilized +unencodable +unesc +Unevictable +Unexp +UNFRAG +unichr +unimpl +uniquify +unistd +UNITTESTPARAM +unittests +unixish +unlinkat +UNLINKONLOAD +unmapping +unmark +unparam +unparseable +unpopped +unproc +unprofiled +unprototyped +unrecognize +Unregistering +unreplicated +unretryable +unseed +unskipped +unsync'd +unthrottle +unthrottling +untrackable +unversioned +unversionstamped +unwait +uoffset +uop +upath +updatekey +updateranges +Updatet +UPDATETENANTGROUPS +upgradeable +upsmanship +urand +urandom +urng +usecase +userdata +userdel +userid +usertype +usetenant +ustring +utimbuf +utimensat +utl +utsname +uuids +Uvh +uvlong +vabdq +vabsq +vaddq +vaddr +vaeseq +vaesmcq +valbuf +valgrind +validkey +validvalue +vallen +valreq +valstr +valt +Valu +valuemap +Valuesize +vandq +varcheck +varias +vartype +vbicq +vblock +vbslq +vceqq +vcgeq +vcgtq +vcleq +vclt +vcltq +vcombine +vcreate +vcvtnq +vcvtq +vdbe +vdup +vdupq +vectorize +veorq +VERSIONBATCH +VERSIONEDBTREEDEBUG +VERSIONEDMAP +versionedmaptest +versionepoch +VERSIONLAG +versionmap +versionspersecond +versionstamp +Versionstampedvalue +vexillographer +vextq +vfprint +vfs +vfy +vget +vgetq +viewitems +viewkeys +viewvalues +virtuals +vlambda +vld +vlog +vlong +Vmalloc +vmaxq +VMEMLIMIT +vminq +vmlal +vmmeter +VMOV +vmovl +vmovn +vms +vmsplice +vmul +vmuleuw +vmull +vmulouw +vmulq +vmvnq +vnegq +Volker +Vollmer +vorrq +vpadd +vpaddlq +VPMSUMD +VPMSUMW +vprint +VPS +vptr +vqaddq +vqdmulhq +vqmovn +vqmovun +vqrdmulhq +vqsubq +vqtbl +vqtbx +vre +vrecpeq +vrecpsq +vreinterpret +vreinterpretq +vrhaddq +vrshrn +vrsqrteq +vrv +vscprintf +vseprint +vsetq +vsformat +vshll +vshlq +vshrn +vshrq +vsize +vsliq +vsnprint +vsraq +vstamp +VString +vsubq +vsx +vtables +vtableset +vtags +vtbl +Vto +vtune +vtype +vur +vuzp +vuzpq +vvv +VWG +vws +vyukov +vzip +Wadd +waitable +waitconnected +waitfor +waitfordone +waitnext +waitopen +wal +walpath +Wappend +war'ing +WATCHIMPL +watchinginboxes +WATCHQ +watchs +Wbytemax +Wbytemin +WCE +WCR +wcsicmp +wcx +WDR +wds +websites +WELLKNOWNENDPOINTS +WERROR +wfopen +wfunc +WFV +wgen +Wgenu +WINAPI +WINDOWSVOLUME +winioctl +winmm +winnt +WINVER +wip +withprobability +WIVc +wix +wixobj +wixproj +WIXUI +wlen +WLTOKEN +Wmax +Wmin +WMVALUE +WNL +WOAH +wobj +Wor +WORKDIR +WORKERINTERFACE +WORKERLIST +worstcase +wpos +wptr +wqe +wrep +Writeback +writebatch +WRITEMAP +writemode +wrk +wrklock +wrkspc +wrongtype +wrps +wrq +Wset +WVALUE +WVR +Wxor +xab +xacc +xact +XAttribute +xbdascii +Xcc +xcheese +xcond +xcrun +xctoolchain +XDocument +XElement +xenix +xer +xerrors +xff +xffprefix +XGLUE +Xitems +xlarge +xlimit +xlog +xmlrpclib +xmmintrin +xmutex +xone +XOPEN +xops +xorshift +XSAN +xsecret +xsi +Xsuffix +xthread +xtn +xumengpanda +XUtn +xwang +xxdeadbeef +xxh +xxpermdi +xxxat +xxxx +xxxxxx +xxxxxxx +XXXXXXXXX +XXXXXXXXYY +xyzdev +yamr +ycm +ycsb +YHJLq +yiwu +ymm +Yoshiki +Ytxn +Zabcdefghijklmnopqrstuvwxyz +zaefferer +zapr +zauras +zcreads +zcrefs +ZEROJUNK +zetan +zetastatic +Zhe +zhewu +Zhou +zipf +zipfian +zipfianconstant +zmm +zoneid +zookeeper +Zpf +ZVector +zzz diff --git a/.github/actions/spelling/line_forbidden.patterns b/.github/actions/spelling/line_forbidden.patterns new file mode 100644 index 00000000000..5e1171c43e8 --- /dev/null +++ b/.github/actions/spelling/line_forbidden.patterns @@ -0,0 +1,163 @@ +# reject `m_data` as VxWorks defined it and that breaks things if it's used elsewhere +# see [fprime](https://github.com/nasa/fprime/commit/d589f0a25c59ea9a800d851ea84c2f5df02fb529) +# and [Qt](https://github.com/qtproject/qt-solutions/blame/fb7bc42bfcc578ff3fa3b9ca21a41e96eb37c1c7/qtscriptclassic/src/qscriptbuffer_p.h#L46) +#\bm_data\b + +# Were you debugging using a framework with `fit()`? +# If you have a framework that uses `it()` for testing and `fit()` for debugging a specific test, +# you might not want to check in code where you skip all the other tests. +#\bfit\( + +# Should be `anymore` +\bany more[,.] + +# Should be `cannot` (or `can't`) +# See https://www.grammarly.com/blog/cannot-or-can-not/ +# > Don't use `can not` when you mean `cannot`. The only time you're likely to see `can not` written as separate words is when the word `can` happens to precede some other phrase that happens to start with `not`. +# > `Can't` is a contraction of `cannot`, and it's best suited for informal writing. +# > In formal writing and where contractions are frowned upon, use `cannot`. +# > It is possible to write `can not`, but you generally find it only as part of some other construction, such as `not only . . . but also.` +# - if you encounter such a case, add a pattern for that case to patterns.txt. +\b[Cc]an not\b + +# Should be `GitHub` +(?"'`=(:])-(?:(?:J-|)(?:X?D(?!ate)|P(?!RER)|[WXY])|l(?!azy|ike|imit|ine|ist|ocal|ong)|f(?!ile|ract|ront))(?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,}) + +# hit-count: 309 file-count: 49 +# version suffix v# +(?:(?<=[A-Z]{2})V|(?<=[a-z]{2}|[A-Z]{2})v)\d+(?:\b|(?=[a-zA-Z_])) + +# hit-count: 284 file-count: 55 +# hex runs +\b[0-9a-fA-F]{16,}\b + +# hit-count: 209 file-count: 80 +# C network byte conversions +(?:\d|\bh)to(?!ken)(?=[a-z])|(?:str|\b[a-zA-Z])to(?=[adhiklpun]\() + +Include="[^"]+" + +# hit-count: 144 file-count: 24 +# alternate printf markers if you run into latex and friends +(?= 0.0.22) +\\\w{2,}\{ + +# hit-count: 2 file-count: 1 +# ANSI color codes +(?:\\(?:u00|x)1[Bb]|\x1b|\\u\{1[Bb]\})\[\d+(?:;\d+|)m + +# hit-count: 1 file-count: 1 +# mailto urls +mailto:[-a-zA-Z=;:/?%&0-9+@._]{3,} + +# hit-count: 1 file-count: 1 +# Non-English +[a-zA-Z]*[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3}[a-zA-ZÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]*|[a-zA-Z]{3,}[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]|[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3,} + +:: MacOS + +/\*( [0-9a-f]{4,})+ \*/ + +ActorStack=".*?"|".*"\s*\|\s*bin/acac + +"base64": ".*?" + +_mm_\w+ + +# Questionably acceptable forms of `in to` +# Personally, I prefer `log into`, but people object +# https://www.tprteaching.com/log-into-log-in-to-login/ +\b(?:[Ll]og|[Ss]ign) in to\b + +# to opt in +\bto opt in\b + +# acceptable duplicates +# ls directory listings +[-bcdlpsw](?:[-r][-w][-SsTtx]){3}[\.+*]?\s+\d+\s+\S+\s+\S+\s+\d+\s+ +# mount +\bmount\s+-t\s+(\w+)\s+\g{-1}\b +# C types and repeated CSS values +\s(auto|center|div|inherit|long|LONG|none|normal|solid|thin|transparent|very)(?: \g{-1})+\s +# C struct +\bstruct\s+(\w+)\s+\g{-1}\b +# go templates +\s(\w+)\s+\g{-1}\s+\`(?:graphql|inject|json|yaml): +# doxygen / javadoc / .net +(?:[\\@](?:brief|groupname|link|t?param|return|retval)|(?:public|private|\[Parameter(?:\(.+\)|)\])(?:\s+(?:static|override|readonly|required|virtual))*)(?:\s+\{\w+\}|)\s+(\w+)\s+\g{-1}\s + +# Python package registry has incorrect spelling for macOS / Mac OS X +"Operating System :: MacOS :: MacOS X" + +# Commit message -- Signed-off-by and friends +^\s*(?:(?:Based-on-patch|Co-authored|Helped|Mentored|Reported|Reviewed|Signed-off)-by|Thanks-to): (?:[^<]*<[^>]*>|[^<]*)\s*$ + +# Autogenerated revert commit message +^This reverts commit [0-9a-f]{40}\.$ + +# ignore long runs of a single character: +\b([A-Za-z])\g{-1}{3,}\b diff --git a/.github/actions/spelling/reject.txt b/.github/actions/spelling/reject.txt new file mode 100644 index 00000000000..e5e4c3eef82 --- /dev/null +++ b/.github/actions/spelling/reject.txt @@ -0,0 +1,11 @@ +^attache$ +^bellow$ +benefitting +occurences? +^dependan.* +^oer$ +Sorce +^[Ss]pae.* +^untill$ +^untilling$ +^wether.* diff --git a/.github/workflows/spelling.yml b/.github/workflows/spelling.yml new file mode 100644 index 00000000000..4c6113f5461 --- /dev/null +++ b/.github/workflows/spelling.yml @@ -0,0 +1,165 @@ +name: Check Spelling + +# Comment management is handled through a secondary job, for details see: +# https://github.com/check-spelling/check-spelling/wiki/Feature%3A-Restricted-Permissions +# +# `jobs.comment-push` runs when a push is made to a repository and the `jobs.spelling` job needs to make a comment +# (in odd cases, it might actually run just to collapse a comment, but that's fairly rare) +# it needs `contents: write` in order to add a comment. +# +# `jobs.comment-pr` runs when a pull_request is made to a repository and the `jobs.spelling` job needs to make a comment +# or collapse a comment (in the case where it had previously made a comment and now no longer needs to show a comment) +# it needs `pull-requests: write` in order to manipulate those comments. + +# Updating pull request branches is managed via comment handling. +# For details, see: https://github.com/check-spelling/check-spelling/wiki/Feature:-Update-expect-list +# +# These elements work together to make it happen: +# +# `on.issue_comment` +# This event listens to comments by users asking to update the metadata. +# +# `jobs.update` +# This job runs in response to an issue_comment and will push a new commit +# to update the spelling metadata. +# +# `with.experimental_apply_changes_via_bot` +# Tells the action to support and generate messages that enable it +# to make a commit to update the spelling metadata. +# +# `with.ssh_key` +# In order to trigger workflows when the commit is made, you can provide a +# secret (typically, a write-enabled github deploy key). +# +# For background, see: https://github.com/check-spelling/check-spelling/wiki/Feature:-Update-with-deploy-key + +# Sarif reporting +# +# Access to Sarif reports is generally restricted (by GitHub) to members of the repository. +# +# Requires enabling `security-events: write` +# and configuring the action with `use_sarif: 1` +# +# For information on the feature, see: https://github.com/check-spelling/check-spelling/wiki/Feature:-Sarif-output + +# Minimal workflow structure: +# +# on: +# push: +# ... +# pull_request_target: +# ... +# jobs: +# # you only want the spelling job, all others should be omitted +# spelling: +# # remove `security-events: write` and `use_sarif: 1` +# # remove `experimental_apply_changes_via_bot: 1` +# ... otherwise adjust the `with:` as you wish + +on: + push: + branches: + - "**" + tags-ignore: + - "**" + pull_request_target: + branches: + - "**" + types: + - 'opened' + - 'reopened' + - 'synchronize' + issue_comment: + types: + - 'created' + +jobs: + spelling: + name: Check Spelling + permissions: + contents: read + pull-requests: read + actions: read + security-events: write + outputs: + followup: ${{ steps.spelling.outputs.followup }} + runs-on: ubuntu-latest + if: ${{ contains(github.event_name, 'pull_request') || github.event_name == 'push' }} + concurrency: + group: spelling-${{ github.event.pull_request.number || github.ref }} + # note: If you use only_check_changed_files, you do not want cancel-in-progress + cancel-in-progress: true + steps: + - name: check-spelling + id: spelling + uses: check-spelling/check-spelling@prerelease + with: + suppress_push_for_open_pull_request: ${{ github.actor != 'dependabot[bot]' && 1 }} + checkout: true + check_file_names: 1 + spell_check_this: check-spelling/spell-check-this@prerelease + post_comment: 0 + use_magic_file: 1 + report-timing: 1 + warnings: bad-regex,binary-file,deprecated-feature,ignored-expect-variant,large-file,limited-references,no-newline-at-eof,noisy-file,non-alpha-in-dictionary,token-is-substring,unexpected-line-ending,whitespace-in-dictionary,minified-file,unsupported-configuration,no-files-to-check,unclosed-block-ignore-begin,unclosed-block-ignore-end + experimental_apply_changes_via_bot: 1 + use_sarif: ${{ (!github.event.pull_request || (github.event.pull_request.head.repo.full_name == github.repository)) && 1 }} + wait-for-sarif-processing: true + check_extra_dictionaries: '' + extra_dictionaries: | + cspell:software-terms/dict/softwareTerms.txt + cspell:python/src/python/python-lib.txt + cspell:cpp/src/stdlib-cpp.txt + cspell:php/dict/php.txt + cspell:cpp/src/stdlib-c.txt + cspell:python/src/common/extra.txt + cspell:node/dict/node.txt + cspell:python/src/python/python.txt + cspell:java/src/java.txt + cspell:golang/dict/go.txt + cspell:mnemonics/src/mnemonics.txt + cspell:aws/aws.txt + cspell:filetypes/filetypes.txt + cspell:java/src/java-terms.txt + cspell:fullstack/dict/fullstack.txt + cspell:typescript/dict/typescript.txt + cspell:r/src/r.txt + cspell:scala/dict/scala.txt + cspell:swift/src/swift.txt + cspell:npm/dict/npm.txt + cspell:css/dict/css.txt + cspell:django/dict/django.txt + cspell:k8s/dict/k8s.txt + cspell:html/dict/html.txt + cspell:cpp/src/lang-keywords.txt + cspell:cpp/src/ecosystem.txt + cspell:ruby/dict/ruby.txt + cspell:dotnet/dict/dotnet.txt + cspell:cpp/src/compiler-msvc.txt + cspell:shell/dict/shell-all-words.txt + cspell:cpp/src/compiler-clang-attributes.txt + cspell:cpp/src/lang-jargon.txt + cspell:svelte/dict/svelte.txt + + update: + name: Update PR + permissions: + contents: write + pull-requests: write + actions: read + runs-on: ubuntu-latest + if: ${{ + github.event_name == 'issue_comment' && + github.event.issue.pull_request && + contains(github.event.comment.body, '@check-spelling-bot apply') + }} + concurrency: + group: spelling-update-${{ github.event.issue.number }} + cancel-in-progress: false + steps: + - name: apply spelling updates + uses: check-spelling/check-spelling@prerelease + with: + experimental_apply_changes_via_bot: 1 + checkout: true + ssh_key: "${{ secrets.CHECK_SPELLING }}"