The pre-commit workflow runs
``git ls-files --others --exclude-from=.gitignore`` to detect files
generated by hooks that are not committed. This aborts with
"cannot use .gitignore as an exclude file" in repos that have no root
.gitignore (all Elabore addons repos).
Ship the OCA-standard .gitignore via config/common so every repo has one.
Add config/18.0/ with configuration files based on OCA standards:
- .pylintrc and .pylintrc-mandatory (valid-odoo-versions=18.0)
- .ruff.toml (Python linting)
- .pre-commit-config.yaml with updated hooks:
- whool-init (new in 18.0)
- oca-gen-external-dependencies (new in 18.0)
- Updated prettier 3.x and eslint 9.x
- eslint.config.cjs and prettier.config.cjs (new flat config format)
Also move .eslintrc.yml and .prettierrc.yml to config/16.0/ since
18.0 uses the new CJS flat config format instead of YAML.
Replace per-branch versioning (16.0, 18.0...) with a single main branch
containing version-specific subdirectories under config/.
Structure:
- config/common/: shared files deployed to all versions
- config/16.0/: Odoo 16.0 specific configs (pylintrc, ruff, pre-commit)
The deploy workflow now:
- Triggers on push to main
- Auto-detects available versions from config/*/
- For each target repo, deploys common + version-specific files
Also enables Gitea native cache in pre-commit workflow.