Skip to content

Commit 4ab43ac

Browse files
ericvergnaudjimidle
authored andcommitted
present antlr before versioning (antlr#4156)
Signed-off-by: Jim.Idle <[email protected]>
1 parent d77766b commit 4ab43ac

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

README.md

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

6-
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-
13-
* a component may be released with the latest version number even though nothing has changed within that component since the previous release
14-
* major version is bumped only when ANTLR is rewritten for a totally new "generation", such as ANTLR3 -> ANTLR4 (LL(\*) -> ALL(\*) parsing)
15-
* minor version updates may include minor breaking changes, the policy is to regenerate parsers with every release (4.11 -> 4.12)
16-
* backwards compatibility is only guaranteed for patch version bumps (4.11.1 -> 4.11.2)
17-
18-
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.
19-
206
**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.
217

228
**Dev branch build status**
@@ -32,6 +18,20 @@ If you use a semver verifier in your CI, you probably want to apply special rule
3218
[![Travis-CI Build Status (Swift-Linux)](https://img.shields.io/travis/antlr/antlr4.svg?label=Linux-Swift&branch=master)](https://travis-ci.com/github/antlr/antlr4)
3319
-->
3420

21+
22+
## Versioning
23+
24+
ANTLR 4 supports 10 target languages, and ensuring consistency across these targets is a unique and highly valuable feature.
25+
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.
26+
As such, ANTLR versioning does not strictly follow semver semantics:
27+
28+
* a component may be released with the latest version number even though nothing has changed within that component since the previous release
29+
* major version is bumped only when ANTLR is rewritten for a totally new "generation", such as ANTLR3 -> ANTLR4 (LL(\*) -> ALL(\*) parsing)
30+
* minor version updates may include minor breaking changes, the policy is to regenerate parsers with every release (4.11 -> 4.12)
31+
* backwards compatibility is only guaranteed for patch version bumps (4.11.1 -> 4.11.2)
32+
33+
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.
34+
3535
## Repo branch structure
3636

3737
The default branch for this repo is [`master`](https://github.com/antlr/antlr4/tree/master), which is the latest stable release and has tags for the various releases; e.g., see release tag [4.9.3](https://github.com/antlr/antlr4/tree/4.9.3). Branch [`dev`](https://github.com/antlr/antlr4/tree/dev) is where development occurs between releases and all pull requests should be derived from that branch. The `dev` branch is merged back into `master` to cut a release and the release state is tagged (e.g., with `4.10-rc1` or `4.10`.) Visually our process looks roughly like this:

0 commit comments

Comments
 (0)