antlr / antlr4

ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files.
http://antlr.org
BSD 3-Clause "New" or "Revised" License
16.68k stars 3.23k forks source link

Separated package/artifactId when the minor version is upgraded for compatibility issues #4602

Open yaozhang1235 opened 2 months ago

yaozhang1235 commented 2 months ago

Target: Java Background: backwards compatibility is NOT guaranteed for different minor versions. it makes very hard to use latest version in a big project which already has some code using older version. we have to always use the oldest version antlr in the project unless upgrade all code to use the latest.

Recommended approach: every time if the compatibility is break, the root package should be renamed (org.antlr.v411. -> org.antlr.v412.) and the artifactId also needs to be updated accordingly (antlr411-runtime -> antlr412-runtime). so that, we can use latest version for new features without worrying about the compatibility issues.