diff --git a/.copier-answers.yml b/.copier-answers.yml index 73d6ea54..079381e1 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,8 +1,9 @@ # Do NOT update manually; changes here will be overwritten by Copier _commit: v1.21.1 _src_path: git+https://github.com/oca/oca-addons-repo-template +additional_ruff_rules: [] ci: GitHub -convert_readme_fragments_to_markdown: false +convert_readme_fragments_to_markdown: true generate_requirements_txt: true github_check_license: true github_ci_extra_env: {} @@ -12,7 +13,7 @@ github_enable_stale_action: true github_enforce_dev_status_compatibility: true include_wkhtmltopdf: false odoo_test_flavor: Both -odoo_version: 16.0 +odoo_version: 17.0 org_name: Odoo Community Association (OCA) org_slug: OCA rebel_module_groups: [] @@ -21,6 +22,6 @@ repo_description: This repository has nice modules to interact with Odoo using J repo_name: Rest Frameworks repo_slug: rest-framework repo_website: https://github.com/OCA/rest-framework -use_pyproject_toml: false -use_ruff: false +use_pyproject_toml: true +use_ruff: true diff --git a/.flake8 b/.flake8 deleted file mode 100644 index e397e8ed..00000000 --- a/.flake8 +++ /dev/null @@ -1,12 +0,0 @@ -[flake8] -max-line-length = 88 -max-complexity = 16 -# B = bugbear -# B9 = bugbear opinionated (incl line length) -select = C,E,F,W,B,B9 -# E203: whitespace before ':' (black behaviour) -# E501: flake8 line length (covered by bugbear B950) -# W503: line break before binary operator (black behaviour) -ignore = E203,E501,W503 -per-file-ignores= - __init__.py:F401 diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 38b0ba11..c58f6292 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -3,11 +3,11 @@ name: pre-commit on: pull_request: branches: - - "16.0*" + - "17.0*" push: branches: - - "16.0" - - "16.0-ocabot-*" + - "17.0" + - "17.0-ocabot-*" jobs: pre-commit: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3bf18e84..03c1acbb 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,11 +3,11 @@ name: tests on: pull_request: branches: - - "16.0*" + - "17.0*" push: branches: - - "16.0" - - "16.0-ocabot-*" + - "17.0" + - "17.0-ocabot-*" jobs: unreleased-deps: @@ -35,9 +35,9 @@ jobs: fail-fast: false matrix: include: - - container: ghcr.io/oca/oca-ci/py3.10-odoo16.0:latest + - container: ghcr.io/oca/oca-ci/py3.10-odoo17.0:latest name: test with Odoo - - container: ghcr.io/oca/oca-ci/py3.10-ocb16.0:latest + - container: ghcr.io/oca/oca-ci/py3.10-ocb17.0:latest name: test with OCB makepot: "true" services: diff --git a/.isort.cfg b/.isort.cfg deleted file mode 100644 index 0ec187ef..00000000 --- a/.isort.cfg +++ /dev/null @@ -1,13 +0,0 @@ -[settings] -; see https://github.com/psf/black -multi_line_output=3 -include_trailing_comma=True -force_grid_wrap=0 -combine_as_imports=True -use_parentheses=True -line_length=88 -known_odoo=odoo -known_odoo_addons=odoo.addons -sections=FUTURE,STDLIB,THIRDPARTY,ODOO,ODOO_ADDONS,FIRSTPARTY,LOCALFOLDER -default_section=THIRDPARTY -ensure_newline_before_comments = True diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 5c88223f..7fecac23 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -56,6 +56,10 @@ repos: entry: found a en.po file language: fail files: '[a-zA-Z0-9_]*/i18n/en\.po$' + - repo: https://github.com/sbidoul/whool + rev: v0.5 + hooks: + - id: whool-init - repo: https://github.com/oca/maintainer-tools rev: 9a170331575a265c092ee6b24b845ec508e8ef75 hooks: @@ -66,31 +70,18 @@ repos: - id: oca-gen-addon-readme args: - --addons-dir=. - - --branch=16.0 + - --branch=17.0 - --org-name=OCA - --repo-name=rest-framework - --if-source-changed - --keep-source-digest + - --convert-fragments-to-markdown + - id: oca-gen-external-dependencies - repo: https://github.com/OCA/odoo-pre-commit-hooks rev: v0.0.25 hooks: - id: oca-checks-odoo-module - id: oca-checks-po - - repo: https://github.com/myint/autoflake - rev: v1.6.1 - hooks: - - id: autoflake - args: - - --expand-star-imports - - --ignore-init-module-imports - - --in-place - - --remove-all-unused-imports - - --remove-duplicate-keys - - --remove-unused-variables - - repo: https://github.com/psf/black - rev: 22.8.0 - hooks: - - id: black - repo: https://github.com/pre-commit/mirrors-prettier rev: v2.7.1 hooks: @@ -132,37 +123,14 @@ repos: - id: check-xml - id: mixed-line-ending args: ["--fix=lf"] - - repo: https://github.com/asottile/pyupgrade - rev: v2.38.2 - hooks: - - id: pyupgrade - args: ["--keep-percent-format"] - - repo: https://github.com/PyCQA/isort - rev: 5.12.0 - hooks: - - id: isort - name: isort except __init__.py - args: - - --settings=. - exclude: /__init__\.py$ - - repo: https://github.com/acsone/setuptools-odoo - rev: 3.1.8 - hooks: - - id: setuptools-odoo-make-default - - id: setuptools-odoo-get-requirements - args: - - --output - - requirements.txt - - --header - - "# generated from manifests external_dependencies" - - repo: https://github.com/PyCQA/flake8 - rev: 3.9.2 + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.1.3 hooks: - - id: flake8 - name: flake8 - additional_dependencies: ["flake8-bugbear==21.9.2"] + - id: ruff + args: [--fix, --exit-non-zero-on-fix] + - id: ruff-format - repo: https://github.com/OCA/pylint-odoo - rev: v8.0.19 + rev: v9.0.4 hooks: - id: pylint_odoo name: pylint with optional checks diff --git a/.pylintrc b/.pylintrc index 55491327..874f6966 100644 --- a/.pylintrc +++ b/.pylintrc @@ -10,7 +10,7 @@ manifest-required-authors=Odoo Community Association (OCA) manifest-required-keys=license manifest-deprecated-keys=description,active license-allowed=AGPL-3,GPL-2,GPL-2 or any later version,GPL-3,GPL-3 or any later version,LGPL-3 -valid-odoo-versions=16.0 +valid-odoo-versions=17.0 [MESSAGES CONTROL] disable=all diff --git a/.pylintrc-mandatory b/.pylintrc-mandatory index 7a0cd4ef..0d7ae080 100644 --- a/.pylintrc-mandatory +++ b/.pylintrc-mandatory @@ -9,7 +9,7 @@ manifest-required-authors=Odoo Community Association (OCA) manifest-required-keys=license manifest-deprecated-keys=description,active license-allowed=AGPL-3,GPL-2,GPL-2 or any later version,GPL-3,GPL-3 or any later version,LGPL-3 -valid-odoo-versions=16.0 +valid-odoo-versions=17.0 [MESSAGES CONTROL] disable=all diff --git a/.ruff.toml b/.ruff.toml new file mode 100644 index 00000000..0240c75f --- /dev/null +++ b/.ruff.toml @@ -0,0 +1,30 @@ + +target-version = "py310" +fix = true + +[lint] +extend-select = [ + "B", + "C90", + "E501", # line too long (default 88) + "I", # isort + "UP", # pyupgrade +] +exclude = ["setup/*"] + +[format] +exclude = ["setup/*"] + +[per-file-ignores] +"__init__.py" = ["F401", "I001"] # ignore unused and unsorted imports in __init__.py +"__manifest__.py" = ["B018"] # useless expression + +[isort] +section-order = ["future", "standard-library", "third-party", "odoo", "odoo-addons", "first-party", "local-folder"] + +[isort.sections] +"odoo" = ["odoo"] +"odoo-addons" = ["odoo.addons"] + +[mccabe] +max-complexity = 16 diff --git a/README.md b/README.md index 0202c774..e354a8d5 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ -[![Runboat](https://img.shields.io/badge/runboat-Try%20me-875A7B.png)](https://runboat.odoo-community.org/builds?repo=OCA/rest-framework&target_branch=16.0) -[![Pre-commit Status](https://github.com/OCA/rest-framework/actions/workflows/pre-commit.yml/badge.svg?branch=16.0)](https://github.com/OCA/rest-framework/actions/workflows/pre-commit.yml?query=branch%3A16.0) -[![Build Status](https://github.com/OCA/rest-framework/actions/workflows/test.yml/badge.svg?branch=16.0)](https://github.com/OCA/rest-framework/actions/workflows/test.yml?query=branch%3A16.0) -[![codecov](https://codecov.io/gh/OCA/rest-framework/branch/16.0/graph/badge.svg)](https://codecov.io/gh/OCA/rest-framework) -[![Translation Status](https://translation.odoo-community.org/widgets/rest-framework-16-0/-/svg-badge.svg)](https://translation.odoo-community.org/engage/rest-framework-16-0/?utm_source=widget) +[![Runboat](https://img.shields.io/badge/runboat-Try%20me-875A7B.png)](https://runboat.odoo-community.org/builds?repo=OCA/rest-framework&target_branch=17.0) +[![Pre-commit Status](https://github.com/OCA/rest-framework/actions/workflows/pre-commit.yml/badge.svg?branch=17.0)](https://github.com/OCA/rest-framework/actions/workflows/pre-commit.yml?query=branch%3A17.0) +[![Build Status](https://github.com/OCA/rest-framework/actions/workflows/test.yml/badge.svg?branch=17.0)](https://github.com/OCA/rest-framework/actions/workflows/test.yml?query=branch%3A17.0) +[![codecov](https://codecov.io/gh/OCA/rest-framework/branch/17.0/graph/badge.svg)](https://codecov.io/gh/OCA/rest-framework) +[![Translation Status](https://translation.odoo-community.org/widgets/rest-framework-17-0/-/svg-badge.svg)](https://translation.odoo-community.org/engage/rest-framework-17-0/?utm_source=widget)