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.
CI config changes are low-risk and don't affect business code.
Direct push eliminates the need to manually validate 50+ PRs.
Changes:
- Push commits directly to target branches (no AGit PR flow)
- Simplified commit message: '[CI] sync config from odoo-elabore-ci'
- Update README to reflect direct push behavior
Replace automatic deployment (on push) with manual workflow_dispatch:
- Version filter: deploy to all versions or specific one (16.0, 18.0)
- Repo filter: deploy to all repos or comma-separated list
- Dry-run mode: preview changes without creating PRs
- Detailed summary with emoji indicators and statistics
Benefits:
- Full control over deployment scope and timing
- Safe preview before creating 50+ PRs
- Targeted deployments for testing
Update README with new deployment guide and examples.
Document repository purpose, architecture, workflows, and usage:
- CI deployment workflow explanation
- Linting tools overview
- How to modify CI configuration
- How to add new Odoo version support
- Configuration files explanation
- Secrets setup
- Version differences (16.0 vs 18.0)
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.