diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index fe87e8436..07338b2dd 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -43,11 +43,11 @@ jobs: echo "::add-matcher::.github/ruff-matcher.json" poetry run ruff check . --config pyproject.toml --output-format text --no-fix else - poetry run pre-commit run ruff --all-files --show-diff-on-failure + poetry run pre-commit run ruff-lint --all-files --show-diff-on-failure fi; - - name: Formatting (black) - run: poetry run pre-commit run black --all-files --show-diff-on-failure + - name: Formatting (ruff) + run: poetry run pre-commit run ruff-format --all-files --show-diff-on-failure - name: Typing (pyright) run: poetry run pre-commit run pyright --all-files diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 9171e6c70..d560502be 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -22,6 +22,7 @@ jobs: poetry-version: "1.5.1" changelog: true changelog-config: "./.github/changelog-config.json" + changelog-file: "./docs/docs/user/changelog.md" secrets: github-username: "${{ secrets.GH_USERNAME }}" github-email: "${{ secrets.GH_EMAIL }}" diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 8c709b20a..457a712b1 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,21 +1,20 @@ repos: - repo: local hooks: - - id: ruff - name: ruff - entry: ruff check . - args: [ --config, pyproject.toml, --fix, --show-fixes, --exit-non-zero-on-fix ] + - id: ruff-lint + name: ruff-lint + entry: ruff check + args: [ --force-exclude, --config, pyproject.toml, --fix, --show-fixes, --exit-non-zero-on-fix ] language: system types_or: [python] require_serial: true # run once for all files - pass_filenames: false - - id: black - name: black - entry: black + - id: ruff-format + name: ruff-format + entry: ruff format + args: [ --force-exclude, --config, pyproject.toml ] language: system - types_or: [python, pyi] + types_or: [python] require_serial: true # run once for all files - exclude: ^tests/.*snapshots/ - id: pyright name: pyright entry: pyright @@ -38,6 +37,7 @@ repos: types: [python] require_serial: true exclude: ^tests/.*snapshots/ + pass_filenames: false - id: gen-docs-env-vars name: gen-docs-env-vars entry: python hooks/gen_docs/gen_docs_env_vars.py @@ -45,6 +45,7 @@ repos: types: [python] require_serial: true exclude: ^tests/.*snapshots/ + pass_filenames: false - id: gen-docs-components name: gen-docs-components entry: python hooks/gen_docs/gen_docs_components.py diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index b964b7de2..000000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,480 +0,0 @@ -# Changelog -## [2.0.11](https://github.com/bakdata/kpops/releases/tag/2.0.11) - Release Date: [2023-10-24] - -### 🐛 Fixes - -- Fix early exit upon Helm exit code 1 - [#376](https://github.com/bakdata/kpops/pull/376) - -- Fix docs setup page list indentation - [#377](https://github.com/bakdata/kpops/pull/377) - - -### 📝 Documentation - -- Migrate deprecated mkdocs-material-extensions - [#378](https://github.com/bakdata/kpops/pull/378) - -- Fix docs setup page list indentation - [#377](https://github.com/bakdata/kpops/pull/377) - -- Exclude resources from docs search - [#371](https://github.com/bakdata/kpops/pull/371) - - - - - - -## [2.0.10](https://github.com/bakdata/kpops/releases/tag/2.0.10) - Release Date: [2023-10-12] - -### 🌀 Miscellaneous - -- Fix environment variables documentation generation - [#362](https://github.com/bakdata/kpops/pull/362) - -- Introduce ruff - [#363](https://github.com/bakdata/kpops/pull/363) - -- Print details on connector name mismatch error - [#369](https://github.com/bakdata/kpops/pull/369) - -- Enable transparent OS environment lookups from internal environment - [#368](https://github.com/bakdata/kpops/pull/368) - - - - - - -## [2.0.9](https://github.com/bakdata/kpops/releases/tag/2.0.9) - Release Date: [2023-09-19] - -### 🐛 Fixes - -- Fix Kafka connect config name for deletion - [#361](https://github.com/bakdata/kpops/pull/361) - - -### 📝 Documentation - -- Fix link to kpops-examples - [#357](https://github.com/bakdata/kpops/pull/357) - - - - - - -## [2.0.8](https://github.com/bakdata/kpops/releases/tag/2.0.8) - Release Date: [2023-09-06] - -### 🐛 Fixes - -- Fix config.yaml overriding environment variables - [#353](https://github.com/bakdata/kpops/pull/353) - - -### 🏭 Refactor - -- Refactor component prefix & name - [#326](https://github.com/bakdata/kpops/pull/326) - -- Remove unnecessary condition during inflate - [#328](https://github.com/bakdata/kpops/pull/328) - - - - - - -## [2.0.7](https://github.com/bakdata/kpops/releases/tag/2.0.7) - Release Date: [2023-08-31] - -### 🐛 Fixes - -- Print only rendered templates when `--template` flag is set - [#350](https://github.com/bakdata/kpops/pull/350) - - -### 📝 Documentation - -- Add migration guide - [#352](https://github.com/bakdata/kpops/pull/352) - - - - - - -## [2.0.6](https://github.com/bakdata/kpops/releases/tag/2.0.6) - Release Date: [2023-08-30] - -### 🏭 Refactor - -- Simplify deployment with local Helm charts - [#349](https://github.com/bakdata/kpops/pull/349) - - - - - - -## [2.0.5](https://github.com/bakdata/kpops/releases/tag/2.0.5) - Release Date: [2023-08-30] - -### 🐛 Fixes - -- Fix versioning of docs when releasing - [#346](https://github.com/bakdata/kpops/pull/346) - - - - - - -## [2.0.4](https://github.com/bakdata/kpops/releases/tag/2.0.4) - Release Date: [2023-08-29] - -### 🐛 Fixes - -- Fix GitHub ref variable for pushing docs to main branch - [#343](https://github.com/bakdata/kpops/pull/343) - - -### 📝 Documentation - -- Add `dprint` as the markdown formatter - [#337](https://github.com/bakdata/kpops/pull/337) - -- Publish pre-release docs for PRs & main branch - [#339](https://github.com/bakdata/kpops/pull/339) - -- Align docs colours - [#345](https://github.com/bakdata/kpops/pull/345) - - -### 🌀 Miscellaneous - -- Exclude abstract components from pipeline schema - [#332](https://github.com/bakdata/kpops/pull/332) - - - - - - -## [2.0.3](https://github.com/bakdata/kpops/releases/tag/2.0.3) - Release Date: [2023-08-24] - -### 🐛 Fixes - -- Fix GitHub action error in non-Python projects - [#340](https://github.com/bakdata/kpops/pull/340) - - -### 🌀 Miscellaneous - -- Lint GitHub action - [#342](https://github.com/bakdata/kpops/pull/342) - - - - - - -## [2.0.2](https://github.com/bakdata/kpops/releases/tag/2.0.2) - Release Date: [2023-08-23] - -### 📝 Documentation - -- Add version dropdown to the documentation - [#336](https://github.com/bakdata/kpops/pull/336) - -- Break the documentation down into smaller subsection - [#329](https://github.com/bakdata/kpops/pull/329) - - - - - - -## [2.0.1](https://github.com/bakdata/kpops/releases/tag/2.0.1) - Release Date: [2023-08-22] - -### 🐛 Fixes - -- Fix optional flags in GitHub action - [#334](https://github.com/bakdata/kpops/pull/334) - - - - - - -## [2.0.0](https://github.com/bakdata/kpops/releases/tag/2.0.0) - Release Date: [2023-08-17] - -### 🏗️ Breaking changes - -- Remove camel case conversion of internal models - [#308](https://github.com/bakdata/kpops/pull/308) - -- Derive component type automatically from class name - [#309](https://github.com/bakdata/kpops/pull/309) - -- Refactor input/output types - [#232](https://github.com/bakdata/kpops/pull/232) - -- v2 - [#321](https://github.com/bakdata/kpops/pull/321) - - -### 🚀 Features - -- Automatically support schema generation for custom components - [#307](https://github.com/bakdata/kpops/pull/307) - -- Derive component type automatically from class name - [#309](https://github.com/bakdata/kpops/pull/309) - - -### 🏭 Refactor - -- Refactor input/output types - [#232](https://github.com/bakdata/kpops/pull/232) - - -### 📝 Documentation - -- Fix editor integration example in docs - [#273](https://github.com/bakdata/kpops/pull/273) - - - - - - -## [1.7.2](https://github.com/bakdata/kpops/releases/tag/1.7.2) - Release Date: [2023-08-16] - -### 🏭 Refactor - -- Refactor Kafka Connect handler - [#322](https://github.com/bakdata/kpops/pull/322) - - -### 📝 Documentation - -- Add KPOps Runner GitHub Action to the documentation - [#325](https://github.com/bakdata/kpops/pull/325) - -- Remove `:type` and `:rtype` from docstrings - [#324](https://github.com/bakdata/kpops/pull/324) - - - - - - -## [1.7.1](https://github.com/bakdata/kpops/releases/tag/1.7.1) - Release Date: [2023-08-15] - -### 📝 Documentation - -- Modularize and autogenerate examples for the documentation - [#267](https://github.com/bakdata/kpops/pull/267) - -- Update the variable documentation - [#266](https://github.com/bakdata/kpops/pull/266) - - - - - - -## [1.7.0](https://github.com/bakdata/kpops/releases/tag/1.7.0) - Release Date: [2023-08-15] - -### 🚀 Features - -- Add flag to exclude pipeline steps - [#300](https://github.com/bakdata/kpops/pull/300) - - - - - - -## [1.6.0](https://github.com/bakdata/kpops/releases/tag/1.6.0) - Release Date: [2023-08-10] - -### 🏭 Refactor - -- Refactor handling of Helm flags - [#319](https://github.com/bakdata/kpops/pull/319) - - - - - - -## [1.5.0](https://github.com/bakdata/kpops/releases/tag/1.5.0) - Release Date: [2023-08-10] - -### 🚀 Features - -- Refactor Helm wrapper and add `--set-file` flag - [#311](https://github.com/bakdata/kpops/pull/311) - - -### 🏭 Refactor - -- Refactor Helm wrapper and add `--set-file` flag - [#311](https://github.com/bakdata/kpops/pull/311) - -- Set default for ToSection topics - [#313](https://github.com/bakdata/kpops/pull/313) - -- Annotate types for ToSection models mapping - [#315](https://github.com/bakdata/kpops/pull/315) - - -### 🌀 Miscellaneous - -- Check Poetry lock file consistency - [#316](https://github.com/bakdata/kpops/pull/316) - - - - - - -## [1.4.0](https://github.com/bakdata/kpops/releases/tag/1.4.0) - Release Date: [2023-08-02] - -### 🐛 Fixes - -- Validate unique step names - [#292](https://github.com/bakdata/kpops/pull/292) - - -### 🏭 Refactor - -- Order PipelineComponent fields - [#290](https://github.com/bakdata/kpops/pull/290) - -- Migrate requests to httpx - [#302](https://github.com/bakdata/kpops/pull/302) - -- Refactor CLI using dtyper - [#306](https://github.com/bakdata/kpops/pull/306) - - -### 🌀 Miscellaneous - -- Update Black - [#294](https://github.com/bakdata/kpops/pull/294) - -- Fix vulnerability in mkdocs-material - [#295](https://github.com/bakdata/kpops/pull/295) - -- Move breaking changes section upper in the change log config - [#287](https://github.com/bakdata/kpops/pull/287) - - - - - - -## [1.3.2](https://github.com/bakdata/kpops/releases/tag/1.3.2) - Release Date: [2023-07-13] - -### 🐛 Fixes - -- Exclude Helm tests from dry-run diff - [#293](https://github.com/bakdata/kpops/pull/293) - - - - - - -## [1.3.1](https://github.com/bakdata/kpops/releases/tag/1.3.1) - Release Date: [2023-07-11] - -### 🏭 Refactor - -- Remove workaround for pipeline steps - [#276](https://github.com/bakdata/kpops/pull/276) - - -### 🌀 Miscellaneous - -- Update codeowners - [#281](https://github.com/bakdata/kpops/pull/281) - -- Reactivate Windows CI - [#255](https://github.com/bakdata/kpops/pull/255) - -- Downgrade Poetry version on the Windows CI pipeline - [#286](https://github.com/bakdata/kpops/pull/286) - -- Set ANSI theme for output of `kpops generate` - [#289](https://github.com/bakdata/kpops/pull/289) - - - - - - -## [1.3.0](https://github.com/bakdata/kpops/releases/tag/1.3.0) - Release Date: [2023-07-07] - -### 🏭 Refactor - -- Plural broker field in pipeline config - [#278](https://github.com/bakdata/kpops/pull/278) - - -### 📝 Documentation - -- Update KPOps runner readme for dev versions - [#279](https://github.com/bakdata/kpops/pull/279) - - -### 🏗️ Breaking changes - -- Plural broker field in pipeline config - [#278](https://github.com/bakdata/kpops/pull/278) - - -### 🌀 Miscellaneous - -- Add breaking changes section to change log config - [#280](https://github.com/bakdata/kpops/pull/280) - - - - - - -## [1.2.4](https://github.com/bakdata/kpops/releases/tag/1.2.4) - Release Date: [2023-06-27] - -### 🌀 Miscellaneous - -- Update changelog action to contain miscellaneous PRs - [#269](https://github.com/bakdata/kpops/pull/269) - - - - - - -## [1.2.3](https://github.com/bakdata/kpops/releases/tag/1.2.3) - Release Date: [2023-06-22] - -### 🐛 Fixes - -- Refactor custom component validation & hide field from kpops output - [#265](https://github.com/bakdata/kpops/pull/265) - - -### 🏭 Refactor - -- Refactor custom component validation & hide field from kpops output - [#265](https://github.com/bakdata/kpops/pull/265) - - - - -### 🌀 Miscellaneous - - - -## [1.2.2](https://github.com/bakdata/kpops/releases/tag/1.2.2) - Release Date: [2023-06-21] - - - -### 🌀 Miscellaneous - -- Create workflow to lint CI - [#260](https://github.com/bakdata/kpops/pull/260) - -- Fix update docs when releasing - [#261](https://github.com/bakdata/kpops/pull/261) - -- Rename change log message for uncategorized issues - [#262](https://github.com/bakdata/kpops/pull/262) - - - -## [1.2.1](https://github.com/bakdata/kpops/releases/tag/1.2.1) - Release Date: [2023-06-21] - - - -Uncategorized - -- Fix update docs in release workflow - [#258](https://github.com/bakdata/kpops/pull/258) - - - -## [1.2.0](https://github.com/bakdata/kpops/releases/tag/1.2.0) - Release Date: [2023-06-21] - -### 🚀 Features - -- Add `helm repo update ` for Helm >3.7 - [#239](https://github.com/bakdata/kpops/pull/239) - - -### 🐛 Fixes - -- add --namespace option to Helm template command - [#237](https://github.com/bakdata/kpops/pull/237) - -- Add missing type annotation for Pydantic attributes - [#238](https://github.com/bakdata/kpops/pull/238) - -- Fix helm version check - [#242](https://github.com/bakdata/kpops/pull/242) - -- Fix Helm Version Check - [#244](https://github.com/bakdata/kpops/pull/244) - -- Fix import from external module - [#256](https://github.com/bakdata/kpops/pull/256) - - -### 🏭 Refactor - -- Remove enable option from helm diff - [#235](https://github.com/bakdata/kpops/pull/235) - -- Refactor variable substitution - [#198](https://github.com/bakdata/kpops/pull/198) - - - - -Uncategorized - -- Add background to docs home page - [#236](https://github.com/bakdata/kpops/pull/236) - -- Update Poetry version in CI - [#247](https://github.com/bakdata/kpops/pull/247) - -- Add pip cache in KPOps runner action - [#249](https://github.com/bakdata/kpops/pull/249) - -- Check types using Pyright - [#251](https://github.com/bakdata/kpops/pull/251) - -- Remove MyPy - [#252](https://github.com/bakdata/kpops/pull/252) - -- Disable broken Windows CI temporarily - [#253](https://github.com/bakdata/kpops/pull/253) - -- Update release and publish workflows - [#254](https://github.com/bakdata/kpops/pull/254) - -- Fix release & publish workflows - [#257](https://github.com/bakdata/kpops/pull/257) - - - - diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 120000 index 000000000..d31599794 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1 @@ +docs/docs/user/changelog.md \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 120000 index 000000000..92403f4d9 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1 @@ +docs/docs/developer/contributing.md \ No newline at end of file diff --git a/docs/docs/developer/contributing.md b/docs/docs/developer/contributing.md new file mode 100644 index 000000000..ff55361cc --- /dev/null +++ b/docs/docs/developer/contributing.md @@ -0,0 +1,19 @@ +# How to contribute + +**Welcome!** We are glad to have you visit our contributing guide! + +If you find any bugs or have suggestions for improvements, please open an [issue](https://github.com/bakdata/kpops/issues/new) and optionally a [pull request (PR)](https://github.com/bakdata/kpops/compare). In the case of a PR, we would appreciate it if you preface it with an issue outlining your goal and means of achieving it. + +## Style + +We advise that you stick to our `pre-commit` hooks for code linting, formatting, and auto-generation of documentation. After you install them using `poetry run pre-commit install` they're triggered automatically during `git commit`. Additionally, you can manually invoke them with `poetry run pre-commit run -a`. In order for `dprint` to work, you have to manually [install](#markdown) it locally. It will work in the CI, so it is also possible to manually carry out formatting changes flagged by `dprint` in the CI and skip installing it locally. + +### Python + +To ensure a consistent Python code style, we use [Ruff](https://docs.astral.sh/ruff/) for both linting and formatting. The official docs contain a guide on [editor integration](https://docs.astral.sh/ruff/integrations/). + +Our configuration can be found in [KPOps](https://github.com/bakdata/kpops)' top-level `pyproject.toml`. + +### Markdown + +To ensure a consistent markdown style, we use [dprint](https://dprint.dev)'s [Markdown code formatter](https://dprint.dev/plugins/markdown/). Our configuration can be found [here](https://github.com/bakdata/kpops/blob/main/dprint.json). diff --git a/docs/docs/developer/formatting.md b/docs/docs/developer/formatting.md deleted file mode 100644 index 54ea1b6d9..000000000 --- a/docs/docs/developer/formatting.md +++ /dev/null @@ -1,12 +0,0 @@ -# Formatting - -## Markdown - -To ensure a consistent markdown style, we use [dprint](https://dprint.dev) to check and reformat. - -```shell -dprint fmt -``` - -Use the [official documentation](https://dprint.dev/setup/) to set up dprint. -The configuration can be found [here](https://github.com/bakdata/kpops/blob/main/dprint.json). diff --git a/docs/docs/developer/getting-started.md b/docs/docs/developer/getting-started.md new file mode 100644 index 000000000..e48d1221a --- /dev/null +++ b/docs/docs/developer/getting-started.md @@ -0,0 +1,12 @@ +# Getting started + +**Welcome!** We are glad to have you visit our developer guide! If you find any bugs or have suggestions for improvements, please open an [issue](https://github.com/bakdata/kpops/issues/new) and optionally a [pull request (PR)](https://github.com/bakdata/kpops/compare). In the case of a PR, we would appreciate it if you preface it with an issue outlining your goal and means of achieving it. + +Find more about our code-style or insights into KPOps' code base here in our developer guide. + + + +!!! wip "Work in progress" + The developer guide is still under construction. If you have a question left unanswered here, feel free to ask it by opening an issue. + + diff --git a/docs/docs/stylesheets/extra.css b/docs/docs/stylesheets/extra.css index ae2953c82..24d84f6c4 100644 --- a/docs/docs/stylesheets/extra.css +++ b/docs/docs/stylesheets/extra.css @@ -13,6 +13,8 @@ /* Color the links with the primary color */ --md-typeset-a-color: var(--md-primary-fg-color); + + --md-admonition-icon--wip: url('data:image/svg+xml;charset=utf-8,') } .md-typeset .md-button, .md-button--primary { @@ -22,3 +24,18 @@ .md-typeset .md-button:hover, .md-button--primary:hover { border-color: white; } + +.md-typeset .admonition.wip, +.md-typeset details.wip { +border-color: rgb(160, 45, 0); +} +.md-typeset .wip > .admonition-title, +.md-typeset .wip > summary { +background-color: rgb(255, 195, 172); +} +.md-typeset .wip > .admonition-title::before, +.md-typeset .wip > summary::before { +background-color: rgb(255, 77, 6); +-webkit-mask-image: var(--md-admonition-icon--wip); + mask-image: var(--md-admonition-icon--wip); +} diff --git a/docs/docs/user/changelog.md b/docs/docs/user/changelog.md new file mode 100644 index 000000000..b964b7de2 --- /dev/null +++ b/docs/docs/user/changelog.md @@ -0,0 +1,480 @@ +# Changelog +## [2.0.11](https://github.com/bakdata/kpops/releases/tag/2.0.11) - Release Date: [2023-10-24] + +### 🐛 Fixes + +- Fix early exit upon Helm exit code 1 - [#376](https://github.com/bakdata/kpops/pull/376) + +- Fix docs setup page list indentation - [#377](https://github.com/bakdata/kpops/pull/377) + + +### 📝 Documentation + +- Migrate deprecated mkdocs-material-extensions - [#378](https://github.com/bakdata/kpops/pull/378) + +- Fix docs setup page list indentation - [#377](https://github.com/bakdata/kpops/pull/377) + +- Exclude resources from docs search - [#371](https://github.com/bakdata/kpops/pull/371) + + + + + + +## [2.0.10](https://github.com/bakdata/kpops/releases/tag/2.0.10) - Release Date: [2023-10-12] + +### 🌀 Miscellaneous + +- Fix environment variables documentation generation - [#362](https://github.com/bakdata/kpops/pull/362) + +- Introduce ruff - [#363](https://github.com/bakdata/kpops/pull/363) + +- Print details on connector name mismatch error - [#369](https://github.com/bakdata/kpops/pull/369) + +- Enable transparent OS environment lookups from internal environment - [#368](https://github.com/bakdata/kpops/pull/368) + + + + + + +## [2.0.9](https://github.com/bakdata/kpops/releases/tag/2.0.9) - Release Date: [2023-09-19] + +### 🐛 Fixes + +- Fix Kafka connect config name for deletion - [#361](https://github.com/bakdata/kpops/pull/361) + + +### 📝 Documentation + +- Fix link to kpops-examples - [#357](https://github.com/bakdata/kpops/pull/357) + + + + + + +## [2.0.8](https://github.com/bakdata/kpops/releases/tag/2.0.8) - Release Date: [2023-09-06] + +### 🐛 Fixes + +- Fix config.yaml overriding environment variables - [#353](https://github.com/bakdata/kpops/pull/353) + + +### 🏭 Refactor + +- Refactor component prefix & name - [#326](https://github.com/bakdata/kpops/pull/326) + +- Remove unnecessary condition during inflate - [#328](https://github.com/bakdata/kpops/pull/328) + + + + + + +## [2.0.7](https://github.com/bakdata/kpops/releases/tag/2.0.7) - Release Date: [2023-08-31] + +### 🐛 Fixes + +- Print only rendered templates when `--template` flag is set - [#350](https://github.com/bakdata/kpops/pull/350) + + +### 📝 Documentation + +- Add migration guide - [#352](https://github.com/bakdata/kpops/pull/352) + + + + + + +## [2.0.6](https://github.com/bakdata/kpops/releases/tag/2.0.6) - Release Date: [2023-08-30] + +### 🏭 Refactor + +- Simplify deployment with local Helm charts - [#349](https://github.com/bakdata/kpops/pull/349) + + + + + + +## [2.0.5](https://github.com/bakdata/kpops/releases/tag/2.0.5) - Release Date: [2023-08-30] + +### 🐛 Fixes + +- Fix versioning of docs when releasing - [#346](https://github.com/bakdata/kpops/pull/346) + + + + + + +## [2.0.4](https://github.com/bakdata/kpops/releases/tag/2.0.4) - Release Date: [2023-08-29] + +### 🐛 Fixes + +- Fix GitHub ref variable for pushing docs to main branch - [#343](https://github.com/bakdata/kpops/pull/343) + + +### 📝 Documentation + +- Add `dprint` as the markdown formatter - [#337](https://github.com/bakdata/kpops/pull/337) + +- Publish pre-release docs for PRs & main branch - [#339](https://github.com/bakdata/kpops/pull/339) + +- Align docs colours - [#345](https://github.com/bakdata/kpops/pull/345) + + +### 🌀 Miscellaneous + +- Exclude abstract components from pipeline schema - [#332](https://github.com/bakdata/kpops/pull/332) + + + + + + +## [2.0.3](https://github.com/bakdata/kpops/releases/tag/2.0.3) - Release Date: [2023-08-24] + +### 🐛 Fixes + +- Fix GitHub action error in non-Python projects - [#340](https://github.com/bakdata/kpops/pull/340) + + +### 🌀 Miscellaneous + +- Lint GitHub action - [#342](https://github.com/bakdata/kpops/pull/342) + + + + + + +## [2.0.2](https://github.com/bakdata/kpops/releases/tag/2.0.2) - Release Date: [2023-08-23] + +### 📝 Documentation + +- Add version dropdown to the documentation - [#336](https://github.com/bakdata/kpops/pull/336) + +- Break the documentation down into smaller subsection - [#329](https://github.com/bakdata/kpops/pull/329) + + + + + + +## [2.0.1](https://github.com/bakdata/kpops/releases/tag/2.0.1) - Release Date: [2023-08-22] + +### 🐛 Fixes + +- Fix optional flags in GitHub action - [#334](https://github.com/bakdata/kpops/pull/334) + + + + + + +## [2.0.0](https://github.com/bakdata/kpops/releases/tag/2.0.0) - Release Date: [2023-08-17] + +### 🏗️ Breaking changes + +- Remove camel case conversion of internal models - [#308](https://github.com/bakdata/kpops/pull/308) + +- Derive component type automatically from class name - [#309](https://github.com/bakdata/kpops/pull/309) + +- Refactor input/output types - [#232](https://github.com/bakdata/kpops/pull/232) + +- v2 - [#321](https://github.com/bakdata/kpops/pull/321) + + +### 🚀 Features + +- Automatically support schema generation for custom components - [#307](https://github.com/bakdata/kpops/pull/307) + +- Derive component type automatically from class name - [#309](https://github.com/bakdata/kpops/pull/309) + + +### 🏭 Refactor + +- Refactor input/output types - [#232](https://github.com/bakdata/kpops/pull/232) + + +### 📝 Documentation + +- Fix editor integration example in docs - [#273](https://github.com/bakdata/kpops/pull/273) + + + + + + +## [1.7.2](https://github.com/bakdata/kpops/releases/tag/1.7.2) - Release Date: [2023-08-16] + +### 🏭 Refactor + +- Refactor Kafka Connect handler - [#322](https://github.com/bakdata/kpops/pull/322) + + +### 📝 Documentation + +- Add KPOps Runner GitHub Action to the documentation - [#325](https://github.com/bakdata/kpops/pull/325) + +- Remove `:type` and `:rtype` from docstrings - [#324](https://github.com/bakdata/kpops/pull/324) + + + + + + +## [1.7.1](https://github.com/bakdata/kpops/releases/tag/1.7.1) - Release Date: [2023-08-15] + +### 📝 Documentation + +- Modularize and autogenerate examples for the documentation - [#267](https://github.com/bakdata/kpops/pull/267) + +- Update the variable documentation - [#266](https://github.com/bakdata/kpops/pull/266) + + + + + + +## [1.7.0](https://github.com/bakdata/kpops/releases/tag/1.7.0) - Release Date: [2023-08-15] + +### 🚀 Features + +- Add flag to exclude pipeline steps - [#300](https://github.com/bakdata/kpops/pull/300) + + + + + + +## [1.6.0](https://github.com/bakdata/kpops/releases/tag/1.6.0) - Release Date: [2023-08-10] + +### 🏭 Refactor + +- Refactor handling of Helm flags - [#319](https://github.com/bakdata/kpops/pull/319) + + + + + + +## [1.5.0](https://github.com/bakdata/kpops/releases/tag/1.5.0) - Release Date: [2023-08-10] + +### 🚀 Features + +- Refactor Helm wrapper and add `--set-file` flag - [#311](https://github.com/bakdata/kpops/pull/311) + + +### 🏭 Refactor + +- Refactor Helm wrapper and add `--set-file` flag - [#311](https://github.com/bakdata/kpops/pull/311) + +- Set default for ToSection topics - [#313](https://github.com/bakdata/kpops/pull/313) + +- Annotate types for ToSection models mapping - [#315](https://github.com/bakdata/kpops/pull/315) + + +### 🌀 Miscellaneous + +- Check Poetry lock file consistency - [#316](https://github.com/bakdata/kpops/pull/316) + + + + + + +## [1.4.0](https://github.com/bakdata/kpops/releases/tag/1.4.0) - Release Date: [2023-08-02] + +### 🐛 Fixes + +- Validate unique step names - [#292](https://github.com/bakdata/kpops/pull/292) + + +### 🏭 Refactor + +- Order PipelineComponent fields - [#290](https://github.com/bakdata/kpops/pull/290) + +- Migrate requests to httpx - [#302](https://github.com/bakdata/kpops/pull/302) + +- Refactor CLI using dtyper - [#306](https://github.com/bakdata/kpops/pull/306) + + +### 🌀 Miscellaneous + +- Update Black - [#294](https://github.com/bakdata/kpops/pull/294) + +- Fix vulnerability in mkdocs-material - [#295](https://github.com/bakdata/kpops/pull/295) + +- Move breaking changes section upper in the change log config - [#287](https://github.com/bakdata/kpops/pull/287) + + + + + + +## [1.3.2](https://github.com/bakdata/kpops/releases/tag/1.3.2) - Release Date: [2023-07-13] + +### 🐛 Fixes + +- Exclude Helm tests from dry-run diff - [#293](https://github.com/bakdata/kpops/pull/293) + + + + + + +## [1.3.1](https://github.com/bakdata/kpops/releases/tag/1.3.1) - Release Date: [2023-07-11] + +### 🏭 Refactor + +- Remove workaround for pipeline steps - [#276](https://github.com/bakdata/kpops/pull/276) + + +### 🌀 Miscellaneous + +- Update codeowners - [#281](https://github.com/bakdata/kpops/pull/281) + +- Reactivate Windows CI - [#255](https://github.com/bakdata/kpops/pull/255) + +- Downgrade Poetry version on the Windows CI pipeline - [#286](https://github.com/bakdata/kpops/pull/286) + +- Set ANSI theme for output of `kpops generate` - [#289](https://github.com/bakdata/kpops/pull/289) + + + + + + +## [1.3.0](https://github.com/bakdata/kpops/releases/tag/1.3.0) - Release Date: [2023-07-07] + +### 🏭 Refactor + +- Plural broker field in pipeline config - [#278](https://github.com/bakdata/kpops/pull/278) + + +### 📝 Documentation + +- Update KPOps runner readme for dev versions - [#279](https://github.com/bakdata/kpops/pull/279) + + +### 🏗️ Breaking changes + +- Plural broker field in pipeline config - [#278](https://github.com/bakdata/kpops/pull/278) + + +### 🌀 Miscellaneous + +- Add breaking changes section to change log config - [#280](https://github.com/bakdata/kpops/pull/280) + + + + + + +## [1.2.4](https://github.com/bakdata/kpops/releases/tag/1.2.4) - Release Date: [2023-06-27] + +### 🌀 Miscellaneous + +- Update changelog action to contain miscellaneous PRs - [#269](https://github.com/bakdata/kpops/pull/269) + + + + + + +## [1.2.3](https://github.com/bakdata/kpops/releases/tag/1.2.3) - Release Date: [2023-06-22] + +### 🐛 Fixes + +- Refactor custom component validation & hide field from kpops output - [#265](https://github.com/bakdata/kpops/pull/265) + + +### 🏭 Refactor + +- Refactor custom component validation & hide field from kpops output - [#265](https://github.com/bakdata/kpops/pull/265) + + + + +### 🌀 Miscellaneous + + + +## [1.2.2](https://github.com/bakdata/kpops/releases/tag/1.2.2) - Release Date: [2023-06-21] + + + +### 🌀 Miscellaneous + +- Create workflow to lint CI - [#260](https://github.com/bakdata/kpops/pull/260) + +- Fix update docs when releasing - [#261](https://github.com/bakdata/kpops/pull/261) + +- Rename change log message for uncategorized issues - [#262](https://github.com/bakdata/kpops/pull/262) + + + +## [1.2.1](https://github.com/bakdata/kpops/releases/tag/1.2.1) - Release Date: [2023-06-21] + + + +Uncategorized + +- Fix update docs in release workflow - [#258](https://github.com/bakdata/kpops/pull/258) + + + +## [1.2.0](https://github.com/bakdata/kpops/releases/tag/1.2.0) - Release Date: [2023-06-21] + +### 🚀 Features + +- Add `helm repo update ` for Helm >3.7 - [#239](https://github.com/bakdata/kpops/pull/239) + + +### 🐛 Fixes + +- add --namespace option to Helm template command - [#237](https://github.com/bakdata/kpops/pull/237) + +- Add missing type annotation for Pydantic attributes - [#238](https://github.com/bakdata/kpops/pull/238) + +- Fix helm version check - [#242](https://github.com/bakdata/kpops/pull/242) + +- Fix Helm Version Check - [#244](https://github.com/bakdata/kpops/pull/244) + +- Fix import from external module - [#256](https://github.com/bakdata/kpops/pull/256) + + +### 🏭 Refactor + +- Remove enable option from helm diff - [#235](https://github.com/bakdata/kpops/pull/235) + +- Refactor variable substitution - [#198](https://github.com/bakdata/kpops/pull/198) + + + + +Uncategorized + +- Add background to docs home page - [#236](https://github.com/bakdata/kpops/pull/236) + +- Update Poetry version in CI - [#247](https://github.com/bakdata/kpops/pull/247) + +- Add pip cache in KPOps runner action - [#249](https://github.com/bakdata/kpops/pull/249) + +- Check types using Pyright - [#251](https://github.com/bakdata/kpops/pull/251) + +- Remove MyPy - [#252](https://github.com/bakdata/kpops/pull/252) + +- Disable broken Windows CI temporarily - [#253](https://github.com/bakdata/kpops/pull/253) + +- Update release and publish workflows - [#254](https://github.com/bakdata/kpops/pull/254) + +- Fix release & publish workflows - [#257](https://github.com/bakdata/kpops/pull/257) + + + + diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index f17c5267f..2d6ac97d0 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -1,6 +1,7 @@ site_name: KPOps -repo_url: https://github.com/bakdata/kpops/ site_url: https://bakdata.github.io/kpops/ +repo_name: KPOps +repo_url: https://github.com/bakdata/kpops/ remote_branch: gh-pages copyright: Copyright © 2023 bakdata @@ -82,6 +83,7 @@ nav: KPOps Documentation: index.md - User Guide: - What is KPOps: user/what-is-kpops.md + - Changelog: user/changelog.md - Getting Started: - Setup: user/getting-started/setup.md - Quick start: user/getting-started/quick-start.md @@ -111,5 +113,7 @@ nav: - CI integration: - GitHub Actions: user/references/ci-integration/github-actions.md - Developer Guide: + - Getting Started: developer/getting-started.md + - Contributing: developer/contributing.md + - Code base: - Auto generation: developer/auto-generation.md - - Formatting: developer/formatting.md diff --git a/hooks/__init__.py b/hooks/__init__.py index ef17ce38a..053c13419 100644 --- a/hooks/__init__.py +++ b/hooks/__init__.py @@ -1,4 +1,4 @@ """KPOps pre-commit hooks.""" from pathlib import Path -PATH_ROOT = Path(__file__).parents[1] +ROOT = Path(__file__).parents[1].resolve() diff --git a/hooks/gen_docs/gen_docs_cli_usage.py b/hooks/gen_docs/gen_docs_cli_usage.py index 469274745..25f7ecd8c 100644 --- a/hooks/gen_docs/gen_docs_cli_usage.py +++ b/hooks/gen_docs/gen_docs_cli_usage.py @@ -2,10 +2,10 @@ import subprocess -from hooks import PATH_ROOT +from hooks import ROOT -PATH_KPOPS_MAIN = PATH_ROOT / "kpops/cli/main.py" -PATH_CLI_COMMANDS_DOC = PATH_ROOT / "docs/docs/user/references/cli-commands.md" +PATH_KPOPS_MAIN = ROOT / "kpops/cli/main.py" +PATH_CLI_COMMANDS_DOC = ROOT / "docs/docs/user/references/cli-commands.md" # TODO(@sujuka99): try to use typer_cli.main.docs here instead # https://github.com/bakdata/kpops/issues/297 diff --git a/hooks/gen_docs/gen_docs_components.py b/hooks/gen_docs/gen_docs_components.py index 45ca61ae1..6fb78f767 100644 --- a/hooks/gen_docs/gen_docs_components.py +++ b/hooks/gen_docs/gen_docs_components.py @@ -7,15 +7,15 @@ import yaml -from hooks import PATH_ROOT +from hooks import ROOT from kpops.cli.registry import _find_classes from kpops.components import KafkaConnector, PipelineComponent from kpops.utils.colorify import redify, yellowify from kpops.utils.yaml_loading import load_yaml_file -PATH_KPOPS_MAIN = PATH_ROOT / "kpops/cli/main.py" -PATH_CLI_COMMANDS_DOC = PATH_ROOT / "docs/docs/user/references/cli-commands.md" -PATH_DOCS_RESOURCES = PATH_ROOT / "docs/docs/resources" +PATH_KPOPS_MAIN = ROOT / "kpops/cli/main.py" +PATH_CLI_COMMANDS_DOC = ROOT / "docs/docs/user/references/cli-commands.md" +PATH_DOCS_RESOURCES = ROOT / "docs/docs/resources" PATH_DOCS_COMPONENTS = PATH_DOCS_RESOURCES / "pipeline-components" PATH_DOCS_COMPONENTS_DEPENDENCIES = ( PATH_DOCS_COMPONENTS / "dependencies/pipeline_component_dependencies.yaml" @@ -212,16 +212,14 @@ def get_sections(component_name: str, *, exist_changes: bool) -> KpopsComponent: ] component_sections_not_inherited: list[ str - ] = DEFAULTS_PIPELINE_COMPONENT_DEPENDENCIES[ - component_file_name - ] # type: ignore [reportGeneralTypeIssues] + ] = DEFAULTS_PIPELINE_COMPONENT_DEPENDENCIES[component_file_name] # type: ignore [reportGeneralTypeIssues] return KpopsComponent(component_sections, component_sections_not_inherited) if __name__ == "__main__": # Check if the dependencies have been modified if not { - str(file.relative_to(PATH_ROOT)) for file in DANGEROUS_FILES_TO_CHANGE + str(file.relative_to(ROOT)) for file in DANGEROUS_FILES_TO_CHANGE }.isdisjoint(SCRIPT_ARGUMENTS): # Set `is_change_present` to indicate that dependencies need to be regenerated is_change_present = True diff --git a/hooks/gen_docs/gen_docs_env_vars.py b/hooks/gen_docs/gen_docs_env_vars.py index ac88b82b6..d347ed8b5 100644 --- a/hooks/gen_docs/gen_docs_env_vars.py +++ b/hooks/gen_docs/gen_docs_env_vars.py @@ -18,12 +18,12 @@ except ImportError: from typing_extensions import Self -from hooks import PATH_ROOT +from hooks import ROOT from hooks.gen_docs import IterableStrEnum from kpops.cli import main from kpops.cli.pipeline_config import PipelineConfig -PATH_DOCS_RESOURCES = PATH_ROOT / "docs/docs/resources" +PATH_DOCS_RESOURCES = ROOT / "docs/docs/resources" PATH_DOCS_VARIABLES = PATH_DOCS_RESOURCES / "variables" PATH_CONFIG_ENV_VARS_DOTENV_FILE = PATH_DOCS_VARIABLES / "config_env_vars.env" @@ -374,8 +374,7 @@ def gen_vars( if __name__ == "__main__": # copy examples from tests resources shutil.copyfile( - PATH_ROOT - / "tests/pipeline/resources/component-type-substitution/pipeline.yaml", + ROOT / "tests/pipeline/resources/component-type-substitution/pipeline.yaml", PATH_DOCS_VARIABLES / "variable_substitution.yaml", ) # Find all config-related env variables and write them into a file diff --git a/hooks/gen_schema.py b/hooks/gen_schema.py index 7d6b99f2e..726da823f 100644 --- a/hooks/gen_schema.py +++ b/hooks/gen_schema.py @@ -3,10 +3,10 @@ from io import StringIO from pathlib import Path -from hooks import PATH_ROOT +from hooks import ROOT from kpops.utils.gen_schema import SchemaScope, gen_config_schema, gen_pipeline_schema -PATH_TO_SCHEMA = PATH_ROOT / "docs/docs/schema" +PATH_TO_SCHEMA = ROOT / "docs/docs/schema" def gen_schema(scope: SchemaScope): diff --git a/kpops/cli/main.py b/kpops/cli/main.py index c7f0e26a1..b989cc01e 100644 --- a/kpops/cli/main.py +++ b/kpops/cli/main.py @@ -271,9 +271,7 @@ def generate( return pipeline -@app.command( - help="Deploy pipeline steps" -) # pyright: ignore[reportGeneralTypeIssues] https://github.com/rec/dtyper/issues/8 +@app.command(help="Deploy pipeline steps") # pyright: ignore[reportGeneralTypeIssues] https://github.com/rec/dtyper/issues/8 def deploy( pipeline_path: Path = PIPELINE_PATH_ARG, components_module: Optional[str] = COMPONENTS_MODULES, @@ -296,9 +294,7 @@ def deploy( component.deploy(dry_run) -@app.command( - help="Destroy pipeline steps" -) # pyright: ignore[reportGeneralTypeIssues] https://github.com/rec/dtyper/issues/8 +@app.command(help="Destroy pipeline steps") # pyright: ignore[reportGeneralTypeIssues] https://github.com/rec/dtyper/issues/8 def destroy( pipeline_path: Path = PIPELINE_PATH_ARG, components_module: Optional[str] = COMPONENTS_MODULES, @@ -320,9 +316,7 @@ def destroy( component.destroy(dry_run) -@app.command( - help="Reset pipeline steps" -) # pyright: ignore[reportGeneralTypeIssues] https://github.com/rec/dtyper/issues/8 +@app.command(help="Reset pipeline steps") # pyright: ignore[reportGeneralTypeIssues] https://github.com/rec/dtyper/issues/8 def reset( pipeline_path: Path = PIPELINE_PATH_ARG, components_module: Optional[str] = COMPONENTS_MODULES, @@ -345,9 +339,7 @@ def reset( component.reset(dry_run) -@app.command( - help="Clean pipeline steps" -) # pyright: ignore[reportGeneralTypeIssues] https://github.com/rec/dtyper/issues/8 +@app.command(help="Clean pipeline steps") # pyright: ignore[reportGeneralTypeIssues] https://github.com/rec/dtyper/issues/8 def clean( pipeline_path: Path = PIPELINE_PATH_ARG, components_module: Optional[str] = COMPONENTS_MODULES, diff --git a/poetry.lock b/poetry.lock index e0cabdcba..05591986a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -80,51 +80,6 @@ soupsieve = ">1.2" html5lib = ["html5lib"] lxml = ["lxml"] -[[package]] -name = "black" -version = "23.7.0" -description = "The uncompromising code formatter." -optional = false -python-versions = ">=3.8" -files = [ - {file = "black-23.7.0-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:5c4bc552ab52f6c1c506ccae05681fab58c3f72d59ae6e6639e8885e94fe2587"}, - {file = "black-23.7.0-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:552513d5cd5694590d7ef6f46e1767a4df9af168d449ff767b13b084c020e63f"}, - {file = "black-23.7.0-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:86cee259349b4448adb4ef9b204bb4467aae74a386bce85d56ba4f5dc0da27be"}, - {file = "black-23.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:501387a9edcb75d7ae8a4412bb8749900386eaef258f1aefab18adddea1936bc"}, - {file = "black-23.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:fb074d8b213749fa1d077d630db0d5f8cc3b2ae63587ad4116e8a436e9bbe995"}, - {file = "black-23.7.0-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:b5b0ee6d96b345a8b420100b7d71ebfdd19fab5e8301aff48ec270042cd40ac2"}, - {file = "black-23.7.0-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:893695a76b140881531062d48476ebe4a48f5d1e9388177e175d76234ca247cd"}, - {file = "black-23.7.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:c333286dc3ddca6fdff74670b911cccedacb4ef0a60b34e491b8a67c833b343a"}, - {file = "black-23.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:831d8f54c3a8c8cf55f64d0422ee875eecac26f5f649fb6c1df65316b67c8926"}, - {file = "black-23.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:7f3bf2dec7d541b4619b8ce526bda74a6b0bffc480a163fed32eb8b3c9aed8ad"}, - {file = "black-23.7.0-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:f9062af71c59c004cd519e2fb8f5d25d39e46d3af011b41ab43b9c74e27e236f"}, - {file = "black-23.7.0-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:01ede61aac8c154b55f35301fac3e730baf0c9cf8120f65a9cd61a81cfb4a0c3"}, - {file = "black-23.7.0-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:327a8c2550ddc573b51e2c352adb88143464bb9d92c10416feb86b0f5aee5ff6"}, - {file = "black-23.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d1c6022b86f83b632d06f2b02774134def5d4d4f1dac8bef16d90cda18ba28a"}, - {file = "black-23.7.0-cp38-cp38-win_amd64.whl", hash = "sha256:27eb7a0c71604d5de083757fbdb245b1a4fae60e9596514c6ec497eb63f95320"}, - {file = "black-23.7.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:8417dbd2f57b5701492cd46edcecc4f9208dc75529bcf76c514864e48da867d9"}, - {file = "black-23.7.0-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:47e56d83aad53ca140da0af87678fb38e44fd6bc0af71eebab2d1f59b1acf1d3"}, - {file = "black-23.7.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:25cc308838fe71f7065df53aedd20327969d05671bac95b38fdf37ebe70ac087"}, - {file = "black-23.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:642496b675095d423f9b8448243336f8ec71c9d4d57ec17bf795b67f08132a91"}, - {file = "black-23.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:ad0014efc7acf0bd745792bd0d8857413652979200ab924fbf239062adc12491"}, - {file = "black-23.7.0-py3-none-any.whl", hash = "sha256:9fd59d418c60c0348505f2ddf9609c1e1de8e7493eab96198fc89d9f865e7a96"}, - {file = "black-23.7.0.tar.gz", hash = "sha256:022a582720b0d9480ed82576c920a8c1dde97cc38ff11d8d8859b3bd6ca9eedb"}, -] - -[package.dependencies] -click = ">=8.0.0" -mypy-extensions = ">=0.4.3" -packaging = ">=22.0" -pathspec = ">=0.9.0" -platformdirs = ">=2" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} - -[package.extras] -colorama = ["colorama (>=0.4.3)"] -d = ["aiohttp (>=3.7.4)"] -jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] -uvloop = ["uvloop (>=0.15.2)"] - [[package]] name = "cachetools" version = "5.2.0" @@ -735,17 +690,6 @@ files = [ {file = "mkdocs_material_extensions-1.3.tar.gz", hash = "sha256:f0446091503acb110a7cab9349cbc90eeac51b58d1caa92a704a81ca1e24ddbd"}, ] -[[package]] -name = "mypy-extensions" -version = "0.4.3" -description = "Experimental type system extensions for programs checked with the mypy typechecker." -optional = false -python-versions = "*" -files = [ - {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, - {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, -] - [[package]] name = "nodeenv" version = "1.7.0" @@ -1433,28 +1377,28 @@ jupyter = ["ipywidgets (>=7.5.1,<8.0.0)"] [[package]] name = "ruff" -version = "0.1.1" +version = "0.1.3" description = "An extremely fast Python linter, written in Rust." optional = false python-versions = ">=3.7" files = [ - {file = "ruff-0.1.1-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:b7cdc893aef23ccc14c54bd79a8109a82a2c527e11d030b62201d86f6c2b81c5"}, - {file = "ruff-0.1.1-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:620d4b34302538dbd8bbbe8fdb8e8f98d72d29bd47e972e2b59ce6c1e8862257"}, - {file = "ruff-0.1.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a909d3930afdbc2e9fd893b0034479e90e7981791879aab50ce3d9f55205bd6"}, - {file = "ruff-0.1.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3305d1cb4eb8ff6d3e63a48d1659d20aab43b49fe987b3ca4900528342367145"}, - {file = "ruff-0.1.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c34ae501d0ec71acf19ee5d4d889e379863dcc4b796bf8ce2934a9357dc31db7"}, - {file = "ruff-0.1.1-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:6aa7e63c3852cf8fe62698aef31e563e97143a4b801b57f920012d0e07049a8d"}, - {file = "ruff-0.1.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2d68367d1379a6b47e61bc9de144a47bcdb1aad7903bbf256e4c3d31f11a87ae"}, - {file = "ruff-0.1.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bc11955f6ce3398d2afe81ad7e49d0ebf0a581d8bcb27b8c300281737735e3a3"}, - {file = "ruff-0.1.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cbbd8eead88ea83a250499074e2a8e9d80975f0b324b1e2e679e4594da318c25"}, - {file = "ruff-0.1.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:f4780e2bb52f3863a565ec3f699319d3493b83ff95ebbb4993e59c62aaf6e75e"}, - {file = "ruff-0.1.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:8f5b24daddf35b6c207619301170cae5d2699955829cda77b6ce1e5fc69340df"}, - {file = "ruff-0.1.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:d3f9ac658ba29e07b95c80fa742b059a55aefffa8b1e078bc3c08768bdd4b11a"}, - {file = "ruff-0.1.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:3521bf910104bf781e6753282282acc145cbe3eff79a1ce6b920404cd756075a"}, - {file = "ruff-0.1.1-py3-none-win32.whl", hash = "sha256:ba3208543ab91d3e4032db2652dcb6c22a25787b85b8dc3aeff084afdc612e5c"}, - {file = "ruff-0.1.1-py3-none-win_amd64.whl", hash = "sha256:3ff3006c97d9dc396b87fb46bb65818e614ad0181f059322df82bbfe6944e264"}, - {file = "ruff-0.1.1-py3-none-win_arm64.whl", hash = "sha256:e140bd717c49164c8feb4f65c644046fe929c46f42493672853e3213d7bdbce2"}, - {file = "ruff-0.1.1.tar.gz", hash = "sha256:c90461ae4abec261609e5ea436de4a4b5f2822921cf04c16d2cc9327182dbbcc"}, + {file = "ruff-0.1.3-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:b46d43d51f7061652eeadb426a9e3caa1e0002470229ab2fc19de8a7b0766901"}, + {file = "ruff-0.1.3-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:b8afeb9abd26b4029c72adc9921b8363374f4e7edb78385ffaa80278313a15f9"}, + {file = "ruff-0.1.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca3cf365bf32e9ba7e6db3f48a4d3e2c446cd19ebee04f05338bc3910114528b"}, + {file = "ruff-0.1.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4874c165f96c14a00590dcc727a04dca0cfd110334c24b039458c06cf78a672e"}, + {file = "ruff-0.1.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eec2dd31eed114e48ea42dbffc443e9b7221976554a504767ceaee3dd38edeb8"}, + {file = "ruff-0.1.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:dc3ec4edb3b73f21b4aa51337e16674c752f1d76a4a543af56d7d04e97769613"}, + {file = "ruff-0.1.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e3de9ed2e39160800281848ff4670e1698037ca039bda7b9274f849258d26ce"}, + {file = "ruff-0.1.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c595193881922cc0556a90f3af99b1c5681f0c552e7a2a189956141d8666fe8"}, + {file = "ruff-0.1.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f75e670d529aa2288cd00fc0e9b9287603d95e1536d7a7e0cafe00f75e0dd9d"}, + {file = "ruff-0.1.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:76dd49f6cd945d82d9d4a9a6622c54a994689d8d7b22fa1322983389b4892e20"}, + {file = "ruff-0.1.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:918b454bc4f8874a616f0d725590277c42949431ceb303950e87fef7a7d94cb3"}, + {file = "ruff-0.1.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:d8859605e729cd5e53aa38275568dbbdb4fe882d2ea2714c5453b678dca83784"}, + {file = "ruff-0.1.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:0b6c55f5ef8d9dd05b230bb6ab80bc4381ecb60ae56db0330f660ea240cb0d4a"}, + {file = "ruff-0.1.3-py3-none-win32.whl", hash = "sha256:3e7afcbdcfbe3399c34e0f6370c30f6e529193c731b885316c5a09c9e4317eef"}, + {file = "ruff-0.1.3-py3-none-win_amd64.whl", hash = "sha256:7a18df6638cec4a5bd75350639b2bb2a2366e01222825562c7346674bdceb7ea"}, + {file = "ruff-0.1.3-py3-none-win_arm64.whl", hash = "sha256:12fd53696c83a194a2db7f9a46337ce06445fb9aa7d25ea6f293cf75b21aca9f"}, + {file = "ruff-0.1.3.tar.gz", hash = "sha256:3ba6145369a151401d5db79f0a47d50e470384d0d89d0d6f7fab0b589ad07c34"}, ] [[package]] @@ -1817,4 +1761,4 @@ watchmedo = ["PyYAML (>=3.10)"] [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "dfdbdd18867682898d908dd3a3e19741993478eb7b722d3dd14a5c2acd0b9826" +content-hash = "cfa6447fe58b9cffa8247c4d2e09fa988bbb7484a2a728e432a63c05872e3bd8" diff --git a/pyproject.toml b/pyproject.toml index e65abe824..f07648ca0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -45,8 +45,7 @@ pytest-mock = "^3.10.0" pytest-timeout = "^2.1.0" snapshottest = "^0.6.0" pre-commit = "^2.19.0" -ruff = "^0.1.1" -black = "^23.7.0" +ruff = "^0.1.3" typer-cli = "^0.0.13" pyright = "^1.1.314" pytest-rerunfailures = "^11.1.2" @@ -68,8 +67,23 @@ mike = "^1.1.2" [tool.ruff] ignore = [ - # "E203", # whitespace before ':' -- Not PEP8 compliant, black won't correct it, add when out of nursery - "E501", # Line too long -- Clashes with `black` +# Rules in conflict with `ruff-format` -- START + "W191", # Checks for indentation that uses tabs. Spaces are preferred. + # "E111", # Checks for indentation with a non-multiple of 4 spaces, add when out of nursery + # "E114", # Checks for indentation of comments with a non-multiple of 4 spaces, add when out of nursery + # "E117", # Checks for over-indented code, add when out of nursery + "E501", # Line too long + "D206", # Checks for docstrings that are indented with tabs. + "D300", # Checks for docstrings that use '''triple single quotes''' instead of """triple double quotes""". + "Q000", # Checks for inline strings that use single quotes. + "Q001", # Checks for multiline strings that use single quotes + "Q002", # Checks for docstrings that use single quotes. + "Q003", # Checks for strings that include escaped quotes. + "COM812", # Checks for the absence of trailing commas. + "COM819", # Checks for the presence of prohibited trailing commas. + "ISC001", # Checks for implicitly concatenated strings on a single line. + "ISC002", # Checks for implicitly concatenated strings that span multiple lines. +# Rules in conflict with `ruff-format` -- END "D1", # Missing docstring for {} -- Inconvenient to enforce # The following "D" rules do not correspond to our coding style. We use the pep257 convention, but # "D212" should not be ignored. In ruff (0.0.291) we cannot select a rule that is excluded by specifying @@ -94,7 +108,6 @@ ignore = [ "B010", # Do not call setattr with a constant attribute value. -- Not always applicable "RUF012", # type class attrs with `ClassVar` -- Too strict/trigger-happy "UP007", # Use X | Y for type annotations -- `typer` doesn't support it - "COM812", # Checks for the absence of trailing commas -- leads to undesirable behavior from formatters "PIE804", # Unnecessary `dict` kwargs -- Inconvenient to enforce "RET505", # Unnecessary {branch} after return statement -- Lots of false positives "RET506", # Unnecessary {branch} after raise statement -- Lots of false positives @@ -146,14 +159,11 @@ output-format = "grouped" show-fixes = true task-tags = ["TODO", "HACK", "FIXME", "XXX"] target-version = "py310" -exclude = ["tests/*snapshots/*"] +extend-exclude = ["tests/*snapshots/*"] [tool.ruff.extend-per-file-ignores] "tests/*/__init__.py" = ["F401"] -[tool.ruff.isort] -split-on-trailing-comma = false - [tool.ruff.flake8-bugbear] extend-immutable-calls = ["typer.Argument"]