Skip to content

Commit 26d3a32

Browse files
authored
Merge pull request #3973 from ericvergnaud/document-versioning-strategy
no message
2 parents 249dc8f + ebb3ff7 commit 26d3a32

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,17 @@
44
[![License](https://img.shields.io/badge/license-BSD-blue.svg)](https://raw.githubusercontent.com/antlr/antlr4/master/LICENSE.txt)
55

66

7+
## Versioning
8+
9+
ANTLR 4 supports 10 target languages, and ensuring consistency across these targets is a unique and highly valuable feature.
10+
To ensure proper support of this feature, each release of ANTLR is a complete release of the tool and the 10 runtimes, all with the same version.
11+
As such, ANTLR versioning does not strictly follow semver semantics:
12+
- a component may be released with the latest version number even though nothing has changed within that component since the previous release
13+
- major version is bumped only when new grammar features are released (such as ANTLR3 -> ANTLR4)
14+
- minor version updates may include minor breaking changes, the policy is to regenerate parsers with every release
15+
- backwards compatibility is only guaranteed for patch version bumps
16+
If you use a semver verifier in your CI, you probably want to apply special rules for ANTLR, such as treating minor change as a major change.
17+
718
**ANTLR** (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files. It's widely used to build languages, tools, and frameworks. From a grammar, ANTLR generates a parser that can build parse trees and also generates a listener interface (or visitor) that makes it easy to respond to the recognition of phrases of interest.
819

920
**Dev branch build status**

0 commit comments

Comments
 (0)