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.
The ``oca-gen-addon-readme`` entry is a multi-line YAML scalar. The
prettier hook rewrites it on every run in each target repo, producing a
recurring local diff against the deployed copy. Format the source configs
with the exact prettier versions deployed per version (2.7.1 for 16.0,
3.3.3 for 18.0) so the deployed files already match the hook output.
No functional change: YAML folds the scalar newlines into spaces either
way.
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.