Amper 0.9.0 Update, November 2025 – Scalability Preview | Amper Blog

Amper 0.9.0 Update, November 2025 – Scalability Preview | Amper Blog
# Amper 0.9.0 — Extensibility Prototype and Major Improvements

[Amper 0.9.0](https://github.com/JetBrains/amper/releases/tag/v0.9.0) is now available, featuring the **first version of our extensibility prototype**.  

Read on for the **key highlights** and see the [full release notes](https://github.com/JetBrains/amper/releases/tag/v0.9.0) for all updates and bug fixes.

> **To use the latest Amper features**, install [IntelliJ IDEA 2025.3 Beta](https://www.jetbrains.com/idea/nextversion/) or newer.

---

## New Amper Website

We’ve launched **a fully redesigned documentation site** for easier navigation, better structure, and powerful search.

Visit → [https://amper.org](https://amper.org)  

![image](https://blog.aitoearn.ai/content/images/2025/11/img_001-145.png)

---

## Extensibility — Preview Release

The **first preview** of Amper's extensibility is here.

### Why It Matters
While Amper covers most standard workflows out-of-the-box, some projects have unique needs beyond built-in functions. This release enables you to:

- **Build custom tasks** in Kotlin.
- **Expose tasks via plugins**.
- **Integrate tasks directly into modules**.

> **Note:** Only **local plugins** are supported for now; publishing and sharing will come later.

### How It Works
- Create modules using the new `jvm/amper-plugin` product type.
- Implement tasks in Kotlin.
- Register tasks with a `plugin.yaml` containing **inputs** and **outputs**.

---

### Kotlin + YAML — A Strong Pair
Combining **Kotlin’s logic and type safety** with **YAML’s clean configuration** delivers:

- **Readable declarative setup**.
- **Precise diagnostics** for wiring mistakes.
- Smooth **IDE navigation** between code and config.

Task system highlights:
- **Automatic dependency inference** from inputs/outputs.
- **Task avoidance** enabled by default.
- Inputs: scalar values, files, or classpaths (`Classpath` type).
- Outputs: files, generated sources, or resources.

**Learn more:**  
📘 [Plugin Quick-Start Guide](https://amper.org/0.9/user-guide/plugins/quick-start)  
💬 [Slack Channel](https://slack-chats.kotlinlang.org/c/amper)  
🐛 [File a Bug](https://youtrack.jetbrains.com/newIssue?project=AMPER&c=Type+Bug&c=tag+amper-plugins-report)

---

### Planned Features for Extensibility
Future releases will add:

- **Plugin publishing & sharing**.
- **Templates** for consumer module configuration.
- **Less boilerplate** for single-module tasks.
- **Common libraries/services** for task authoring.
- More **IDE quick-fixes & intentions**.

🔗 Check the full [plugin documentation](https://amper.org/0.9/user-guide/plugins/overview).

---

## Dependency Resolution — Faster Caching

Previous bottleneck: **dependency graph construction** during IDE import/sync.

**Improvement:**  
- Dependency graph is **cached and reused** when dependencies haven’t changed.
- Hot caches save **tens of seconds**.

More enhancements planned for future versions.

---

## Incremental Java Compilation

### Problem
- Large modules with many files were **fully recompiled** after changes to a single file.

### Solution
- **Incremental compilation** now recompiles only changed parts.
- Task avoidance still skips unchanged modules entirely.

**Enable it in `module.yaml`:**

java:

incremental: true


---

## Maven-like Layout Support

Transitioning from Maven/Gradle? Keep existing file locations intact:

Enable in `module.yaml`:

layout: maven-like


> **Note:** Available for `jvm/app` and `jvm/lib` product types only.

![image](https://blog.aitoearn.ai/content/images/2025/11/img_003-108.png)

---

## Library Catalog in Project Root

You can now place `libs.versions.toml` in the **project root** instead of `gradle/`.

**Remember:** Only one catalog per project.

---

## IDE Improvements

### Automatic Configuration Sync
- Configuration file changes trigger **auto-sync** — no more manual “Sync” clicks.
- Progress indicator appears if dependency downloads are needed.

**Settings:**
- Current project → `Settings | Build Tools | Build, Execution, Deployment`
- Default for new projects → `Settings | Advanced Settings | Build Tools. Amper`

---

### Sync Process Insights
- **Build tool window** shows detailed sync stages plus errors/warnings.

![image](https://blog.aitoearn.ai/content/images/2025/11/img_005-79.png)  
![image](https://blog.aitoearn.ai/content/images/2025/11/img_006-75.png)

---

### Assistance for Setting Main Class
- Code completion for `settings.jvm.mainClass` lists eligible classes with `main` functions.
- Double invocation includes classes from dependencies.
- IDE warns about missing `Kt` suffix for Kotlin-generated main classes.

---

### Quick-Fix for Overridden Catalog Versions
When dependency versions differ due to conflicts:
- **Option 1:** Replace catalog reference with explicit version in module.
- **Option 2:** Update version in the catalog.

![image](https://blog.aitoearn.ai/content/images/2025/11/img_008-53.png)  
![image](https://blog.aitoearn.ai/content/images/2025/11/img_009-45.png)

---

### Dedicated Color Theme Settings
Custom color scheme for Amper YAML in:

File → Settings → Editor → Color Scheme → Amper


![image](https://blog.aitoearn.ai/content/images/2025/11/img_010-31.png)

---

## Updated Default Versions
- **Kotlin** → 2.2.21
- **Compose Hot Reload** → 1.0.0-rc01
- **KSP** → 2.3.0
- **JUnit Platform** → 6.0.1  
- `settings.jvm.release` default → **21**

---

## Try Amper 0.9.0
Update existing project:

./amper update


Get started: [**Amper Getting Started Guide**](https://jb.gg/amper/get-started)

---

## Share Your Feedback
Amper is **experimental** — your insights shape its future.

📢 Participate:
- [Kotlinlang Slack #amper](https://slack-chats.kotlinlang.org/c/amper)
- [YouTrack Suggestions & Bugs](https://youtrack.jetbrains.com/issues/AMPER)

---
**Previous Post:** [Scaling Kotlin Adoption Across Your Organization](https://blog.jetbrains.com/kotlin/2025/11/scaling-kotlin-adoption-across-your-organization/)

Read more

Translate the following blog post title into English, concise and natural. Return plain text only without quotes. 哈佛大学 R 编程课程介绍

Harvard CS50: Introduction to Programming with R Harvard University offers exceptional beginner-friendly computer science courses. We’re excited to announce the release of Harvard CS50’s Introduction to Programming in R, a powerful language widely used for statistical computing, data science, and graphics. This course was developed by Carter Zenke.