blob: bf56da3a2dd2e69a6a5271978b3a1f66b023e1ed [file] [log] [blame]
layout 'layouts/main.groovy', true,
pageTitle: 'The Apache Groovy programming language - Versioning',
mainContent: contents {
div(id: 'content', class: 'page-1') {
div(class: 'row') {
div(class: 'row-fluid') {
div(class: 'col-lg-3') {
ul(class: 'nav-sidebar') {
li {
a(href: 'download.html', 'Download Groovy')
}
li {
a(href: 'download.html#distro', class: 'anchor-link', 'Distributions')
}
li {
a(href: 'download.html#sdkman', class: 'anchor-link', 'Through SDKMAN!')
}
li {
a(href: 'download.html#buildtools', class: 'anchor-link', 'From your build tools')
}
li {
a(href: 'download.html#otherways', class: 'anchor-link', 'Other ways to get Groovy')
}
li(class: 'active') {
a(href: 'versioning.html') {
strong 'Groovy version scheme'
}
}
li {
a(href: 'indy.html', 'Invoke dynamic support')
}
}
}
div(class: 'col-lg-8 col-lg-pull-0') {
include template: 'includes/contribute-button.groovy'
h1 {
i(class: 'fa fa-copy') {}
yield ' Groovy version scheme'
}
article {
h2 'Since Groovy 2.0.0'
p "Since Groovy 2.0.0 we follow the ${$a(href: "http://semver.org/", 'semantic version scheme')}. This means the next minor version after 2.0.0 is 2.1.0, the first bugfix version after 2.0 is 2.0.1 and the next major version will be 3.0.0."
h2 'Before Groovy 2.0.0'
p 'Before Groovy 2.0.0 we followed a version scheme where we had X.Y.Z, where X.Y was the major version, and Z the minor version.\n' +
'Bugfix versions were not really done, you had to upgrade to the next minor version for that.\n' +
'Since Groovy 1.0 we incremented only the Y for a new major version.\n' +
'The increment of X we wanted to leave for a very big breaking change, like a new Meta-Object Protocol.\n' +
'The last major version in these scheme is 1.8(.0), 1.8.1 is the first minor and bugfix version.\n' +
'The major versions in the past using this scheme are: 1.8, 1.7, 1.6, 1.5, 1.0. Each of them having around 10 minor/bugfix versions.'
h2 'Official Major Version'
p 'The official major version is the current major version that should/can be used by the developers if they are not bound to a specific major version.'
h2 'Maintenance Release Branch'
p 'Here we indicate a former major version\'s bugfix release.'
h2 'How long is a major version maintained?'
p 'That depends on the users. Let\'s say we have X in maintenance and Y is the official major version, ' +
'then if a new major version Z is released, Y goes into maintenance. Usually we make one or two more bugfix releases for X and then we discontinue it, ' +
'unless there are strong requests to have certain things fixed for users that can absolutely not upgrade.'
}
hr(class: 'divider')
}
}
}
}
}