Skip to content

Commit

Permalink
Rework docs content for EAP2
Browse files Browse the repository at this point in the history
  • Loading branch information
eskatos committed Nov 13, 2024
1 parent b1c3ec2 commit 2638c12
Show file tree
Hide file tree
Showing 12 changed files with 87 additions and 33 deletions.
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,16 @@ blog post and [other publications](./docs/publications/README.md).

## Status

_Declarative Gradle_ is an **experimental** project, now in [Early Access Preview (EAP)](./docs/EAP.md).
_Declarative Gradle_ is an **experimental** project, now in its [second Early Access Preview (EAP)](./docs/EAP2.md).
We invite you to [try out Declarative Gradle](./docs/getting-started/README.md),
and to [share feedback](./docs/feedback.md).
The project includes the following experimental parts:

- Software Types as a declarative modeling framework
- Changes in Gradle to support DCL files
- Changes in Android Studio to support DCL files
- A Visual Studio Code extension to support DCL files
- An Eclipse IDE plugin to support DCL files
- Prototype plugins demonstrating software types and higher-level models
- A Gradle test client demonstrating features not yet implemented in the IDE

Expand Down
5 changes: 5 additions & 0 deletions docs/EAP2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Declarative Gradle - November 2024 Update

!!! info
In November 2024, we announced the second early access preview (EAP) of Declarative Gradle.
See this [blogpost](https://blog.gradle.org/declarative-gradle-november-2024-update) for the current status.
1 change: 1 addition & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@

* [Getting Started](./getting-started/README.md)
* [Reference](./reference/README.md)
* [Publications](./publications/README.md)
17 changes: 10 additions & 7 deletions docs/ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ All the dates and the scope are aspirational.
To discuss the roadmap and the related initiatives, use the
`#declarative-gradle` channel on the [Gradle Community Slack](https://gradle.org/slack-invite)

## First Early Access Preview (EAP)
## First Early Access Preview (EAP) - July 2024

* Summer 2024
* Early feedback from IDE vendors and plugin integrators
Expand All @@ -18,10 +18,13 @@ To discuss the roadmap and the related initiatives, use the
* Android Studio DCL support preview
* Toolability demonstrations (IDE integration, mutations)

## Subsequent Early Access Previews

* 2024-H2
* More EAPs towards the end of the year
* More features
* Addressing collected feedback
* Further feedback from the community
## Second Early Access Preview (EAP) - November 2024

## Third Early Access Previes (EAP) - February 2025

## Incubating Software Types and Declarative Configuration Language (DCL) - 2025

## Stable Software Types

## Stable Declarative Configuration Language (DCL)
14 changes: 9 additions & 5 deletions docs/getting-started/README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
# Getting Started with Declarative Gradle

In our first [announcement](https://blog.gradle.org/declarative-gradle), we introduced our ideas for an experimental project we called Declarative Gradle.
In our first [announcement](https://blog.gradle.org/declarative-gradle), we announced a new experimental project called Declarative Gradle.
That post introduced our ideas for a developer-first software definition and how we planned to fulfill our vision for a declarative build language for Gradle.

Since then, we've been working hard on several fronts to create the first early access preview (EAP) for Declarative Gradle.
In July 2024, we [announced the Early Access Preview (EAP)](./../EAP.md) of Declarative Gradle.
As part of this preview, we published several project samples that are ready for feedback.
This was followed by the first Early Access Preview release in July 2024, accompanied by the [First Look at Declarative Gradle](https://blog.gradle.org/declarative-gradle-first-eap) blog post.
It introduced a configuration model called _Software Types_, a new _Declarative Configuration Language (DCL)_, and demonstrated the potential for tooling improvements and better IDE support.

Since then, we've been working hard on several fronts.
In November 2024, we [announced the second Early Access Preview](./../EAP2.md) of Declarative Gradle.
As part of this second preview, we published several project samples that are ready for feedback.
These include Java, Kotlin, and Android application samples and a port of the popular Now in Android application.

!!! info
With the first EAP, we would like you to try out what we have built so far.
With the second EAP, we would like you to try out what we have built so far.

Declarative Gradle is **ready** for trying out our provided sample projects for Java, Kotlin and Android applications.

Expand Down
2 changes: 1 addition & 1 deletion docs/getting-started/samples.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ Please follow the [README](https://github.com/gradle/nowinandroid/blob/main-decl

## Bleeding edge prototypes

If you want to go further you can take a look at some more projects for JVM, Android, KMP, Swift and C++ projects. [These projects](https://github.com/gradle/declarative-gradle/tree/main/unified-prototype) may use newer versions of Gradle or require additional manual setup, so you should try the other samples first.
If you want to go further you can take a look at some more projects for JVM, Android, KMP, Swift and C++ projects. [These projects](https://github.com/gradle/declarative-gradle/tree/main/unified-prototype) may use newer versions of Gradle or require additional manual setup, so you should try the other samples first.

Please follow the README available in each directory linked below to try these samples.

Expand Down
46 changes: 30 additions & 16 deletions docs/getting-started/setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,11 @@ They all use the [Gradle Wrapper](https://docs.gradle.org/current/userguide/grad
To try out the samples and see all of the features, you need to install a few other components as described below:

- [JDK](#jdk)
- [Android Studio](#android-studio)
- [Install the Gradle Client](#install-the-gradle-client)
- [IDE](#ide)
- [Android Studio](#android-studio)
- [Visual Studio Code](#visual-studio-code)
- [Eclipse IDE](#eclipse-ide)
- [Gradle Client](#gradle-client)
- [Pick a sample](#pick-a-sample)

## JDK
Expand All @@ -18,30 +21,41 @@ Make sure to use a JDK >= 17 and that your `JAVA_HOME` points to it.
You can use a JDK from any vendor.
We recommend [Eclipse Temurin™ (OpenJDK)](https://adoptium.net/temurin/releases/).

## Android Studio
## IDE

Download and install a special Android Studio Nightly release.
### Android Studio

* [macOS Apple Silicon](https://drive.google.com/file/d/182T4NudSoRj8HPkM6bWyBlZP1F2WjzxE/view?usp=drive_link)
* [macOS Intel](https://drive.google.com/file/d/1VohJ359hL5SZKQsPBUlZ5SkX6uFMOFMh/view?usp=drive_link)
* [Windows](https://drive.google.com/file/d/1JMUB9lpx9O0RSNnfS242856nniVR1_Yf/view?usp=drive_link)
* [Linux](https://drive.google.com/file/d/18Tn4Cxiav3vsMZ3FutCaILQYCcz2Px39/view?usp=drive_link)
Download and install a special Android Studio Nightly release.
You can find the promoted nightly releases in [this Google Drive folder](https://drive.google.com/drive/folders/19C5EMRgENKU_tOAwOVLcIGZ6Bbm63Q7V) for macOS (Apple Silicon and Intel), Windows and Linux.
Pick the most recent one that matches your operating system.

Declarative features are only available on particular nightly releases.

!!! warn
Note that on macOS, these special Android Studio releases require to be in `~/Applications`.

<!-- omit in toc -->
### Enable more declarative features in Studio
#### Enable more declarative features in Studio

!!! info
While syntax highlighting of `.gradle.dcl` files works out of the box in Studio nightlies, other features require flags to be enabled.
While syntax highlighting of `.gradle.dcl` files works out of the box in Studio nightlies, other features require flags to be enabled.

1. Open _Help -> Open Custom Vm Options_
2. Add text `-Didea.is.internal=true`
1. Open _Tools_ -> _Internal Actions_ -> _Registry_
1. Search for the Declarative Gradle flags by typing `declarative`
2. Enable the `gradle.declarative.studio.support` and `gradle.declarative.ide.support` flags
3. Restart the IDE
4. Open _Tools -> Internal Actions -> Android -> Edit Studio Flags_ and type _"Gradle Declarative"_ in the search window
5. Switch on the _Studio support for declarative files_ flags.

## Install the Gradle Client
### Visual Studio Code

Download the [Declarative Gradle VSIX](https://gradle.github.io/declarative-vscode-extension/) and install it in your Visual Studio Code.

This extension was also tested in GitHub Codespace and should work in any Visual Studio Code derivative.

### Eclipse IDE

TODO
https://github.com/eclipse/buildship/blob/master/docs/user/DeclarativeGradle.md

## Gradle Client

The _Gradle Client_ is a standalone application used to demonstrate declarative features not yet implemented in the IDE.

Expand Down
20 changes: 20 additions & 0 deletions docs/publications/2024-09-droidcon-nyc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
description: >
At Droidcon 2024 on Sep 19,
Nelson Osacky and Inaki Villar presented the current status of Declarative Gradle on Android.
---

# Droidcon NYC 2024 - Declarative Gradle on Android

At Droidcon 2024 on Sep 19,
Nelson Osacky and Inaki Villar presented the current status of Declarative Gradle on Android.

## Abstract

Declarative Gradle is a project that targets better isolation of concern and expressing any build clearly and understandably. It is our key initiative towards improving the developer experience and maintainability of Gradle projects. Declarative Gradle will feature first class support for the Android ecosystem including AGP, KGP, and Android Studio integration.

In this presentation, we will discuss the current state of Declarative Gradle for Android development. We will preview the proposed configuration language, examples of Android projects, and integration with Android Studio. We will discuss our future plans and the Declarative Gradle roadmap. We are seeking early feedback from Android software developers.

## References

- [Video Recording](https://www.droidcon.com/2024/10/17/declarative-gradle-on-android/)
2 changes: 2 additions & 0 deletions docs/publications/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

## Articles

- [Declarative Gradle - November 2024 Update](./../EAP2.md) by Paul Merlin - November 2024
- [Early Access Preview (EAP) Announcement](./../EAP.md) by Sterling Greene - July 2024
- [Project Announcement](https://blog.gradle.org/declarative-gradle) by Piotr Jagielski - November 2023 - Initial project announcement and the manifesto
- [Declarative Gradle? Amper? What’s going on?!](https://github.com/kotlin-magazine/kotlin-magazine/blob/main/articles/siggi_gunnarsson_declarative_builds_for_kotlin.md) by Siggi Gunnarsson, May 2024, [fun code() magazine](https://github.com/kotlin-magazine/kotlin-magazine)
Expand All @@ -15,6 +16,7 @@ Make sure to subscribe!
## Conference Presentations

- [KotlinConf 2024 - Developer-first Gradle builds](./2024-05-kotlinconf.md) by Sterling Greene and Paul Merlin
- [Droidcon NYC 2024 - Declarative Gradle on Android](./2024-09-droidcon-nyc.md) by Nelson Osacky and Inaki Villar

## Video Interviews

Expand Down
1 change: 1 addition & 0 deletions docs/reference/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@

* [`gradle init`](./build-init.md) - generate new builds using software types and DCL files
* [Software Features](./software-features.md) - configuration model used by software developers
* [Roadmap](../ROADMAP.md) - Declarative Gradle roadmap
6 changes: 3 additions & 3 deletions docs/reference/build-init.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Example: `gradle init -Dorg.gradle.buildinit.specs=<plugin-id-1:version>,<plugin

## Android

`gradle init -Dorg.gradle.buildinit.specs=org.gradle.experimental.android-ecosystem-init:0.1.23`
`gradle init -Dorg.gradle.buildinit.specs=org.gradle.experimental.android-ecosystem-init:0.1.32`

There are three build samples you can choose from.

Expand All @@ -31,12 +31,12 @@ You can also generate a single Android application build with an empty Activity

## Java

`gradle init -Dorg.gradle.buildinit.specs=org.gradle.experimental.jvm-ecosystem-init:0.1.23`
`gradle init -Dorg.gradle.buildinit.specs=org.gradle.experimental.jvm-ecosystem-init:0.1.32`

This init sample asks no questions and generates a project using Java like [gradle/declarative-samples-java-app](https://github.com/gradle/declarative-samples-java-app).

## Kotlin

`gradle init -Dorg.gradle.buildinit.specs=org.gradle.experimental.kmp-ecosystem-init:0.1.23`
`gradle init -Dorg.gradle.buildinit.specs=org.gradle.experimental.kmp-ecosystem-init:0.1.32`

This init sample asks no questions and generates a project using Kotlin like [gradle/declarative-samples-kotlin-app](https://github.com/gradle/declarative-samples-kotlin-app).
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@ plugins:
'docs/swift/README.md': 'docs/getting-started/samples.md#swift'
'unified-prototype/README.md': 'docs/getting-started/samples.md#prototypes'
'docs/EAP.md': https://blog.gradle.org/declarative-gradle-first-eap
'docs/EAP2.md': https://blog.gradle.org/declarative-gradle-november-2024-update
'publications/README.md': docs/publications/README.md

# Markdown
Expand Down

0 comments on commit 2638c12

Please sign in to comment.