From 27483ae94e0e3dc3fc9239f2fd453233b4272365 Mon Sep 17 00:00:00 2001 From: Steven Johnson Date: Tue, 3 Oct 2023 18:22:21 +0700 Subject: [PATCH] feat(mdlint): Add Repo wide Markdown linting and vscode tasks. (#30) --- .github/workflows/markdown-check.yml | 14 + .gitignore | 1 + .markdownlint-cli2.jsonc | 27 ++ .markdownlint.jsonc | 246 ++++++++++++++++++ .vscode/extensions.json | 2 + .vscode/settings.recommended.json | 3 +- .vscode/tasks.recommended.json | 43 +++ CODE_OF_CONDUCT.md | 24 +- Earthfile | 18 ++ README.md | 56 ++-- athena/README.md | 2 +- catalyst-voices-backend/README.md | 2 +- catalyst_voices/README.md | 73 +++--- catalyst_voices_packages/README.md | 34 +-- catalyst_voices_packages/SECURITY.md | 6 +- .../packages/catalyst_analysis/CHANGELOG.md | 2 +- .../catalyst_analysis/CONTRIBUTING.md | 2 +- .../packages/catalyst_analysis/README.md | 32 ++- .../catalyst_analysis/example/README.md | 10 +- 19 files changed, 490 insertions(+), 107 deletions(-) create mode 100644 .github/workflows/markdown-check.yml create mode 100644 .markdownlint-cli2.jsonc create mode 100644 .markdownlint.jsonc create mode 100644 .vscode/tasks.recommended.json create mode 100644 Earthfile diff --git a/.github/workflows/markdown-check.yml b/.github/workflows/markdown-check.yml new file mode 100644 index 00000000000..2b210bfd123 --- /dev/null +++ b/.github/workflows/markdown-check.yml @@ -0,0 +1,14 @@ +name: Markdown Check + +on: + pull_request: + types: + - opened + - edited + - synchronize + - reopened + +jobs: + build: + name: Check markdown files formatted consistently + uses: input-output-hk/catalyst-ci/.github/workflows/markdown-check.yml@master diff --git a/.gitignore b/.gitignore index 7fca470bedc..aa5156755d0 100644 --- a/.gitignore +++ b/.gitignore @@ -77,3 +77,4 @@ $RECYCLE.BIN/ !/.vscode/extensions.json !/.vscode/launch.recommended.json !/.vscode/settings.recommended.json +!/.vscode/tasks.recommended.json diff --git a/.markdownlint-cli2.jsonc b/.markdownlint-cli2.jsonc new file mode 100644 index 00000000000..3017a7ea36b --- /dev/null +++ b/.markdownlint-cli2.jsonc @@ -0,0 +1,27 @@ +// Markdown Lint Configuration. +// Do not change markdown lint configuration in individual files, +// except to disable rules which are causing false positives. +{ + // Configures the markdownlint-cli2 tool only. + // For common markdownlint configuration which this tool also uses, see: ./.markdownlint.jsonc + "globs": [ + "**/*.md" + ], + "ignores": [], + // Set standard config options in `/.markdownlint.jsonc` + "config": { + "max-one-sentence-per-line": { + "ignored__words": [ + "???+", + "???", + "!!!+", + "!!!" + ] + } + }, + "customRules": [ + // For local development, this custom rule needs to be installed with: + // `npm install --no-package-lock --production markdownlint-rule-max-one-sentence-per-line` + "markdownlint-rule-max-one-sentence-per-line" + ] +} \ No newline at end of file diff --git a/.markdownlint.jsonc b/.markdownlint.jsonc new file mode 100644 index 00000000000..b58ef2a4d2d --- /dev/null +++ b/.markdownlint.jsonc @@ -0,0 +1,246 @@ +{ + // markdownlint JSON(C) configuration for Catalyst Standards + // Do not individually set markdown lint rules in documents. + // It is permissable to disable a rule in a document if it is a false positive. + // Keep the scope of the lint disable to as small as possible. + // See: https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md + // Default state for all rules + "default": true, + // Path to configuration file to extend + "extends": null, + // MD001/heading-increment/header-increment - Heading levels should only increment by one level at a time + "MD001": true, + // MD003/heading-style/header-style - Heading style + "MD003": { + // Heading style + "style": "atx" + }, + // MD004/ul-style - Unordered list style + "MD004": { + // List style + "style": "asterisk" + }, + // MD005/list-indent - Inconsistent indentation for list items at the same level + "MD005": true, + // MD006/ul-start-left - Consider starting bulleted lists at the beginning of the line + "MD006": true, + // MD007/ul-indent - Unordered list indentation + "MD007": { + // Spaces for indent + "indent": 2, + // Whether to indent the first level of the list + "start_indented": false, + // Spaces for first level indent (when start_indented is set) + "start_indent": 2 + }, + // MD009/no-trailing-spaces - Trailing spaces + "MD009": { + // Spaces for line break + "br_spaces": 2, + // Allow spaces for empty lines in list items + "list_item_empty_lines": false, + // Include unnecessary breaks + "strict": false + }, + // MD010/no-hard-tabs - Hard tabs + "MD010": { + // Include code blocks + "code_blocks": true, + // Fenced code languages to ignore + "ignore_code_languages": [], + // Number of spaces for each hard tab + "spaces_per_tab": 1 + }, + // MD011/no-reversed-links - Reversed link syntax + "MD011": true, + // MD012/no-multiple-blanks - Multiple consecutive blank lines + "MD012": { + // Consecutive blank lines + "maximum": 1 + }, + // MD013/line-length - Line length + // Lines shouldn't be bigger than this. + // Use 1 sentence per line and they should never need to be. + // If 1 sentence is bigger than this rewrite it, its too long. + // If its complaining about embedded HTML, reformat it, or wrap it with an ignore. + // See: https://sembr.org/ for guidance on line wrapping. + "MD013": { + // Number of characters + // Sentences shouldn't have more than 25 words, this line length is + // approximately large enough for that. If your single sentence is + // bigger than this, consider rewording it, rather than line breaking it. + "line_length": 132, + // Number of characters for headings + "heading_line_length": 132, + // Number of characters for code blocks + "code_block_line_length": 132, + // Include code blocks + "code_blocks": true, + // Include tables + "tables": false, + // Include headings + "headings": true, + // Strict length checking + "strict": false, + // Stern length checking + "stern": true + }, + // MD014/commands-show-output - Dollar signs used before commands without showing output + "MD014": true, + // MD018/no-missing-space-atx - No space after hash on atx style heading + "MD018": true, + // MD019/no-multiple-space-atx - Multiple spaces after hash on atx style heading + "MD019": true, + // MD020/no-missing-space-closed-atx - No space inside hashes on closed atx style heading + "MD020": true, + // MD021/no-multiple-space-closed-atx - Multiple spaces inside hashes on closed atx style heading + "MD021": true, + // MD022/blanks-around-headings/blanks-around-headers - Headings should be surrounded by blank lines + "MD022": { + // Blank lines above heading + "lines_above": 1, + // Blank lines below heading + "lines_below": 1 + }, + // MD023/heading-start-left/header-start-left - Headings must start at the beginning of the line + "MD023": true, + // MD024/no-duplicate-heading/no-duplicate-header - Multiple headings with the same content + "MD024": { + // Only check sibling headings + "siblings_only": true + }, + // MD025/single-title/single-h1 - Multiple top-level headings in the same document + "MD025": { + // Heading level + "level": 1, + // RegExp for matching title in front matter + "front_matter_title": "^\\s*title\\s*[:=]" + }, + // MD026/no-trailing-punctuation - Trailing punctuation in heading + "MD026": { + // Punctuation characters + "punctuation": ".,;:!。,;:!" + }, + // MD027/no-multiple-space-blockquote - Multiple spaces after blockquote symbol + "MD027": true, + // MD028/no-blanks-blockquote - Blank line inside blockquote + "MD028": true, + // MD029/ol-prefix - Ordered list item prefix + "MD029": { + // List style + "style": "one_or_ordered" + }, + // MD030/list-marker-space - Spaces after list markers + "MD030": { + // Spaces for single-line unordered list items + "ul_single": 1, + // Spaces for single-line ordered list items + "ol_single": 1, + // Spaces for multi-line unordered list items + "ul_multi": 1, + // Spaces for multi-line ordered list items + "ol_multi": 1 + }, + // MD031/blanks-around-fences - Fenced code blocks should be surrounded by blank lines + "MD031": { + // Include list items + "list_items": true + }, + // MD032/blanks-around-lists - Lists should be surrounded by blank lines + "MD032": true, + // MD033/no-inline-html - Inline HTML + "MD033": { + // Allowed elements + "allowed_elements": [] + }, + // MD034/no-bare-urls - Bare URL used + "MD034": true, + // MD035/hr-style - Horizontal rule style + "MD035": { + // Horizontal rule style + "style": "---" + }, + // MD036/no-emphasis-as-heading/no-emphasis-as-header - Emphasis used instead of a heading + "MD036": { + // Punctuation characters + "punctuation": ".,;:!?。,;:!?" + }, + // MD037/no-space-in-emphasis - Spaces inside emphasis markers + "MD037": true, + // MD038/no-space-in-code - Spaces inside code span elements + "MD038": true, + // MD039/no-space-in-links - Spaces inside link text + "MD039": true, + // MD040/fenced-code-language - Fenced code blocks should have a language specified + "MD040": { + // List of languages + "allowed_languages": [], + // Require language only + "language_only": false + }, + // MD041/first-line-heading/first-line-h1 - First line in a file should be a top-level heading + "MD041": { + // Heading level + "level": 1, + // RegExp for matching title in front matter + "front_matter_title": "^\\s*title\\s*[:=]" + }, + // MD042/no-empty-links - No empty links + "MD042": true, + // MD043/required-headings/required-headers - Required heading structure + "MD043": { + // List of headings + "headings": [ + "+" + ], + // List of headings + "headers": [], + // Match case of headings + "match_case": false + }, + // MD044/proper-names - Proper names should have the correct capitalization + "MD044": { + // List of proper names + "names": [], + // Include code blocks + "code_blocks": true, + // Include HTML elements + "html_elements": true + }, + // MD045/no-alt-text - Images should have alternate text (alt text) + "MD045": true, + // MD046/code-block-style - Code block style + // Code Blocks are used by Admonitions and need to be indented. + // Actual code should be fenced, this can;t be enforced by mdlint. + "MD046": { + // Block style + "style": "consistent" + }, + // MD047/single-trailing-newline - Files should end with a single newline character + "MD047": true, + // Code fences should be backtick style. + "MD048": { + "style": "backtick" + }, + // MD049/emphasis-style - Emphasis style should be consistent + "MD049": { + // Emphasis style + "style": "asterisk" + }, + // MD050/strong-style - Strong style should be consistent + "MD050": { + // Strong style + "style": "asterisk" + }, + // MD051/link-fragments - Link fragments should be valid + "MD051": true, + // MD052/reference-links-images - Reference links and images should use a label that is defined + "MD052": true, + // MD053/link-image-reference-definitions - Link and image reference definitions should be needed + "MD053": { + // Ignored definitions + "ignored_definitions": [ + "//" + ] + } +} \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json index aac9e50a37e..2ba309f8cce 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -4,6 +4,8 @@ "vivaxy.vscode-conventional-commits", "streetsidesoftware.code-spell-checker", "DavidAnson.vscode-markdownlint", + "yzhang.markdown-all-in-one", + "bierner.markdown-preview-github-styles", "Dart-Code.dart-code", "Dart-Code.flutter" ] diff --git a/.vscode/settings.recommended.json b/.vscode/settings.recommended.json index 75f2a5db079..9948bd34f18 100644 --- a/.vscode/settings.recommended.json +++ b/.vscode/settings.recommended.json @@ -40,5 +40,6 @@ "backend", "backend-lib" ], - "conventionalCommits.gitmoji": false + "conventionalCommits.gitmoji": false, + "markdown.extension.toc.unorderedList.marker": "*" } \ No newline at end of file diff --git a/.vscode/tasks.recommended.json b/.vscode/tasks.recommended.json new file mode 100644 index 00000000000..4f05aaaba21 --- /dev/null +++ b/.vscode/tasks.recommended.json @@ -0,0 +1,43 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "CI - Recursive Markdown Lint - Check", + "type": "shell", + "command": "earthly -P +markdown-check", + "problemMatcher": { + "owner": "markdown-check", + "pattern": { + "regexp": "(\\S+):(\\d+):(\\d+)\\s(.+)", + "file": 1, + "line": 2, + "column": 3, + "message": 4 + } + }, + "group": { + "kind": "build", + "isDefault": false + } + }, + { + "label": "CI - Recursive Markdown Lint - Fix", + "type": "shell", + "command": "earthly -P +markdown-check-fix", + "problemMatcher": { + "owner": "markdown-check", + "pattern": { + "regexp": "(\\S+):(\\d+):(\\d+)\\s(.+)", + "file": 1, + "line": 2, + "column": 3, + "message": 4 + } + }, + "group": { + "kind": "build", + "isDefault": false + } + } + ] +} \ No newline at end of file diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index cf0f1eece75..6b7ac81e784 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -60,7 +60,7 @@ representative at an online or offline event. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at -conduct@iohk.io. +. All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the @@ -78,18 +78,22 @@ unprofessional or unwelcome in the community. **Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. +behavior was inappropriate. +A public apology may be requested. ### 2. Warning **Community Impact**: A violation through a single incident or series of actions. -**Consequence**: A warning with consequences for continued behavior. No +**Consequence**: A warning with consequences for continued behavior. +No interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This +those enforcing the Code of Conduct, for a specified period of time. +This includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or +like social media. +Violating these terms may lead to a temporary or permanent ban. ### 3. Temporary Ban @@ -98,7 +102,8 @@ permanent ban. sustained inappropriate behavior. **Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or +communication with the community for a specified period of time. +No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban. @@ -116,7 +121,7 @@ the community. This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, available at -https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. +. Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity). @@ -124,5 +129,6 @@ enforcement ladder](https://github.com/mozilla/diversity). [homepage]: https://www.contributor-covenant.org For answers to common questions about this code of conduct, see the FAQ at -https://www.contributor-covenant.org/faq. Translations are available at -https://www.contributor-covenant.org/translations. \ No newline at end of file +. +Translations are available at +. diff --git a/Earthfile b/Earthfile new file mode 100644 index 00000000000..593d2e5a656 --- /dev/null +++ b/Earthfile @@ -0,0 +1,18 @@ +# Set the Earthly version to 0.7 + +VERSION 0.7 +FROM debian:stable-slim + +# cspell: words livedocs sitedocs + +markdown-check: + # Check Markdown in this repo. + LOCALLY + + DO github.com/input-output-hk/catalyst-ci/earthly/mdlint:v1.2.4+MDLINT_LOCALLY --src=$(echo ${PWD}) + +markdown-check-fix: + # Check Markdown in this repo. + LOCALLY + + DO github.com/input-output-hk/catalyst-ci/earthly/mdlint:v1.2.4+MDLINT_LOCALLY --src=$(echo ${PWD}) --fix=--fix diff --git a/README.md b/README.md index 8c684044124..8d7be257fe4 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,20 @@ # Catalyst Voices + + Welcome to the Catalyst Voices mono repo, where we manage and maintain the interconnected projects. -- [Catalyst Voices](#catalyst-voices) - - [Overview](#overview) - - [Getting Started](#getting-started) - - [Projects](#projects) - - [Athena](#athena) - - [Catalyst Voices](#catalyst-voices-1) - - [Catalyst Voices Backend](#catalyst-voices-backend) - - [Catalyst Voices Packages](#catalyst-voices-packages) - - [Development](#development) - - [Contributing](#contributing) - - [License](#license) +* [Catalyst Voices](#catalyst-voices) + * [Overview](#overview) + * [Getting Started](#getting-started) + * [Projects](#projects) + * [Athena](#athena) + * [Catalyst Voices](#catalyst-voices-1) + * [Catalyst Voices Backend](#catalyst-voices-backend) + * [Catalyst Voices Packages](#catalyst-voices-packages) + * [Development](#development) + * [Contributing](#contributing) + * [License](#license) ## Overview @@ -33,6 +35,7 @@ cd catalyst-voices ```sh TODO: Add global dependencies ``` + 3. Navigate to individual project folders and follow their respective setup instructions. ## Projects @@ -41,33 +44,33 @@ TODO: Add global dependencies Athena is our [brief description of what Athena does]. -- **Directory:** [athena](https://github.com/input-output-hk/catalyst-voices/tree/main/athena) -- **Setup:** Navigate to ./athena and run TODO. -- **Documentation:** [Link to detailed documentation or Wiki] +* **Directory:** [athena](https://github.com/input-output-hk/catalyst-voices/tree/main/athena) +* **Setup:** Navigate to ./athena and run TODO. +* **Documentation:** [Link to detailed documentation or Wiki] ### Catalyst Voices Catalyst Voices frontend. -- **Directory**: [catalyst_voices](https://github.com/input-output-hk/catalyst-voices/tree/main/catalyst_voices) -- **Setup**: Navigate to ./catalyst_voices and run TODO. -- **Documentation**: [Link to detailed documentation or Wiki] +* **Directory**: [catalyst_voices](https://github.com/input-output-hk/catalyst-voices/tree/main/catalyst_voices) +* **Setup**: Navigate to ./catalyst_voices and run TODO. +* **Documentation**: [Link to detailed documentation or Wiki] ### Catalyst Voices Backend The backend services for Catalyst Voices. -- **Directory**: [catalyst-voices-backend](https://github.com/input-output-hk/catalyst-voices/tree/main/catalyst-voices-backend) -- **Setup**: Navigate to ./catalyst_voices_backend and run TODO. -- **Documentation**: [Link to detailed documentation or Wiki] +* **Directory**: [catalyst-voices-backend](https://github.com/input-output-hk/catalyst-voices/tree/main/catalyst-voices-backend) +* **Setup**: Navigate to ./catalyst_voices_backend and run TODO. +* **Documentation**: [Link to detailed documentation or Wiki] ### Catalyst Voices Packages Shared Flutter and Dart packages used across the Catalyst. -- **Directory**: [catalyst_voices_packages](https://github.com/input-output-hk/catalyst-voices/tree/main/catalyst_voices_packages) -- **Setup**: Navigate to ./catalyst_voices_packages and run TODO. -- **Documentation**: [Link to detailed documentation or Wiki] +* **Directory**: [catalyst_voices_packages](https://github.com/input-output-hk/catalyst-voices/tree/main/catalyst_voices_packages) +* **Setup**: Navigate to ./catalyst_voices_packages and run TODO. +* **Documentation**: [Link to detailed documentation or Wiki] ## Development @@ -75,7 +78,10 @@ For development guidelines, tooling information, and best practices, see DEVELOP ## Contributing -We welcome contributions from the community! Please read our CONTRIBUTING.md for guidelines on how to contribute. +We welcome contributions from the community! +Please read our CONTRIBUTING.md for guidelines on how to contribute. ## License -This project is licensed under the [LICENSE_NAME]. See LICENSE for details. + +This project is licensed under the [LICENSE_NAME]. +See LICENSE for details. diff --git a/athena/README.md b/athena/README.md index e81dd08f447..b2b262ba9c2 100644 --- a/athena/README.md +++ b/athena/README.md @@ -1 +1 @@ -# Athena \ No newline at end of file +# Athena diff --git a/catalyst-voices-backend/README.md b/catalyst-voices-backend/README.md index e9a5ff50b29..d76c53888a2 100644 --- a/catalyst-voices-backend/README.md +++ b/catalyst-voices-backend/README.md @@ -1 +1 @@ -# Catalyst Voices Backend \ No newline at end of file +# Catalyst Voices Backend diff --git a/catalyst_voices/README.md b/catalyst_voices/README.md index 2f7933ccafa..36a02b29d06 100644 --- a/catalyst_voices/README.md +++ b/catalyst_voices/README.md @@ -1,30 +1,33 @@ -

Catalyst Voices

+# Catalyst Voices -- [Requirements](#requirements) -- [Getting Started](#getting-started) - - [Bootstrapping](#bootstrapping) -- [Running Tests](#running-tests) -- [Working with Translations](#working-with-translations) - - [Adding Strings](#adding-strings) - - [Adding Supported Locales](#adding-supported-locales) - - [Adding Translations](#adding-translations) + + +* [Catalyst Voices](#catalyst-voices) + * [Requirements](#requirements) + * [Getting Started](#getting-started) + * [Bootstrapping](#bootstrapping) + * [Running Tests](#running-tests) + * [Working with Translations](#working-with-translations) + * [Adding Strings](#adding-strings) + * [Adding Supported Locales](#adding-supported-locales) + * [Adding Translations](#adding-translations) ## Requirements -- Flutter: 3.13.3+ -- Dart: 3.1.2+ -- Ruby: 2.5+ -- Xcode: 14.2+ -- Android Studio: Android Studio Electric Eel | 2022.1.1 + -- Android SDK: 23+ -- iOS SDK: 15.0+ -- [Melos](https://melos.invertase.dev) -- [Fvm](https://fvm.app/) -- [Fastlane](https://fastlane.tools) -- Flutter & Dart plugins: - - [Visual Studio Code](https://flutter.dev/docs/get-started/editor?tab=vscode) - - [Android Studio / IntelliJ](https://flutter.dev/docs/get-started/editor?tab=androidstudio) - - [Emacs](https://docs.flutter.dev/get-started/editor?tab=emacs) +* Flutter: 3.13.3+ +* Dart: 3.1.2+ +* Ruby: 2.5+ +* Xcode: 14.2+ +* Android Studio: Android Studio Electric Eel | 2022.1.1 + +* Android SDK: 23+ +* iOS SDK: 15.0+ +* [Melos](https://melos.invertase.dev) +* [Fvm](https://fvm.app/) +* [Fastlane](https://fastlane.tools) +* Flutter & Dart plugins: + * [Visual Studio Code](https://flutter.dev/docs/get-started/editor?tab=vscode) + * [Android Studio / IntelliJ](https://flutter.dev/docs/get-started/editor?tab=androidstudio) + * [Emacs](https://docs.flutter.dev/get-started/editor?tab=emacs) ❗️We recommend using **Visual Studio Code** as the **default editor** for this project. @@ -40,9 +43,9 @@ melos bootstrap This project contains 3 flavors: -- development -- staging -- production +* development +* staging +* production To run the desired flavor either use the launch configuration in VSCode/Android Studio or use the following commands: @@ -57,7 +60,8 @@ flutter run --flavor staging --target lib/main_staging.dart flutter run --flavor production --target lib/main_production.dart ``` -_\*Catalyst Voices works on Web. We plan to add iOS and Android later._ +*\*Catalyst Voices works on Web. +We plan to add iOS and Android later.* ## Running Tests @@ -79,7 +83,8 @@ open coverage/index.html ## Working with Translations -This project relies on [flutter_localizations](https://github.com/flutter/flutter/tree/master/packages/flutter_localizations) and follows the [official internationalization guide for Flutter](https://docs.flutter.dev/development/accessibility-and-localization/internationalization). +This project relies on [flutter_localizations](https://github.com/flutter/flutter/tree/master/packages/flutter_localizations). +It follows the [official internationalization guide for Flutter][flutter-intl-guide]. ### Adding Strings @@ -131,10 +136,10 @@ Update the `CFBundleLocalizations` array in the `Info.plist` at `ios/Runner/Info ... CFBundleLocalizations - - en - es - + + en + es + ... ``` @@ -143,7 +148,7 @@ Update the `CFBundleLocalizations` array in the `Info.plist` at `ios/Runner/Info 1. For each supported locale, add a new ARB file in `lib/l10n/arb`. -``` +```tree ├── l10n │ ├── arb │ │ ├── app_en.arb @@ -175,3 +180,5 @@ Update the `CFBundleLocalizations` array in the `Info.plist` at `ios/Runner/Info } } ``` + +[flutter-intl-guide]: https://docs.flutter.dev/development/accessibility-and-localization/internationalization diff --git a/catalyst_voices_packages/README.md b/catalyst_voices_packages/README.md index 75dd607b108..813dd396f79 100644 --- a/catalyst_voices_packages/README.md +++ b/catalyst_voices_packages/README.md @@ -2,12 +2,12 @@ A collection of Catalyst packages and plugins for Flutter and Dart. -- [Catalyst Flutter](#catalyst-flutter) - - [Packages](#packages) - - [Requirements](#requirements) - - [Boostrapping](#boostrapping) - - [Support](#support) - - [License](#license) +* [Catalyst Flutter](#catalyst-flutter) + * [Packages](#packages) + * [Requirements](#requirements) + * [Boostrapping](#boostrapping) + * [Support](#support) + * [License](#license) ## Packages @@ -17,15 +17,15 @@ A collection of Catalyst packages and plugins for Flutter and Dart. ## Requirements -- Flutter: 3.13.4+ -- Dart: 3.1.2+ -- Xcode: 14.2+ -- Android Studio: Android Studio Electric Eel | 2022.1.1 + -- [Melos](https://melos.invertase.dev) -- Flutter & Dart plugins: - - [Visual Studio Code](https://flutter.dev/docs/get-started/editor?tab=vscode) - - [Android Studio / IntelliJ](https://flutter.dev/docs/get-started/editor?tab=androidstudio) - - [Emacs](https://docs.flutter.dev/get-started/editor?tab=emacs) +* Flutter: 3.13.4+ +* Dart: 3.1.2+ +* Xcode: 14.2+ +* Android Studio: Android Studio Electric Eel | 2022.1.1 + +* [Melos](https://melos.invertase.dev) +* Flutter & Dart plugins: + * [Visual Studio Code](https://flutter.dev/docs/get-started/editor?tab=vscode) + * [Android Studio / IntelliJ](https://flutter.dev/docs/get-started/editor?tab=androidstudio) + * [Emacs](https://docs.flutter.dev/get-started/editor?tab=emacs) ## Boostrapping @@ -37,9 +37,9 @@ melos bootstrap ## Support -Post issues and feature requests on the GitHub [issue tracker](). +Post issues and feature requests on the GitHub [issue tracker](TODO(minikin)). ## License The source code of Popover project is available under the TODO(minikin): add license. -See the [LICENSE]() file for more info. +See the [LICENSE](TODO(minikin)) file for more info. diff --git a/catalyst_voices_packages/SECURITY.md b/catalyst_voices_packages/SECURITY.md index 79887ef20ad..b878afb377f 100644 --- a/catalyst_voices_packages/SECURITY.md +++ b/catalyst_voices_packages/SECURITY.md @@ -2,8 +2,10 @@ ## Reporting a Vulnerability -Please report (suspected) security vulnerabilities to security@iohk.io. You will receive a -response from us within 48 hours. If the issue is confirmed, we will release a patch as soon +Please report (suspected) security vulnerabilities to . +You will receive a +response from us within 48 hours. +If the issue is confirmed, we will release a patch as soon as possible. Please provide a clear and concise description of the vulnerability, including: diff --git a/catalyst_voices_packages/packages/catalyst_analysis/CHANGELOG.md b/catalyst_voices_packages/packages/catalyst_analysis/CHANGELOG.md index d97774da44b..bf0e1f93f48 100644 --- a/catalyst_voices_packages/packages/catalyst_analysis/CHANGELOG.md +++ b/catalyst_voices_packages/packages/catalyst_analysis/CHANGELOG.md @@ -1,3 +1,3 @@ # 1.0.0 -- Initial release. \ No newline at end of file +* Initial release. diff --git a/catalyst_voices_packages/packages/catalyst_analysis/CONTRIBUTING.md b/catalyst_voices_packages/packages/catalyst_analysis/CONTRIBUTING.md index f87f5c14cbb..464090415c4 100644 --- a/catalyst_voices_packages/packages/catalyst_analysis/CONTRIBUTING.md +++ b/catalyst_voices_packages/packages/catalyst_analysis/CONTRIBUTING.md @@ -1 +1 @@ -# TODO \ No newline at end of file +# TODO diff --git a/catalyst_voices_packages/packages/catalyst_analysis/README.md b/catalyst_voices_packages/packages/catalyst_analysis/README.md index 5aaacad4948..415eeb340cb 100644 --- a/catalyst_voices_packages/packages/catalyst_analysis/README.md +++ b/catalyst_voices_packages/packages/catalyst_analysis/README.md @@ -1,17 +1,18 @@ # 🧐 Catalyst Analysis This package provides lint rules for Dart and Flutter which are used at [Catalyst @ IOG](https://github.com/input-output-hk). -For more information, see the [complete list of options](). +For more information, see the [complete list of options](TODO(minikin)). -> This package was heavily inspired by [lint](https://pub.dev/packages/lints) and real-life experience building products with Dart and Flutter. +> This package was heavily inspired by [lint](https://pub.dev/packages/lints) +> and real-life experience building products with Dart and Flutter. -- [🧐 Catalyst Analysis](#-catalyst-analysis) - - [Usage](#usage) - - [Suppressing Lints](#suppressing-lints) - - [Line Level](#line-level) - - [File Level](#file-level) - - [Project Level](#project-level) - - [Evolving the lint sets](#evolving-the-lint-sets) +* [🧐 Catalyst Analysis](#-catalyst-analysis) + * [Usage](#usage) + * [Suppressing Lints](#suppressing-lints) + * [Line Level](#line-level) + * [File Level](#file-level) + * [Project Level](#project-level) + * [Evolving the lint sets](#evolving-the-lint-sets) ## Usage @@ -37,8 +38,8 @@ include: package:catalyst_analysis/analysis_options.1.0.0.yaml ## Suppressing Lints -There may be cases where specific lint rules are undesirable. Lint rules can be suppressed at the line, file, or project level. - +There may be cases where specific lint rules are undesirable. +Lint rules can be suppressed at the line, file, or project level. ### Line Level @@ -71,11 +72,16 @@ linter: rules: public_member_api_docs: false ``` + ## Evolving the lint sets -As the Dart language and its ecosystem evolve, it is important to keep lint sets current by regularly updating them to reflect the best practices for writing Dart code. To accomplish this, we have an informal process in place: +As the Dart language and its ecosystem evolve, it is important to keep lint sets current. +Regularly updating them to reflect the best practices for writing Dart code. +To accomplish this, we have an informal process in place: -1. Individuals can submit an [issue](TODO(minikin)) to discuss potential changes to the lint sets (such as adding or removing a lint). Feedback is welcome from all Dart/Flutter users. +1. Individuals can submit an [issue](TODO(minikin)) to discuss potential changes to the lint sets + (such as adding or removing a lint). + Feedback is welcome from all Dart/Flutter users. 2. Catalyst Engineering team meets periodically to review suggestions and make decisions on what to change. diff --git a/catalyst_voices_packages/packages/catalyst_analysis/example/README.md b/catalyst_voices_packages/packages/catalyst_analysis/example/README.md index f348a8e91d1..f70235c8457 100644 --- a/catalyst_voices_packages/packages/catalyst_analysis/example/README.md +++ b/catalyst_voices_packages/packages/catalyst_analysis/example/README.md @@ -1,9 +1,13 @@ -An example project that showcases how to enable the lint set from `package:catalyst_analysis`, which contains recommended lints for Catalyst Flutter apps, packages, and plugins. +# Catalyst Analysis - Example + +An example project that showcases how to enable the lint set from `package:catalyst_analysis`. +It contains recommended lints for Catalyst Flutter apps, packages, and plugins. The `catalyst_analysis` packages is listed as a `dev_dependency` in the `pubspec.yaml` file. -The lint set provided by the package is activated in the analysis_options.yaml file. The lints enforced for this project can be further customized in that file. +The lint set provided by the package is activated in the analysis_options.yaml file. +The lints enforced for this project can be further customized in that file. The Dart code in this project (e.g. lib/main.dart) is analyzed using the lint configuration provided by package:catalyst_analysis. -The issues identified by the analyzer are surfaced in IDEs with Dart support or by invoking `flutter analyze` from the command line. \ No newline at end of file +The issues identified by the analyzer are surfaced in IDEs with Dart support or by invoking `flutter analyze` from the command line.