Understand the branch management policy for ES/OS API differences
developBecause Elasticsearch (ES) and OpenSearch (OS) have different APIs depending on their versions, this project manages code differences using a branch-per-series strategy.
Core Principles:
developbranch: Holds all common functionality. Changes should originate here and be cherry-picked/backported to specific series branches.- Series branches: One branch exists for each combination of engine and major version (e.g.,
es-9,os-3). - Branching logic: Minimize branching. Only split branches when significant code differences occur between minor versions within a series.
- Code location: Avoid using
src/main/ext/for new version differences; implement changes directly in the target series branch instead.