diff --git a/subprojects/docs/src/docs/release/notes.md b/subprojects/docs/src/docs/release/notes.md
index c3ee75a4d18a..c42da2d4f4be 100644
--- a/subprojects/docs/src/docs/release/notes.md
+++ b/subprojects/docs/src/docs/release/notes.md
@@ -2,250 +2,9 @@
Here are the new features introduced in this Gradle release.
-### Groovy 2.2.2
-
-Gradle now uses Groovy 2.2.2 to compile and running build scripts and plugins.
-
-### New API for artifact resolution (i)
-
-Gradle 2.0 introduces a new, incubating API for resolving component artifacts. With this addition, Gradle now offers separate dedicated APIs for resolving
-components and artifacts. (Component resolution is mainly concerned with computing the dependency graph, whereas artifact resolution is
-mainly concerned with locating and downloading artifacts.) The entry points to the component and artifact resolution APIs are `configuration.incoming` and
-`dependencies.createArtifactResolutionQuery()`, respectively.
-
-TODO: This API examples are out of date. Add new tested samples to the Javadoc or Userguide and link instead
-
-Here is an example usage of the new API:
-
- def query = dependencies.createArtifactResolutionQuery()
- .forComponent("org.springframework", "spring-core", "3.2.3.RELEASE")
- .forArtifacts(JvmLibrary)
-
- def result = query.execute() // artifacts are downloaded at this point
-
- for (component in result.components) {
- assert component instanceof JvmLibrary
- println component.id
- component.sourceArtifacts.each { println it.file }
- component.javadocArtifacts.each { println it.file }
- }
-
- assert result.unresolvedComponents.isEmpty()
-
-Artifact resolution can be limited to selected artifact types:
-
- def query = dependencies.createArtifactResolutionQuery()
- .forComponent("org.springframework", "spring-core", "3.2.3.RELEASE")
- .forArtifacts(JvmLibrary, JvmLibrarySourcesArtifact)
-
- def result = query.execute()
-
- for (component in result.components) {
- assert !component.sourceArtifacts.isEmpty()
- assert component.javadocArtifacts.isEmpty()
- }
-
-Artifacts for many components can be resolved together:
-
- def query = dependencies.createArtifactResolutionQuery()
- .forComponents(setOfComponentIds)
- .forArtifacts(JvmLibrary)
-
-So far, only one component type (`JvmLibrary`) is available, but others will follow, also for platforms other than the JVM.
-
-### Accessing Ivy extra info from component metadata rules
-
-It's now possible to access Ivy extra info from component metadata rules. Roughly speaking, Ivy extra info is a set of user-defined
-key-value pairs published in the Ivy module descriptor. Rules wishing to access the extra info need to specify a parameter of type
-`IvyModuleDescriptor`. Here is an example:
-
- dependencies {
- components {
- eachComponent { component, IvyModuleDescriptor descriptor ->
- println descriptor.extraInfo["expired"] // TODO: what's a real-world use case?
- }
- }
- }
-
-### Cleaner build scripts with `plugins.withId`
-
-New plugins.withId()
-enables referring to plugins more conveniently.
-In previous releases, some times it was necessary for the client of a custom plugin to know the fully qualified type of the plugin:
-
- import com.my.custom.InterestingPlugin
- plugins.withType(InterestingPlugin) { ...
-
- //now possible, given InterestingPlugin uses "interesting-plugin" id:
- plugins.withId("interesting-plugin") { ...
-
-Benefits of the new API for the users:
-
-* less pressure to know the exact java class of the plugin
-* build scripts are more likely to be decoupled from the plugin types (e.g. it's easier for plugin author to refactor/change the type)
-* some build scripts are cleaner and more consistent because plugins are applied by 'id' and are also filtered by 'id'
-
-### Support for Ivy and Maven repositories with SFTP scheme
-
-In addition to `file`, `http` and `https`, Ivy and Maven repositories now also support the `sftp` transport scheme. Currently, authentication with the SFTP server only works based on
-providing username and password credentials.
-
-Here is an example usage of resolving dependencies from a SFTP server with Ivy:
-
- apply plugin: 'java'
-
- repositories {
- ivy {
- url 'sftp://127.0.0.1:22/repo'
- credentials {
- username 'sftp'
- password 'sftp'
- }
- layout 'maven'
- }
- }
-
- dependencies {
- compile 'org.apache.commons:commons-lang3:3.3.1'
- }
-
-Resolving dependencies from a SFTP server with Maven works accordingly. Publishing is not supported yet. The following example demonstrates the use case:
-
- apply plugin: 'java'
-
- repositories {
- maven {
- url 'sftp://127.0.0.1:22/repo'
- credentials {
- username 'sftp'
- password 'sftp'
- }
- }
- }
-
- dependencies {
- compile 'org.apache.commons:commons-lang3:3.3.1'
- }
-
-Here is an example usage of publishing an artifact to an Ivy repository hosted on a SFTP server:
-
- apply plugin: 'java'
- apply plugin: 'ivy-publish'
-
- version = '2'
- group = 'org.group.name'
-
- publishing {
- repositories {
- ivy {
- url 'sftp://127.0.0.1:22/repo'
- credentials {
- username 'sftp'
- password 'sftp'
- }
- layout 'maven'
- }
- }
- publications {
- ivy(IvyPublication) {
- from components.java
- }
- }
- }
-
-
-### Consumed Apache Maven POM profile activation through absence of system property
-
-On top of the support for POM profiles that [are active by default](http://books.sonatype.com/mvnref-book/reference/profiles-sect-activation.html), a profile also becomes active if the
-corresponding system property is _not_ set. The following POM file demonstrates such a use case:
-
-
- ...
-
-
- profile-1
-
- !env
-
-
-
-
-
-### Allow control of the exact set of arguments passed to a toolchain executable
-
-Gradle now provides a 'hook' allowing the build author to control the exact set of arguments passed a toolchain executable.
-This will allow a build author to work around any limitations in Gradle, or incorrect assumptions that Gradle makes.
-
- apply plugin:'cpp'
-
- model {
- toolChains {
- visualCpp(VisualCpp) {
- cppCompiler.withArguments { args ->
- args << "-DFRENCH"
- }
- }
- clang(Clang){
- cCompiler.withArguments { args ->
- Collections.replaceAll(args, "CUSTOM", "-DFRENCH")
- }
- linker.withArguments { args ->
- args.remove "CUSTOM"
- }
- staticLibArchiver.withArguments { args ->
- args.remove "CUSTOM"
- }
- }
-
- }
- }
-
-### Support for adding target platform specific configurations in native binary projects (Gcc based toolchains)
-
-When declaring a toolchain, the targetted platforms can be configured directly in the toolChain model. Furthermore target platform specific configurations
-can be declared:
-
- model {
- toolChains {
- gcc(Gcc) {
- target("arm"){
- cppCompiler.executable = "custom-gcc"
- cppCompiler.withArguments { args ->
- args << "-m32"
- }
- linker.withArguments { args ->
- args << "-m32"
- }
- }
- target("sparc")
- }
- }
- platforms {
- arm {
- architecture "arm"
- }
- sparc {
- architecture "sparc"
- }
- }
-
-### New 'ivy' layout support for Ivy repositories
-
-When defining an 'ivy' repository, you can provide a named layout to describe how artifacts are organised within that repository.
-
-In addition to the 'gradle' (default) and 'maven' layouts, you can now specify the 'ivy' layout which tells Gradle that your repository
-is configured with the default ivy artifact and metadata patterns.
-
- repositories {
- ivy {
- url 'http://my.server/repo'
- layout 'ivy'
- }
- }
-
-See the [User Guide](userguide/dependency_management.html#N150B8) and the
-
-DSL Reference for more detail on how to use named layouts.
+
## Promoted features
@@ -273,155 +32,17 @@ The following are the newly deprecated items in this Gradle release. If you have
## Potential breaking changes
-### Upgraded to Groovy 2.2.2
-
-Gradle now uses Groovy 2.2.2 to compile and run scripts and plugins. Generally, this should be backwards compatible. However, this change may require
-that you recompile some plugins and may also require some source changes.
-
-### Custom TestNG listeners are applied before Gradle's listeners
-
-This way the custom listeners are more robust because they can affect the test status.
-There should be no impact of this change because majority of users do not employ custom listeners
-and even if they do healthy listeners will work correctly regardless of the listeners' order.
-
-### Support for reading or changing file permissions on certain platforms with Java 5 or 6
-
-Gradle previously supported file permissions on Solaris and Linux ia-64 using Java 5 and Java 6. This support has
-been removed. You will receive a warning when attempting to use file permissions on these platforms.
-
-Note that file permissions are supported on these platforms when you use Java 7 and later, and is supported for all Java
-versions on Linux, OS X, Windows and FreeBSD for x86 and amd64 architectures.
-
-If you wish to have support for file permissions on other platforms and architectures, please help us out with porting our
-native integration to these platforms.
-
-### Support for terminal integration on certain platforms
-
-Gradle previously supported terminal integration on Solaris and Linux ia-64. This support has been removed. When you use Gradle on these
-platforms, Gradle will fall back to using plain text output.
-
-Note that terminal integration is supported on Linux, OS X, Windows and FreeBSD for x86 and amd64 architectures.
-
-If you wish to have terminal integration on other platforms and architectures, please help us out with porting our
-native integration to these platforms.
-
-### Build scripts must be encoded using UTF-8
-
-Gradle now assumes that all Gradle scripts are encoded using UTF-8. Previously, Gradle assumed the system encoding. This change
-affects all build scripts, settings scripts and init scripts.
-
-### Native binaries model changes
-
-A bunch of changes and renames have been made to the incubating 'native binaries' support.
-For certain common usages, a backward-compatible api has been maintained.
-
-- Package structure has changed, with many public classes being moved.
-- `Library`, `Executable` and `TestSuite` renamed to `NativeLibrary`, `NativeExecutable` and `NativeTestSuite`
- - Related binary types have also been renamed
- - Kept `StaticLibraryBinary`, `SharedLibraryBinary`, `ExecutableBinary` and `TestSuiteExecutableBinary` for compatibility
-- `NativeBinariesPlugin` has been renamed to `NativeComponentPlugin` with id `'native-component'`
-- `NativeBinariesModelPlugin` renamed to `NativeComponentModelPlugin`
-- `BuildableModelElement.lifecycleTask` renamed to `buildTask`
-- `NativeBinaryTasks.getBuilder()` renamed to `getCreateOrLink()`
-- `NativeBinaryTasks.getLifecycle()` renamed to `getBuild()`
-- `BuildBinaryTask` renamed to `ObjectFilesToBinary`
-
-### New Java component model changes
-
-A bunch of changes and renames have been made to the new, incubating 'java component' support.
-
-- Package structure has changed, with many public classes being moved.
-
-### Support for the Gradle Open API removed
-
-- `GradleRunnerFactory` removed.
-- `UIFactory` removed.
-- `ExternalUtility` removed.
-
-### Removed Deprecated Plugins
-
-- `code-quality` plugin replaced by `checkstyle` and `codenarc`.
-
-### Removed Deprecated Classes
-
-- `GradleLauncher` replaced by the tooling API.
-- `Compile` replaced by `JavaCompile`.
-- `org.gradle.api.tasks.Directory` with no replacement.
-- `CodeQualityPlugin` replaced by the `checkstyle` and `codenarc` plugins.
-- `GroovyCodeQualityPluginConvention` with no replacement.
-- `JavaCodeQualityPluginConvention` with no replacement.
-- `IllegalOperationAtExecutionTimeException` with no replacement.
-- `AntJavadoc` with no replacement.
-
-### Removed Deprecated Methods
-
-- `Project.dir()` replaced with `mkdir()`
-- `Project.dependsOn()` replaced with task dependencies.
-- `Project.childrenDependOnMe()` replaced with task dependencies.
-- `Project.dependsOnChildren()` replaced with task dependencies.
-- `Project.getDependsOnProjects()` with no replacement.
-- `Test.isTestReport()` replaced with `getReports().getHtml().isEnabled()`.
-- `Test.disableTestReport()` replaced with `getReports().getHtml().setEnabled()`.
-- `Test.enableTestReport()` replaced with `getReports().getHtml().setEnabled()`.
-- `Test.setTestReport()` replaced with `getReports().getHtml().setEnabled()`.
-- `Test.getTestResultsDir()` replaced with `getReports().getJunitXml().getDestination()`.
-- `Test.setTestResultsDir()` replaced with `getReports().getJunitXml().setDestination()`.
-- `Test.getTestReportDir()` replaced with `getReports().getHtml().getDestination()`.
-- `Test.setTestReportDir()` replaced with `getReports().getHtml().setDestination()`.
-- `CompileOptions.getFailOnError()` replaced with `isFailOnError()`
-- `CompileOptions.getDebug()` replaced with `isDebug()`
-- `StartParameter.getMergedSystemProperties()` with no replacement.
-- `Specs.filterIterable()` with no replacement.
-
-### Removed Deprecated Properties
-
-- `CompileOptions.compiler` replaced with `CompileOptions.fork` and `CompileOptions.forkOptions.executable`
-- `CompileOptions.useAnt` with no replacement.
-- `CompileOptions.optimize` with no replacement.
-- `CompileOptions.includeJavaRuntime` with no replacement.
-- `GroovyCompileOptions.useAnt` with no replacement.
-- `GroovyCompileOptions.stacktrace` with no replacement.
-- `GroovyCompileOptions.includeJavaRuntime` with no replacement.
-- `Checkstyle.properties` replaced with `Checkstyle.configProperties`.
-- `Checkstyle.resultFile` replaced with `Checkstyle.reports.xml.destination`.
-- `CodeNarc.reportFormat` replaced with `CodeNarc.reports..enabled`.
-- `CodeNarc.reportFile` replaced with `CodeNarc.reports..destination`.
-- `ResolvedArtifact.resolvedDependency` with `ResolvedArtifact.moduleVersion` as a partial replacement.
-
-### Removed incubating method
-
-- `StartParameter.setProjectPath` and `StartParameter.getProjectPath` were replaced with `TaskParameter`.
-
-### Task constructor changes
-
-All task types now have a zero args constructor. The following types are affected:
-
-- `org.gradle.api.tasks.testing.Test`
-- `org.gradle.api.tasks.Upload`
-- `org.gradle.api.plugins.quality.Checkstyle`
-- `org.gradle.api.plugins.quality.CodeNarc`
-- `org.gradle.api.plugins.quality.FindBugs`
-- `org.gradle.api.plugins.quality.Pmd`
-- `org.gradle.api.plugins.quality.JDepend`
-- `org.gradle.testing.jacoco.tasks.JacocoReport`
-- `org.gradle.api.tasks.GradleBuild`
-- `org.gradle.api.tasks.diagnostics.DependencyInsightReportTask`
-- `org.gradle.api.reporting.GenerateBuildDashboard`
-- `org.gradle.api.publish.ivy.tasks.GenerateIvyDescriptor`
-- `org.gradle.api.publish.maven.tasks.GenerateMavenPom`
-- `org.gradle.api.publish.maven.tasks.PublishToMavenRepository`
-- `org.gradle.api.publish.maven.tasks.PublishToMavenLocal`
-- `org.gradle.nativebinaries.tasks.InstallExecutable`
-- `org.gradle.api.plugins.buildcomparison.gradle.CompareGradleBuilds`
+
## External contributions
We would like to thank the following community members for making contributions to this release of Gradle.
-* [Marcin Erdmann](https://github.com/erdi) - Support an ivy repository declared with 'sftp' as the URL scheme
-* [Lukasz Kryger](https://github.com/kryger) - Documentation improvements
-* [Ben McCann](https://github.com/benmccann) - Added named 'ivy' layout to 'ivy' repositories
-* [Alex Selesse](https://github.com/selesse) - Fixed announce plugin in headless mode on OS X
+
We love getting contributions from the Gradle community. For information on contributing, please see [gradle.org/contribute](http://gradle.org/contribute).
diff --git a/version.txt b/version.txt
index cd5ac039d67e..879b416e609a 100644
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-2.0
+2.1