diff --git a/.github/ISSUE_TEMPLATE/02-advanced-issue.md b/.github/ISSUE_TEMPLATE/02-advanced-issue.md index da8a5d0..f14f5ce 100644 --- a/.github/ISSUE_TEMPLATE/02-advanced-issue.md +++ b/.github/ISSUE_TEMPLATE/02-advanced-issue.md @@ -7,15 +7,13 @@ assignees: '' --- -# Title - ## Description - + ## Value - + ## Dependencies - + ## Acceptance Criteria - + ## (Information Security) Risk Assessment - + - ## Accessibility Assessment ## Quality - + - +--> ## Release Notes - + +--> diff --git a/.github/ISSUE_TEMPLATE/04-pre-release-openshift-tests.md b/.github/ISSUE_TEMPLATE/04-pre-release-openshift-tests.md index b5cdf7a..07dae60 100644 --- a/.github/ISSUE_TEMPLATE/04-pre-release-openshift-tests.md +++ b/.github/ISSUE_TEMPLATE/04-pre-release-openshift-tests.md @@ -22,7 +22,7 @@ Part of Make sure to run the tests using the following parameters: -``` +```plain TEST_PLATFORM: OpenShift on replicated.com (4.15.0-okd) GIT_BRANCH_OR_TAG: origin/main OPERATOR_VERSION: 0.0.0-dev diff --git a/.github/ISSUE_TEMPLATE/06-release.md b/.github/ISSUE_TEMPLATE/06-release.md index 0a9ad14..42f7e4e 100644 --- a/.github/ISSUE_TEMPLATE/06-release.md +++ b/.github/ISSUE_TEMPLATE/06-release.md @@ -4,7 +4,6 @@ about: This template can be used to track the progress of the SDP title: "chore(tracking): SDP Release YY.M.X" labels: ['epic'] assignees: '' - --- -# Stackable Release YY.M.X - > [!IMPORTANT] > Important dates: +> > - ... - Release planning > - ... - Lock product versions > - ... - Final operator-rs release at CoB > - ... - Begin bumping operator-rs crates in each operator -> - ... - Begin release-day tasks (release branches are cut) +> - ... - Begin release-branching tasks > - ... - Target release date (marketable) -## Release checklists - -Replace the items in the task lists below with the applicable Pull Requests / Issues +> [!TIP] +> Replace the items in the task lists below with the applicable Pull Requests / Issues. -### General Pre-Requisites (before Feature Freeze) +## Early Pre-release tasks > [!TIP] > These tasks should be done earlier in the process to lessen the burden at Pre-release time. -```[tasklist] -### Early Pre-release tasks -- [ ] [Create a "Release Retro" issue](https://github.com/stackabletech/issues/issues/new?template=08-release-retro.md) +- [ ] [Create a "Release Retro" issue][epr-1] - [ ] Define product versions to include in the next release -- [ ] [Update and release operator-rs workspace members](https://github.com/stackabletech/operator-rs/issues/new?template=release-workspace-members.md) -- [ ] [Update Rust toolchain of operators](https://github.com/stackabletech/operator-templating/issues/new?template=pre-release.md) -- [ ] [Update Rust dependencies of operators](https://github.com/stackabletech/issues/issues/new?template=05-pre-release-operator-rust-deps.md) -- [ ] [Major or Minor Container Images updates](https://github.com/stackabletech/docker-images/issues/new?template=early-pre-release.md) -- [ ] [Patch Container Images updates](https://github.com/stackabletech/docker-images/issues/new?template=early-pre-release.md) -``` +- [ ] [Update and release operator-rs workspace members][epr-2] +- [ ] [Update Rust toolchain of operators][epr-3] +- [ ] [Update Rust dependencies of operators][epr-4] +- [ ] [Major or Minor Container Images updates][epr-5] +- [ ] [Patch Container Images updates][epr-5] (Do not reuse the previous issue) +- [ ] Run `niv update` and test via `make run-dev` (operator-templating) + +[epr-1]: https://github.com/stackabletech/issues/issues/new?template=08-release-retro.md +[epr-2]: https://github.com/stackabletech/operator-rs/issues/new?template=release-workspace-members.md +[epr-3]: https://github.com/stackabletech/operator-templating/issues/new?template=pre-release.md +[epr-4]: https://github.com/stackabletech/issues/issues/new?template=05-pre-release-operator-rust-deps.md +[epr-5]: https://github.com/stackabletech/docker-images/issues/new?template=early-pre-release.md + +## Pre-release > [!TIP] > These tasks should be done a week or so before the release date. -```[tasklist] -### Pre-release - [ ] Run all of the test suites in Jenkins (with all product versions, not just "nightly") -- [ ] [Check and update getting-started scripts](https://github.com/stackabletech/issues/issues/new?template=03-pre-release-getting-started-scripts.md) -- [ ] [Check and update demo charts](https://github.com/stackabletech/demos/issues/new?template=pre-release-chart-updates.md) -- [ ] [Test demos and upgrade from stable to nightly release](https://github.com/stackabletech/demos/issues/new?template=pre-release-upgrade-testing.md) +- [ ] [Check and update getting-started scripts][pr-1] +- [ ] [Check and update demo charts][pr-2] +- [ ] [Test demo upgrades (stable to nightly)][pr-3] +- [ ] [Test demos from scratch (nightly)][pr-4] - [ ] Ensure integration tests are successful on OpenShift (run with `--test-suite openshift` against Replicated OKD) -- [ ] Check stackable-utils scripts in dry-run mode work -``` +- [ ] Check [stackable-utils] scripts in dry-run mode work +- [ ] Search for open issues labeled with [scheduled-for/YY.M.X][pr-5] -### Other Pre-Requisites (before Feature Freeze) +[pr-1]: https://github.com/stackabletech/issues/issues/new?template=03-pre-release-getting-started-scripts.md +[pr-2]: https://github.com/stackabletech/demos/issues/new?template=pre-release-chart-updates.md +[pr-3]: https://github.com/stackabletech/demos/issues/new?template=pre-release-upgrade-testing.md +[pr-4]: https://github.com/stackabletech/demos/issues/new?template=pre-release-from-scratch-testing.md +[pr-5]: https://github.com/search?q=org%3Astackabletech+label%3Ascheduled-for%2FYY.M.X&type=issues&state=open -Search for open issues labeleded with [`scheduled-for/YY.M.X`](https://github.com/search?q=org%3Astackabletech+label%3Ascheduled-for%2FYY.M.X&type=issues&state=open) +## Release branching -```[tasklist] -### Other release-specific pre-requisites -- [ ] Run `niv update` and test via `make run-dev` (operator-templating) -``` +> [!CAUTION] +> A small change freeze is required until these tasks have been completed. -### Feature freeze +> [!TIP] +> See [stackable-utils] for script to create tags and update changelogs. -This will not be so crucial with release branches, but is nonetheless sensible as it will make it easier to cherry-pick any release-related bugfixes from main into the release branch. +- [ ] Create release branch for docker-images +- [ ] Create release branches for operators +- [ ] Create release branch for demos +- [ ] _Wait for images to be built before proceeding_ -### End of the release cycle (Release day) +## Release candidate testing + +> [!WARNING] +> To be discussed during the on-site. +> +> Getting started scripts use particular product versions (this would have been updated in the +> early-pre-release stage), however, at this point in time, the images will be tagged with an rcX +> tag. + + + +## Release tagging + +> [!TIP] +> See [stackable-utils] for script to create tags and update changelogs. + +- [ ] Create release tag(s) for docker-images +- [ ] Create release tag(s) for operators +- [ ] Update release version in changelogs on main branches +- [ ] _Wait for images to be built before proceeding_ - [ ] Test `stackablectl` with locally updated (to new release number) `releases.yaml` -- [ ] Update `release.yaml` in https://github.com/stackabletech/release/blob/main/releases.yaml -- [ ] [Check and update getting-started scripts](https://github.com/stackabletech/issues/issues/new?template=07-release-getting-started-scripts.md) -- [ ] [Test demos and upgrade from previous to this release](https://github.com/stackabletech/demos/issues/new?template=release-upgrade-testing.md) +- [ ] Update [release.yaml](https://github.com/stackabletech/release/blob/main/releases.yaml) +- [ ] Release stackablectl + +## Release verification + +> [!TIP] +> These tasks do not block the Documentation tasks below and can be done concurrently. + +- [ ] [Check getting-started scripts][rv-1] +- [ ] [Test demos from scratch (YY.M.X)][rv-2] - [ ] Check that an upgrade can be performed on an existing cluster without data loss (cycling demo) - [ ] Run all integration tests (for both `x86_64` and ~`aarch64`~ (defer aarch64 until interu is used)) - [ ] Ensure integration tests are successful on OpenShift (run with `--test-suite openshift` against Replicated OKD) -- [ ] Release stackablectl -``` + +[rv-1]: https://github.com/stackabletech/issues/issues/new?template=07-release-getting-started-scripts.md +[rv-2]: https://github.com/stackabletech/demos/issues/new?template=release-upgrade-testing.md + +## Documentation tasks > [!TIP] > Name the release-notes branch `docs/release-notes-YY.M.X` so that the link below takes you directly to the [Pull Request template][docs-pr-template]. -[docs-pr-template]: https://github.com/stackabletech/documentation/tree/main/.github/PULL_REQUEST_TEMPLATE/release-notes.md&title=chore(tracking):%20Release%20Notes%20for%20SDP%20YY.M.X - -```[tasklist] -#### Documentation tasks +- [ ] Generate CRD docs [website][dt-1] for the new release by following these [instructions][dt-2] - [ ] Create a stackabletech/documentation branch called `docs/release-notes-YY.M.X` - [ ] Compile list of new product features in newly supported versions for the YY.M.X release (for the blog post) -- [ ] Begin writing the release notes with the [Pull Request template](https://github.com/stackabletech/documentation/compare/main...docs/release-notes-YY.M.X?template=release-notes.md&title=chore(tracking):%20Release%20Notes%20for%20SDP%20YY.M.X) +- [ ] Begin writing the release notes with the [Pull Request template][dt-3] - [ ] Update SDP release version in `documentation/modules/ROOT/pages/getting-started.adoc` and test the release install command -- [ ] Cut a release branch (see [scripts/make-release-branch.sh](https://github.com/stackabletech/documentation/blob/main/scripts/make-release-branch.sh)) -- [ ] Update releases in the playbook (see [scripts/publish-new-version.sh](https://github.com/stackabletech/documentation/blob/main/scripts/publish-new-version.sh)) +- [ ] Cut a release branch (see [scripts/make-release-branch.sh][dt-4]) +- [ ] Update releases in the playbook (see [scripts/publish-new-version.sh][dt-5]) - [ ] Remove any references to HEAD and main from the Antora playbooks on the release branch (replace with the release branch) - [ ] Update antora.yaml version in stackabletech/demos on the release branch - the stackable-utils release-scripts should do this like they do for products and operators. - [ ] Set the release to "Released" in the Feature Tracker and create a new release (ping @lfrancke) -- [ ] Update the getting-started page in the main docs and check it works with this release: https://github.com/stackabletech/documentation/blob/main/modules/ROOT/pages/getting-started.adoc -``` +- [ ] Update the [getting-started page][dt-6] in the main docs and check it works with this release + +[dt-1]: https://crds.stackable.tech/ +[dt-2]: https://github.com/stackabletech/crddocs +[dt-3]: https://github.com/stackabletech/documentation/compare/main...docs/release-notes-YY.M.X?template=release-notes.md&title=chore(tracking):%20Release%20Notes%20for%20SDP%20YY.M.X +[dt-4]: https://github.com/stackabletech/documentation/blob/main/scripts/make-release-branch.sh +[dt-5]: https://github.com/stackabletech/documentation/blob/main/scripts/publish-new-version.sh +[dt-6]: https://github.com/stackabletech/documentation/blob/main/modules/ROOT/pages/getting-started.adoc +[docs-pr-template]: https://github.com/stackabletech/documentation/tree/main/.github/PULL_REQUEST_TEMPLATE/release-notes.md&title=chore(tracking):%20Release%20Notes%20for%20SDP%20YY.M.X -Marketing tasks can now reference published documentation. +## Marketing tasks + +> [!NOTE] +> Marketing material can now reference published documentation. -```[tasklist] -#### Marketing tasks - [ ] Write marketing / customer oriented release summary to be published in the marketing channels - [ ] Update the homepage banner (as long as we have it) to point to the new release - [ ] Write a blogpost / news article announcing the new release (optional) @@ -127,19 +167,22 @@ Marketing tasks can now reference published documentation. - [ ] Post an announcement in the GitHub [Discussions Announcement forum](https://github.com/stackabletech/community/discussions/categories/announcements) and make it a pinned discussion while at the same time removing the old pinned thread - [ ] Post an announcement in Discord - [ ] Post an announcement on DOK Community in the #be-shameless Channel (Ping Lars or Jim) -- [ ] Post an announcement via OSBA (Ping Lars, info@osb-alliance.com) +- [ ] Post an announcement via OSBA (Ping Lars, ) - [ ] Send announcement to Kubernetes Podcast (Ping Lars) - [ ] Send announcement to Heiser - [ ] Ping the stackable-ionos-tech channel or anyone responsible once all tags are created -``` -```[tasklist] -#### Post-release tasks +## Post-release tasks + - [ ] Test demo upgrades, which were skipped in the previous testing (optional) -- [ ] Update the list of supported SDP releases in Jira (ping Jim) -- [ ] Openshift certification. Create an issue from this [template](https://github.com/stackabletech/issues/blob/main/.github/ISSUE_TEMPLATE/olm_manifests.md) for the OLM manifests -- [ ] Mark any releases older than one year as "end-of-life" [in the documentation](https://github.com/stackabletech/documentation/blob/f751e7ff7cddacae7d2c6c2c6c1d1c877c7aa11c/antora.yml#L18) (update antora.yaml on the applicable branches). -- [ ] Post YY.M.X release retro (use issue created at the start of the process) -- [ ] Update the release tracking template (optional) -- [ ] [Create the next release tracking task](https://github.com/stackabletech/issues/issues/new?template=06-release.md) (if the date is available) -``` +- [ ] Update the list of supported SDP releases in Jira (ping @Jimvin) +- [ ] Openshift certification. [Create an issue][pt-1] to track the creation of the OLM manifests +- [ ] Mark any releases older than one year as "end-of-life" in the documentation (update [antora.yaml][pt-2] on the applicable branches). +- [ ] _Link to release retro issue (use issue created at the start of the process)_ +- [ ] Update the release tracking templates (optional) +- [ ] [Create the next release tracking task][pt-3] (if the date is available) + +[pt-1]: https://github.com/stackabletech/issues/issues/new?template=09-olm_manifests.md +[pt-2]: https://github.com/stackabletech/documentation/blob/f751e7ff7cddacae7d2c6c2c6c1d1c877c7aa11c/antora.yml#L18 +[pt-3]: https://github.com/stackabletech/issues/issues/new?template=06-release.md +[stackable-utils]: https://github.com/stackabletech/stackable-utils/blob/main/release/README.md diff --git a/.github/ISSUE_TEMPLATE/09-olm_manifests.md b/.github/ISSUE_TEMPLATE/09-olm_manifests.md index 42b6900..9672b3e 100644 --- a/.github/ISSUE_TEMPLATE/09-olm_manifests.md +++ b/.github/ISSUE_TEMPLATE/09-olm_manifests.md @@ -1,37 +1,34 @@ --- name: OLM Manifest Guide about: A task list for OLM manifest generation for certification -title: 'OLM Manifests for SDP Release YY.M.X' +title: 'chore(tracking): OLM Manifests for SDP Release YY.M.X' labels: '' assignees: '' --- -# Tracking - This is for tracking distributed work. For instructions on how to proceed with each operator, see the description below. Please follow this list in order at least until the zookeeper-operator before parallelizing. ---- -| Operator | Maintainer | Branch | Kuttl Tests | Cert Pipeline | Notes | -| --------- | -------------- | --------------------------------- | ------------------ | ---------------------- | ----- | -| commons | your GH handle | branch name in the op cert repo | :white_check_mark: | link to the PR upsteam | | -| secret | | | | | | -| listener | | | | | | -| zookeeper | | | | | | -| hdfs | | | | | | -| hive | | | | | | -| hbase | | | | | | -| opa | | | | | | -| druid | | | | | | -| kafka | | | | | | -| nifi | | | | | | -| spark | | | | | | -| superset | | | | | | -| airflow | | | | | | -| trino | | | | | | ---- -# Description +| Operator | Maintainer | Branch | Kuttl Tests | Cert Pipeline PR | Notes | +| --------- | ---------- | ----------------------- | ------------------ | ------------------- | ----- | +| commons | GH handle | branch name in the fork | :white_check_mark: | link to upstream PR | | +| secret | | | | | | +| listener | | | | | | +| zookeeper | | | | | | +| hdfs | | | | | | +| hive | | | | | | +| hbase | | | | | | +| opa | | | | | | +| druid | | | | | | +| kafka | | | | | | +| nifi | | | | | | +| spark | | | | | | +| superset | | | | | | +| airflow | | | | | | +| trino | | | | | | + +## Description This is a list of steps you can follow to generate, install and test Operator Lifecycle Management (OLM) manifests for the Stackable Data Platform. @@ -41,47 +38,51 @@ OLM manifests can be generated at any time and for any version of the operators To generate manifests for a released version of the SDP, ensure that you checkout the appropriate branch of the operator repository and the openshift operator repository. -## Pre-requisites +### Pre-requisites In addition to the usual development tools like `git` and `Python` you need to clone the following repositories, idealy in the same location (this guide assumes `$HOME/repo/stackable`): -* https://github.com/stackabletech/stackable-utils - contains utility scripts that you'll use below -* https://github.com/stackabletech/openshift-certified-operators - a fork used to submit SDP operators for certification -* Operator repositories that you intend to use like: - * https://github.com/stackabletech/airflow-operator/ - * https://github.com/stackabletech/druid-operator/ - * https://github.com/stackabletech/commons-operator/ - * ... and so on +- - contains utility scripts that you'll use below +- - a fork used to submit SDP operators for certification +- Operator repositories that you intend to use like: + - + - + - + - ... and so on This issue assumes you are generating OLM manifests for a released SDP version with the intention of certifying it. This means: - [ ] All operator repositories have the required release branch. These releases have been tested and are generally available. - [ ] All container images have been published to quay.io +### Secret and listener operator -## Secret and listener operator - -### Generate manifests +#### Generate manifests - [ ] Update the supported OpenShift version range in the function [generate_metadata()](https://github.com/stackabletech/stackable-utils/blob/273ec983d6c0b1ea1852d9633ed56b8123054b39/olm/build-manifests.sh#L39) - [ ] Create release branch (from `main`) in the openshift operator repository - cd $HOME/repo/stackable/openshift-certified-operators - git switch -c stackable-secret-24.11.0 + ```shell + cd $HOME/repo/stackable/openshift-certified-operators + git switch -c stackable-secret-YY.M.X + ``` - [ ] Generate manifests - ./olm/build-manifests.sh -r 24.11.0 \ - -c $HOME/repo/stackable/openshift-certified-operators \ - -o $HOME/repo/stackable/secret-operator + ```shell + ./olm/build-manifests.sh -r YY.M.X \ + -c $HOME/repo/stackable/openshift-certified-operators \ + -o $HOME/repo/stackable/secret-operator + ``` Options: -* `-r 24.11.0` is the SDP release -* `-c $HOME/repo/stackable/openshift-certified-operators` the location of the openshift operator repository -* `-o $HOME/repo/stackable/secret-operator` the location of the secret op + +- `-r YY.M.X` is the SDP release +- `-c $HOME/repo/stackable/openshift-certified-operators` the location of the openshift operator repository +- `-o $HOME/repo/stackable/secret-operator` the location of the secret op - [ ] Copy the cluster service version file from the previous version. -- [ ] Copy the operator manifests file fro the previous version. For [secret](https://github.com/stackabletech/openshift-certified-operators/blob/main/operators/stackable-secret-operator/23.11.0/manifests/secret-operator-manifests.yaml) and [listener](https://github.com/stackabletech/openshift-certified-operators/blob/main/operators/stackable-listener-operator/23.11.0/manifests/listener-operator-manifests.yaml) +- [ ] Copy the operator manifests file from the previous version. For [secret](https://github.com/stackabletech/openshift-certified-operators/blob/main/operators/stackable-secret-operator/OO.M.X/manifests/secret-operator-manifests.yaml) and [listener](https://github.com/stackabletech/openshift-certified-operators/blob/main/operators/stackable-listener-operator/OO.M.X/manifests/listener-operator-manifests.yaml) - [ ] Replace the contents of the deployment, and cluster role with the `template.spec` and `rules` from the newly generated files. - [ ] Remove the unused generated files : service account, operator cluster role (not the product cluster role), role binding, deployment. - [ ] Remove all Helm labels in all remaining files (including all labels from the cluster role). @@ -89,60 +90,69 @@ Options: - [ ] Update image tags and hashes with quay.io versions - [ ] Commit & push your changes -### Install manifests +#### Install manifests - [ ] Ensure your K8S configuration points to a an OpenShift (or OKD) instance - [ ] Install the operator from the manifests generated in the previous step - /olm/build-bundles.sh -r 24.11.0 -o secret -c ~/repo/stackable/openshift-certified-operators -d + ```shell + /olm/build-bundles.sh -r YY.M.X -o secret -c ~/repo/stackable/openshift-certified-operators -d + ``` Options: -* `-r 24.11.0` version of the operator to install -* `-o secret` name of the operator to install -* `-c ~/repo/stackable/openshift-certified-operators` location of the openshift operator repository -* `-d` deploy to the cluster -## All other operators +- `-r YY.M.X` version of the operator to install +- `-o secret` name of the operator to install +- `-c ~/repo/stackable/openshift-certified-operators` location of the openshift operator repository +- `-d` deploy to the cluster + +### All other operators These operators shouldn't require any manual editing of the manifests but a visual check is recommended. The steps are illustrated only once for the ZooKeeper operator but a list of all operators to work on is added below. -### Generate manifests +#### Generate manifests - [ ] Create release branch (from `main`) in the openshift operator repository - cd $HOME/repo/stackable/openshift-certified-operators - git switch -c stackable-zookeeper-24.11.0 + ```shell + cd $HOME/repo/stackable/openshift-certified-operators + git switch -c stackable-zookeeper-YY.M.X + ``` -- [ ] Ensure appropriate branch (`release-24.11`) is checkout out in the ZooKeeper operator +- [ ] Ensure appropriate branch (`release-YY.M`) is checkout out in the ZooKeeper operator - [ ] Generate manifests - ./olm/build-manifests.py \ - --openshift-versions v4.14-v4.16 \ - --repo-certified-operators ~/repo/stackable/openshift-certified-operators \ - --channel 24.11 \ - --release 24.11.0 \ - --replaces 24.7.0 \ - --repo-operator ~/repo/stackable/zookeeper-operator + ```shell + ./olm/build-manifests.py \ + --openshift-versions v4.14-v4.16 \ + --repo-certified-operators ~/repo/stackable/openshift-certified-operators \ + --channel YY.M \ + --release YY.M.X \ + --replaces OO.M.X \ + --repo-operator ~/repo/stackable/zookeeper-operator + ``` See `./olm/build-manifests.py --help` for possible options. -### Install manifests +#### Install manifests - ./olm/build-bundles.sh \ - -r 24.11.0 \ - -o zookeeper \ - -c ~/repo/stackable/openshift-certified-operators \ - -d +```shell +./olm/build-bundles.sh \ +-r YY.M.X \ +-o zookeeper \ +-c ~/repo/stackable/openshift-certified-operators \ +-d +``` -### Test the operator +#### Test the operator Run the openshit integration test suite for the operator - cd ~/repo/stackable/zookeeper-operator - /scripts/run-tests --test-suite openshift --skip-operator zookeeper +```shell +cd ~/repo/stackable/zookeeper-operator +/scripts/run-tests --test-suite openshift --skip-operator zookeeper +``` We use `--skip-operator` because the operator has already been installed previously. - - diff --git a/.github/actionlint.yaml b/.github/actionlint.yaml new file mode 100644 index 0000000..8337548 --- /dev/null +++ b/.github/actionlint.yaml @@ -0,0 +1,5 @@ +--- +self-hosted-runner: + # Ubicloud machines we are using + labels: + - ubicloud-standard-8-arm diff --git a/.markdownlint.yaml b/.markdownlint.yaml new file mode 100644 index 0000000..3e1dd46 --- /dev/null +++ b/.markdownlint.yaml @@ -0,0 +1,27 @@ +--- +# All defaults or options can be checked here: +# https://github.com/DavidAnson/markdownlint/blob/main/schema/.markdownlint.yaml + +# Default state for all rules +default: true + +# MD013/line-length - Line length +MD013: + # Number of characters + line_length: 9999 + # Number of characters for headings + heading_line_length: 9999 + # Number of characters for code blocks + code_block_line_length: 9999 + +# MD033/no-inline-html +MD033: + allowed_elements: [h1, img, p] + +# MD024/no-duplicate-heading/no-duplicate-header - Multiple headings with the same content +MD024: + # Only check sibling headings + siblings_only: true + +# MD028/no-blanks-blockquote Blank line inside blockquote +MD028: false # Allow consecutive admonitions. diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..200fc45 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,22 @@ +--- +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: cef0300fd0fc4d2a87a85fa2093c6b283ea36f4b # 5.0.0 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + + - repo: https://github.com/adrienverge/yamllint + rev: 81e9f98ffd059efe8aa9c1b1a42e5cce61b640c6 # 1.35.1 + hooks: + - id: yamllint + + - repo: https://github.com/igorshubovych/markdownlint-cli + rev: 586c3ea3f51230da42bab657c6a32e9e66c364f0 # 0.44.0 + hooks: + - id: markdownlint + + - repo: https://github.com/rhysd/actionlint + rev: 03d0035246f3e81f36aed592ffb4bebf33a03106 # 1.7.7 + hooks: + - id: actionlint diff --git a/.yamllint.yaml b/.yamllint.yaml new file mode 100644 index 0000000..2dc9dfd --- /dev/null +++ b/.yamllint.yaml @@ -0,0 +1,11 @@ +--- +extends: default + +rules: + line-length: disable + truthy: + check-keys: false + comments: + min-spaces-from-content: 1 # Needed due to https://github.com/adrienverge/yamllint/issues/443 + indentation: + indent-sequences: consistent