# Build System

Published articles for Build System.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Fixed release schedule scrapped (old schedule restored)

DevFeed: [Fixed release schedule scrapped (old schedule restored)](<https://devfeed.tech/articles/fixed-release-schedule-scrapped-old-schedule-restored-41364.md>)

Original publisher: [Read original article](<https://libreboot.org/news/resolutions.html>)

Author: Leah Rowe

Published: 2026-09-17T16:33:13.815653Z

Content type: news

Language: en

Sources: [News about Libreboot releases and development](<https://devfeed.tech/sources/news-about-libreboot-releases-and-development.md>)

Topics: [libreboot](<https://devfeed.tech/topics/libreboot.md>), [releases](<https://devfeed.tech/topics/releases.md>), [audit](<https://devfeed.tech/topics/audit.md>), [builds](<https://devfeed.tech/topics/builds.md>), [ci](<https://devfeed.tech/topics/ci.md>), [coreboot](<https://devfeed.tech/topics/coreboot.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [audit](<https://devfeed.tech/tags/audit.md>), [bios](<https://devfeed.tech/tags/bios.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [canoeboot](<https://devfeed.tech/tags/canoeboot.md>), [ci](<https://devfeed.tech/tags/ci.md>), [coreboot](<https://devfeed.tech/tags/coreboot.md>), [free-software](<https://devfeed.tech/tags/free-software.md>), [libre](<https://devfeed.tech/tags/libre.md>), [libreboot](<https://devfeed.tech/tags/libreboot.md>), [linux](<https://devfeed.tech/tags/linux.md>), [news](<https://devfeed.tech/tags/news.md>), [opensource](<https://devfeed.tech/tags/opensource.md>), [releases](<https://devfeed.tech/tags/releases.md>), [uefi](<https://devfeed.tech/tags/uefi.md>)

### AI overview

Libreboot has abandoned its fixed annual release schedule after skipping the June 2026 release and deciding to skip December 2026. The next release is expected sometime in 2027. The project is also considering automated build and release testing, potentially through CI and regular snapshot builds, while continuing an audit and simplification of its build system.

### Source excerpt

Article: Fixed release schedule scrapped (old schedule restored) Web link: https://libreboot.org/news/resolutions.html

## Libreboot 20231021 released!

DevFeed: [Libreboot 20231021 released!](<https://devfeed.tech/articles/libreboot-20231021-released-32711.md>)

Original publisher: [Read original article](<https://libreboot.org/news/libreboot20231021.html>)

Author: Leah Rowe

Published: 2026-09-17T04:32:50.666044Z

Content type: release

Language: en

Sources: [News about Libreboot releases and development](<https://devfeed.tech/sources/news-about-libreboot-releases-and-development.md>)

Topics: [libreboot](<https://devfeed.tech/topics/libreboot.md>), [coreboot](<https://devfeed.tech/topics/coreboot.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>), [boot](<https://devfeed.tech/topics/boot.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [x86](<https://devfeed.tech/topics/x86.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [asus](<https://devfeed.tech/tags/asus.md>), [bios](<https://devfeed.tech/tags/bios.md>), [boot](<https://devfeed.tech/tags/boot.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [canoeboot](<https://devfeed.tech/tags/canoeboot.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [coreboot](<https://devfeed.tech/tags/coreboot.md>), [free-software](<https://devfeed.tech/tags/free-software.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [libre](<https://devfeed.tech/tags/libre.md>), [libreboot](<https://devfeed.tech/tags/libreboot.md>), [opensource](<https://devfeed.tech/tags/opensource.md>), [release](<https://devfeed.tech/tags/release.md>), [uefi](<https://devfeed.tech/tags/uefi.md>), [workstation](<https://devfeed.tech/tags/workstation.md>), [x86](<https://devfeed.tech/tags/x86.md>)

### AI overview

Libreboot 20231021 is presented as a new testing release of Libreboot, with build-system improvements and the re-addition of three ASUS boards: KFSN4-DRE, KCMA-D8, and KGPE-D16. The release provides boot firmware for supported x86 and ARM machines and includes coreboot-based firmware support for the listed boards.

### Source excerpt

Article: Libreboot 20231021 released! Web link: https://libreboot.org/news/libreboot20231021.html

## Libreboot Build System Audit 6

DevFeed: [Libreboot Build System Audit 6](<https://devfeed.tech/articles/libreboot-build-system-audit-6-32666.md>)

Original publisher: [Read original article](<https://libreboot.org/news/audit6.html>)

Author: Leah Rowe

Published: 2026-09-17T04:32:50.666044Z

Content type: article

Language: en

Sources: [News about Libreboot releases and development](<https://devfeed.tech/sources/news-about-libreboot-releases-and-development.md>)

Topics: [audit](<https://devfeed.tech/topics/audit.md>), [POSIX](<https://devfeed.tech/topics/posix.md>), [Shell](<https://devfeed.tech/topics/shell.md>), [Code](<https://devfeed.tech/topics/code.md>), [releases](<https://devfeed.tech/topics/releases.md>)

Tags: [audit](<https://devfeed.tech/tags/audit.md>), [bios](<https://devfeed.tech/tags/bios.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [canoeboot](<https://devfeed.tech/tags/canoeboot.md>), [code](<https://devfeed.tech/tags/code.md>), [coreboot](<https://devfeed.tech/tags/coreboot.md>), [free-software](<https://devfeed.tech/tags/free-software.md>), [libre](<https://devfeed.tech/tags/libre.md>), [libreboot](<https://devfeed.tech/tags/libreboot.md>), [opensource](<https://devfeed.tech/tags/opensource.md>), [release](<https://devfeed.tech/tags/release.md>), [return](<https://devfeed.tech/tags/return.md>), [shell](<https://devfeed.tech/tags/shell.md>), [uefi](<https://devfeed.tech/tags/uefi.md>)

### AI overview

This article reports on the sixth audit of Libreboot's lbmk build system. It describes code cleanup, bug fixes, feature changes, and a reduction from 1,482 to 1,109 lines of shell script, a 25% decrease, between the Libreboot 20240612 release and the 19 July 2024 revision.

### Source excerpt

Article: Libreboot Build System Audit 6 Web link: https://libreboot.org/news/audit6.html

## What level of Software Freedom does Libreboot give me?

DevFeed: [What level of Software Freedom does Libreboot give me?](<https://devfeed.tech/articles/what-level-of-software-freedom-does-libreboot-give-me-32672.md>)

Original publisher: [Read original article](<https://libreboot.org/news/freedom.html>)

Author: Leah Rowe

Published: 2026-09-17T04:32:50.666044Z

Content type: article

Language: en

Sources: [News about Libreboot releases and development](<https://devfeed.tech/sources/news-about-libreboot-releases-and-development.md>)

Topics: [Software](<https://devfeed.tech/topics/software.md>), [boot](<https://devfeed.tech/topics/boot.md>), [releases](<https://devfeed.tech/topics/releases.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>), [make](<https://devfeed.tech/topics/make.md>)

Tags: [amd](<https://devfeed.tech/tags/amd.md>), [article](<https://devfeed.tech/tags/article.md>), [bios](<https://devfeed.tech/tags/bios.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [canoeboot](<https://devfeed.tech/tags/canoeboot.md>), [coreboot](<https://devfeed.tech/tags/coreboot.md>), [firmware](<https://devfeed.tech/tags/firmware.md>), [free-software](<https://devfeed.tech/tags/free-software.md>), [grub](<https://devfeed.tech/tags/grub.md>), [guides](<https://devfeed.tech/tags/guides.md>), [installation](<https://devfeed.tech/tags/installation.md>), [intel](<https://devfeed.tech/tags/intel.md>), [libre](<https://devfeed.tech/tags/libre.md>), [libreboot](<https://devfeed.tech/tags/libreboot.md>), [news](<https://devfeed.tech/tags/news.md>), [opensource](<https://devfeed.tech/tags/opensource.md>), [releases](<https://devfeed.tech/tags/releases.md>), [software](<https://devfeed.tech/tags/software.md>), [uefi](<https://devfeed.tech/tags/uefi.md>), [version](<https://devfeed.tech/tags/version.md>)

### AI overview

The article explains how Libreboot's software-freedom policy is implemented in practice, including the licensing status of its components. It also notes a recent release with fixes and updated component revisions, and outlines planned board additions and documentation improvements.

### Source excerpt

Article: What level of Software Freedom does Libreboot give me? Web link: https://libreboot.org/news/freedom.html

## Libreboot 20220710 released!

DevFeed: [Libreboot 20220710 released!](<https://devfeed.tech/articles/libreboot-20220710-released-32705.md>)

Original publisher: [Read original article](<https://libreboot.org/news/libreboot20220710.html>)

Author: Leah Rowe

Published: 2026-09-17T04:32:50.666044Z

Content type: release

Language: en

Sources: [News about Libreboot releases and development](<https://devfeed.tech/sources/news-about-libreboot-releases-and-development.md>)

Topics: [libreboot](<https://devfeed.tech/topics/libreboot.md>), [releases](<https://devfeed.tech/topics/releases.md>), [coreboot](<https://devfeed.tech/topics/coreboot.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [bios](<https://devfeed.tech/tags/bios.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [canoeboot](<https://devfeed.tech/tags/canoeboot.md>), [coreboot](<https://devfeed.tech/tags/coreboot.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [free-software](<https://devfeed.tech/tags/free-software.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [libre](<https://devfeed.tech/tags/libre.md>), [libreboot](<https://devfeed.tech/tags/libreboot.md>), [linux](<https://devfeed.tech/tags/linux.md>), [opensource](<https://devfeed.tech/tags/opensource.md>), [release](<https://devfeed.tech/tags/release.md>), [releases](<https://devfeed.tech/tags/releases.md>), [scripts](<https://devfeed.tech/tags/scripts.md>), [security](<https://devfeed.tech/tags/security.md>), [speed](<https://devfeed.tech/tags/speed.md>), [testing](<https://devfeed.tech/tags/testing.md>), [uefi](<https://devfeed.tech/tags/uefi.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>), [usb](<https://devfeed.tech/tags/usb.md>), [version](<https://devfeed.tech/tags/version.md>)

### AI overview

Libreboot 20220710 is a stable bug-fix release relative to version 20211122. It adds documentation snapshots and fixes or improves GRUB boot performance, laptop compatibility, build behavior, USB keyboard support, coreboot configuration, and related tooling. No new boards or major features were added.

### Source excerpt

Article: Libreboot 20220710 released! Web link: https://libreboot.org/news/libreboot20220710.html

## Libreboot 20210522 released!

DevFeed: [Libreboot 20210522 released!](<https://devfeed.tech/articles/libreboot-20210522-released-32703.md>)

Original publisher: [Read original article](<https://libreboot.org/news/libreboot20210522.html>)

Author: Leah Rowe

Published: 2026-09-17T04:32:50.666044Z

Content type: release

Language: en

Sources: [News about Libreboot releases and development](<https://devfeed.tech/sources/news-about-libreboot-releases-and-development.md>)

Topics: [libreboot](<https://devfeed.tech/topics/libreboot.md>), [releases](<https://devfeed.tech/topics/releases.md>), [coreboot](<https://devfeed.tech/topics/coreboot.md>), [boot](<https://devfeed.tech/topics/boot.md>), [x86](<https://devfeed.tech/topics/x86.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [bios](<https://devfeed.tech/tags/bios.md>), [boot](<https://devfeed.tech/tags/boot.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [canoeboot](<https://devfeed.tech/tags/canoeboot.md>), [coreboot](<https://devfeed.tech/tags/coreboot.md>), [firmware](<https://devfeed.tech/tags/firmware.md>), [free-software](<https://devfeed.tech/tags/free-software.md>), [libre](<https://devfeed.tech/tags/libre.md>), [libreboot](<https://devfeed.tech/tags/libreboot.md>), [linux](<https://devfeed.tech/tags/linux.md>), [opensource](<https://devfeed.tech/tags/opensource.md>), [release](<https://devfeed.tech/tags/release.md>), [uefi](<https://devfeed.tech/tags/uefi.md>), [update](<https://devfeed.tech/tags/update.md>), [x86](<https://devfeed.tech/tags/x86.md>)

### AI overview

Libreboot 20210522 is a testing release of the free boot firmware, released on 22 May 2021. It focuses on build-system changes and updates to coreboot 4.14, with support and testing status varying across hardware platforms.

### Source excerpt

Article: Libreboot 20210522 released! Web link: https://libreboot.org/news/libreboot20210522.html

## Libreboot Build System Audit 4

DevFeed: [Libreboot Build System Audit 4](<https://devfeed.tech/articles/libreboot-build-system-audit-4-32664.md>)

Original publisher: [Read original article](<https://libreboot.org/news/audit4.html>)

Author: Leah Rowe

Published: 2026-09-17T04:32:50.666044Z

Content type: article

Language: en

Sources: [News about Libreboot releases and development](<https://devfeed.tech/sources/news-about-libreboot-releases-and-development.md>)

Topics: [audit](<https://devfeed.tech/topics/audit.md>), [Shell](<https://devfeed.tech/topics/shell.md>), [Code](<https://devfeed.tech/topics/code.md>), [coding style](<https://devfeed.tech/topics/coding-style.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [audit](<https://devfeed.tech/tags/audit.md>), [bios](<https://devfeed.tech/tags/bios.md>), [build](<https://devfeed.tech/tags/build.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [canoeboot](<https://devfeed.tech/tags/canoeboot.md>), [coding-style](<https://devfeed.tech/tags/coding-style.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [coreboot](<https://devfeed.tech/tags/coreboot.md>), [free-software](<https://devfeed.tech/tags/free-software.md>), [libre](<https://devfeed.tech/tags/libre.md>), [libreboot](<https://devfeed.tech/tags/libreboot.md>), [opensource](<https://devfeed.tech/tags/opensource.md>), [patches](<https://devfeed.tech/tags/patches.md>), [uefi](<https://devfeed.tech/tags/uefi.md>)

### AI overview

This article reviews the fourth audit of the Libreboot build system, lbmk, covering code cleanup, generalization, new features, and bug fixes. It reports a reduction from 1,744 to 1,618 shell-script SLOC and a corresponding 7.22% decrease in complexity, while functionality increased.

### Source excerpt

Article: Libreboot Build System Audit 4 Web link: https://libreboot.org/news/audit4.html

## Libreboot build system audit plus next-release plans

DevFeed: [Libreboot build system audit plus next-release plans](<https://devfeed.tech/articles/libreboot-build-system-audit-plus-next-release-plans-32661.md>)

Original publisher: [Read original article](<https://libreboot.org/news/audit.html>)

Author: Leah Rowe

Published: 2026-09-17T04:32:50.666044Z

Content type: news

Language: en

Sources: [News about Libreboot releases and development](<https://devfeed.tech/sources/news-about-libreboot-releases-and-development.md>)

Topics: [libreboot](<https://devfeed.tech/topics/libreboot.md>), [coreboot](<https://devfeed.tech/topics/coreboot.md>), [Shell](<https://devfeed.tech/topics/shell.md>), [releases](<https://devfeed.tech/topics/releases.md>), [C](<https://devfeed.tech/topics/c.md>)

Tags: [audit](<https://devfeed.tech/tags/audit.md>), [bios](<https://devfeed.tech/tags/bios.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [c](<https://devfeed.tech/tags/c.md>), [canoeboot](<https://devfeed.tech/tags/canoeboot.md>), [coreboot](<https://devfeed.tech/tags/coreboot.md>), [free-software](<https://devfeed.tech/tags/free-software.md>), [libre](<https://devfeed.tech/tags/libre.md>), [libreboot](<https://devfeed.tech/tags/libreboot.md>), [opensource](<https://devfeed.tech/tags/opensource.md>), [release](<https://devfeed.tech/tags/release.md>), [shell](<https://devfeed.tech/tags/shell.md>), [testing](<https://devfeed.tech/tags/testing.md>), [uefi](<https://devfeed.tech/tags/uefi.md>)

### AI overview

Libreboot reports that more than 200 changes have been made to its lbmk automated build system since the previous release. The article describes an audit, extensive testing, cleanup, and ongoing work toward a future release.

### Source excerpt

Article: Libreboot build system audit plus next-release plans Web link: https://libreboot.org/news/audit.html

## Libreboot Build System Audit 3

DevFeed: [Libreboot Build System Audit 3](<https://devfeed.tech/articles/libreboot-build-system-audit-3-32663.md>)

Original publisher: [Read original article](<https://libreboot.org/news/audit3.html>)

Author: Leah Rowe

Published: 2026-09-17T04:32:50.666044Z

Content type: article

Language: en

Sources: [News about Libreboot releases and development](<https://devfeed.tech/sources/news-about-libreboot-releases-and-development.md>)

Topics: [audit](<https://devfeed.tech/topics/audit.md>), [maintenance](<https://devfeed.tech/topics/maintenance.md>), [Error Handling](<https://devfeed.tech/topics/error-handling.md>), [Shell](<https://devfeed.tech/topics/shell.md>)

Tags: [audit](<https://devfeed.tech/tags/audit.md>), [audits](<https://devfeed.tech/tags/audits.md>), [bios](<https://devfeed.tech/tags/bios.md>), [bug](<https://devfeed.tech/tags/bug.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [canoeboot](<https://devfeed.tech/tags/canoeboot.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [coreboot](<https://devfeed.tech/tags/coreboot.md>), [efficiency](<https://devfeed.tech/tags/efficiency.md>), [error-handling](<https://devfeed.tech/tags/error-handling.md>), [free-software](<https://devfeed.tech/tags/free-software.md>), [integrity](<https://devfeed.tech/tags/integrity.md>), [libre](<https://devfeed.tech/tags/libre.md>), [libreboot](<https://devfeed.tech/tags/libreboot.md>), [opensource](<https://devfeed.tech/tags/opensource.md>), [safety](<https://devfeed.tech/tags/safety.md>), [threading](<https://devfeed.tech/tags/threading.md>), [uefi](<https://devfeed.tech/tags/uefi.md>)

### AI overview

This article reports on Libreboot Build System Audit 3, focusing on the lbmk build system. It describes improved error handling, bug fixes, efficiency improvements, reduced complexity, stronger vendor-file integrity checks, and broader use of multithreading. The audit reduced the build system from 2,644 to 1,744 shell-script source lines compared with the previous audit, without reducing functionality.

### Source excerpt

Article: Libreboot Build System Audit 3 Web link: https://libreboot.org/news/audit3.html

## Babel in Khan Academy's i18n Toolchain

DevFeed: [Babel in Khan Academy's i18n Toolchain](<https://devfeed.tech/articles/babel-in-khan-academy-s-i18n-toolchain-27381.md>)

Original publisher: [Read original article](<http://engineering.khanacademy.org/posts/i18n-babel-plugin.htm>)

Author: Khan Academy

Published: 2015-06-22T22:00:00Z

Content type: tutorial

Language: en

Sources: [Khan Academy](<https://devfeed.tech/sources/khan-academy.md>)

Topics: [Babel](<https://devfeed.tech/topics/babel.md>), [Internationalization (i18n)](<https://devfeed.tech/topics/i18n.md>), [toolchain](<https://devfeed.tech/topics/toolchain.md>), [es6](<https://devfeed.tech/topics/es6.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Parser](<https://devfeed.tech/topics/parser.md>), [Universal Syntax Tree.](<https://devfeed.tech/topics/unist.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [babel](<https://devfeed.tech/tags/babel.md>), [build](<https://devfeed.tech/tags/build.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [code](<https://devfeed.tech/tags/code.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [es6](<https://devfeed.tech/tags/es6.md>), [eslint](<https://devfeed.tech/tags/eslint.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [news](<https://devfeed.tech/tags/news.md>), [plugin](<https://devfeed.tech/tags/plugin.md>), [source](<https://devfeed.tech/tags/source.md>), [structure](<https://devfeed.tech/tags/structure.md>), [syntax](<https://devfeed.tech/tags/syntax.md>), [tests](<https://devfeed.tech/tags/tests.md>), [toolchain](<https://devfeed.tech/tags/toolchain.md>), [types](<https://devfeed.tech/tags/types.md>), [web-frontend](<https://devfeed.tech/tags/web-frontend.md>), [workflow](<https://devfeed.tech/tags/workflow.md>)

### AI overview

Khan Academy describes switching its ES6 and JSX frontend compilation from jstransform to Babel. The article explains a custom Babel plugin for preserving the project's internationalization behavior and discusses matching generated output, line numbers, whitespace, and the existing build chain.

### Source excerpt

By Kevin Barabash We've been using ES6 (along with JSX) for sometime at Khan Academy. Right now, we're ... Read more

## BeOS-Inspired Haiku Now Supports Changing Audio Outputs Live, Other Improvements

DevFeed: [BeOS-Inspired Haiku Now Supports Changing Audio Outputs Live, Other Improvements](<https://devfeed.tech/articles/beos-inspired-haiku-now-supports-changing-audio-outputs-live-other-improvements-12408.md>)

Original publisher: [Read original article](<https://www.phoronix.com/news/Haiku-OS-August-2026>)

Author: Michael Larabel

Published: 2026-09-11T00:55:29Z

Content type: news

Language: en

Sources: [Phoronix](<https://devfeed.tech/sources/phoronix.md>)

Topics: [Operating system](<https://devfeed.tech/topics/operating-system.md>), [USB](<https://devfeed.tech/topics/usb.md>), [cpu](<https://devfeed.tech/topics/cpu.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [architectures](<https://devfeed.tech/tags/architectures.md>), [audio](<https://devfeed.tech/tags/audio.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [desktop-linux](<https://devfeed.tech/tags/desktop-linux.md>), [development](<https://devfeed.tech/tags/development.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [linux-benchmarking](<https://devfeed.tech/tags/linux-benchmarking.md>), [linux-hardware-benchmarks](<https://devfeed.tech/tags/linux-hardware-benchmarks.md>), [linux-hardware-reviews](<https://devfeed.tech/tags/linux-hardware-reviews.md>), [linux-how-to](<https://devfeed.tech/tags/linux-how-to.md>), [linux-performance](<https://devfeed.tech/tags/linux-performance.md>), [linux-server-benchmarks](<https://devfeed.tech/tags/linux-server-benchmarks.md>), [open-source-graphics](<https://devfeed.tech/tags/open-source-graphics.md>), [os](<https://devfeed.tech/tags/os.md>), [phoronix](<https://devfeed.tech/tags/phoronix.md>), [phoronix-test-suite](<https://devfeed.tech/tags/phoronix-test-suite.md>), [power-management](<https://devfeed.tech/tags/power-management.md>), [release](<https://devfeed.tech/tags/release.md>), [report](<https://devfeed.tech/tags/report.md>), [ubuntu-benchmarks](<https://devfeed.tech/tags/ubuntu-benchmarks.md>), [ubuntu-hardware](<https://devfeed.tech/tags/ubuntu-hardware.md>), [update](<https://devfeed.tech/tags/update.md>), [usb](<https://devfeed.tech/tags/usb.md>)

### AI overview

Haiku's August 2026 development report describes live audio-output switching, automatic stopping of inactive outputs, continued Bluetooth and USB audio work, power-management improvements, CPU feature-detection updates, kernel fixes, build-system updates, and progress on PowerPC and ARM64 support.

### Source excerpt

In addition to August bringing the long-awaited Haiku R1 Beta 6 release, there was also a lot of development progress on this BeOS-inspired operating system too during the course of the past month...

## VoIP, VPN, and the Build System Behind Them

DevFeed: [VoIP, VPN, and the Build System Behind Them](<https://devfeed.tech/articles/voip-vpn-and-the-build-system-behind-them-19665.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/voip-vpn-builders/>)

Author: Shai Almog

Published: 2026-09-04T00:00:00Z

Content type: article

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Virtual Private Network](<https://devfeed.tech/topics/vpn.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>), [API](<https://devfeed.tech/topics/api.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Android](<https://devfeed.tech/topics/android.md>), [Java](<https://devfeed.tech/topics/java.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [Extension](<https://devfeed.tech/topics/extension.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [apis](<https://devfeed.tech/tags/apis.md>), [build](<https://devfeed.tech/tags/build.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [extension](<https://devfeed.tech/tags/extension.md>), [integration](<https://devfeed.tech/tags/integration.md>), [java](<https://devfeed.tech/tags/java.md>), [native](<https://devfeed.tech/tags/native.md>), [packages](<https://devfeed.tech/tags/packages.md>), [platform](<https://devfeed.tech/tags/platform.md>), [signing](<https://devfeed.tech/tags/signing.md>), [vpn](<https://devfeed.tech/tags/vpn.md>)

### AI overview

Codename One adds native call-management and VPN APIs for iOS and Android. Its builders generate the required platform services, frameworks, permissions, delegates, and separately signed extension targets based on the Java packages an application uses.

### Source excerpt

Codename One adds native call management and VPN APIs, while its builders generate the platform services, frameworks, permissions, and extension plumbing only when an application uses them.

## ESP-IDF: Propagating compiler flags to ExternalProject builds

DevFeed: [ESP-IDF: Propagating compiler flags to ExternalProject builds](<https://devfeed.tech/articles/esp-idf-propagating-compiler-flags-to-externalproject-builds-13766.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2026/04/propagating-compiler-flags-to-externalproject/>)

Author: John Lee

Published: 2026-04-27T00:00:00Z

Content type: tutorial

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [ESP-IDF](<https://devfeed.tech/topics/esp-idf.md>), [CMake](<https://devfeed.tech/topics/cmake.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [build](<https://devfeed.tech/tags/build.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [cmake](<https://devfeed.tech/tags/cmake.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [compiler-flags](<https://devfeed.tech/tags/compiler-flags.md>), [esp-idf](<https://devfeed.tech/tags/esp-idf.md>)

### AI overview

This ESP-IDF post explains why compiler options driven by Kconfig and components do not automatically propagate to ExternalProject_Add() builds. It describes using response files tied to the appropriate build context to keep compiler flags aligned between the outer and nested CMake projects.

### Source excerpt

When an ESP-IDF project uses ExternalProject_Add(), compiler options driven by Kconfig and components do not flow into the nested build on their own. This post walks through why that happens and how to keep the outer and inner CMake worlds aligned.

## Squashing Docker images with Buildx

DevFeed: [Squashing Docker images with Buildx](<https://devfeed.tech/articles/squashing-docker-images-with-buildx-27736.md>)

Original publisher: [Read original article](<https://gagor.pro/2025/12/squashing-docker-images-with-buildx/>)

Author: Tom

Published: 2025-12-24T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [Docker](<https://devfeed.tech/topics/docker.md>), [docker images](<https://devfeed.tech/topics/docker-images.md>), [Dockerfile](<https://devfeed.tech/topics/dockerfile.md>), [Caching](<https://devfeed.tech/topics/caching.md>)

Tags: [best-practices](<https://devfeed.tech/tags/best-practices.md>), [build](<https://devfeed.tech/tags/build.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [caching](<https://devfeed.tech/tags/caching.md>), [devops](<https://devfeed.tech/tags/devops.md>), [docker](<https://devfeed.tech/tags/docker.md>), [docker-buildx](<https://devfeed.tech/tags/docker-buildx.md>), [docker-image-optimization](<https://devfeed.tech/tags/docker-image-optimization.md>), [docker-images](<https://devfeed.tech/tags/docker-images.md>), [docker-layer-management](<https://devfeed.tech/tags/docker-layer-management.md>), [dockerfile-best-practices](<https://devfeed.tech/tags/dockerfile-best-practices.md>), [linux](<https://devfeed.tech/tags/linux.md>), [squash-docker-image](<https://devfeed.tech/tags/squash-docker-image.md>)

### AI overview

This tutorial explains how to create smaller Docker images with Buildx by rebuilding the final filesystem state into a new image, removing intermediate layers. It also discusses the trade-off: this approach can prevent reuse of base-image layer caching, while selectively copying files follows a builder-pattern alternative.

### Source excerpt

Learn how to squash Docker images using Buildx to create smaller, more efficient images by consolidating layers.

## Manage multiple ESP-IDF build configurations with ease

DevFeed: [Manage multiple ESP-IDF build configurations with ease](<https://devfeed.tech/articles/manage-multiple-esp-idf-build-configurations-with-ease-13738.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2025/12/cmake_presets/>)

Author: John Lee

Published: 2025-12-05T00:00:00Z

Content type: tutorial

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [ESP-IDF](<https://devfeed.tech/topics/esp-idf.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [CMake](<https://devfeed.tech/topics/cmake.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [cmake](<https://devfeed.tech/tags/cmake.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [esp-idf](<https://devfeed.tech/tags/esp-idf.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [sdkconfig](<https://devfeed.tech/tags/sdkconfig.md>)

### AI overview

This tutorial explains how ESP-IDF v6.0 build configuration presets simplify switching among development, production, and testing builds. It covers reusable JSON-based settings, CMake Presets support, and separate build directories for parallel configuration management.

### Source excerpt

Tired of juggling complex command-line arguments with endless idf.py flags? ESP-IDF v6.0 introduces a new feature, letting you switch between multiple build configuration. Learn how to structure your project, isolate sdkconfig files, and migrate from ad-hoc commands to clean, declarative builds.

## Porting a library to an ESP-IDF component

DevFeed: [Porting a library to an ESP-IDF component](<https://devfeed.tech/articles/porting-a-library-to-an-esp-idf-component-13732.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2025/10/porting-external-library-as-component/>)

Author: John Lee

Published: 2025-10-20T00:00:00Z

Content type: tutorial

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [ESP-IDF](<https://devfeed.tech/topics/esp-idf.md>), [Library](<https://devfeed.tech/topics/library.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [ide](<https://devfeed.tech/topics/ide.md>), [Code](<https://devfeed.tech/topics/code.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>), [Template](<https://devfeed.tech/topics/template.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [blog](<https://devfeed.tech/tags/blog.md>), [build](<https://devfeed.tech/tags/build.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [code](<https://devfeed.tech/tags/code.md>), [component](<https://devfeed.tech/tags/component.md>), [esp-idf](<https://devfeed.tech/tags/esp-idf.md>), [esp-idf-component](<https://devfeed.tech/tags/esp-idf-component.md>), [esp-idf-extension-for-vs-code](<https://devfeed.tech/tags/esp-idf-extension-for-vs-code.md>), [esp32-c3](<https://devfeed.tech/tags/esp32-c3.md>), [esp32c3](<https://devfeed.tech/tags/esp32c3.md>), [github](<https://devfeed.tech/tags/github.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [porting](<https://devfeed.tech/tags/porting.md>), [repo](<https://devfeed.tech/tags/repo.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

This tutorial explains how to port an external library into a reusable ESP-IDF component. Using tinyexpr, it covers obtaining the source code, creating a test project and component, configuring the build system, resolving compatibility issues, and testing on an ESP32-C3 board.

### Source excerpt

This article shows how to port an external library into an ESP-IDF project by converting it into a reusable component. Using tinyexpr as an example, it covers obtaining the source code, creating a new project, building a component, configuring the build system, and testing on hardware.

## Gradle Best Practices - A Path to Build Happiness

DevFeed: [Gradle Best Practices - A Path to Build Happiness](<https://devfeed.tech/articles/gradle-best-practices-a-path-to-build-happiness-24623.md>)

Original publisher: [Read original article](<https://blog.gradle.org/gradle-best-practices>)

Author: Laura Kassovic

Published: 2025-05-01T04:00:00Z

Content type: article

Language: en

Sources: [The Gradle Blog](<https://devfeed.tech/sources/the-gradle-blog.md>)

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [Google](<https://devfeed.tech/topics/google.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>)

Tags: [best-practices](<https://devfeed.tech/tags/best-practices.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [developer](<https://devfeed.tech/tags/developer.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [jetbrains](<https://devfeed.tech/tags/jetbrains.md>)

### AI overview

Gradle, Google, and JetBrains formed a working group to define best practices for structuring and configuring Gradle builds. The initiative responds to developer difficulties caused by Gradle's flexibility, including build instability, suboptimal solutions, and maintenance challenges.

### Source excerpt

Gradle Build Tool, also known as Gradle, is a highly flexible and extensible build system. It supports multiple ways to structure and configure builds, making it incredibly powerful--but also somewhat daunting, especially for teams just getting started. Even experienced developers and tooling providers sometimes struggle with Gradle's complexity. We've heard this loud and clear from the community and also in our recent Developer Survey. Whether it's setting up a build from scratch, improving performance, or avoiding pitfalls, teams often find themselves searching for clear guidance on the best way to do things. That's why we partnered with JetBrains and Google to create the Gradle Best Practices guide--an essential resource to help teams build with confidence and settle debates over the proper way to use Gradle. How This Initiative Started This effort began during a Gradle, Google, and JetBrains Summit in Fall 2024, where teams from each company meet annually to align on product roadmaps and discuss the future of the ecosystem. These summits have been pivotal in shaping major initiatives--Declarative Gradle emerged from one of these discussions, and Kotlin itself has been deeply influenced by them. At the 2024 Summit, a key question emerged: Beyond new features, how can we improve the Gradle experience today? The answer was clear: we need to establish best practices. While it's easy to focus on exciting new Gradle features, existing build setups often lack clear guidance. The Gradle teams at Google, JetBrains, and Gradle recognized that developers frequently struggle with too many ways to do the same thing--leading to suboptimal solutions, build instability, and maintenance headaches. This realization led to the formation of a dedicated working group, with representatives from all three companies. Over the past months, we've been meeting weekly to define best practices that provide firm foundations and help teams avoid future problems. Why Best Practices Matter Gradle's

## Sphinx + Bazel: the good, the bad, and the ugly

DevFeed: [Sphinx + Bazel: the good, the bad, and the ugly](<https://devfeed.tech/articles/sphinx-bazel-the-good-the-bad-and-the-ugly-31141.md>)

Original publisher: [Read original article](<https://technicalwriting.dev/2025/03/context/index.html>)

Published: 2025-03-25T00:00:00Z

Content type: opinion

Language: en

Sources: [technicalwriting.dev](<https://devfeed.tech/sources/technicalwriting-dev.md>)

Topics: [bazel](<https://devfeed.tech/topics/bazel.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [bazel](<https://devfeed.tech/tags/bazel.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [shell-script](<https://devfeed.tech/tags/shell-script.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>), [sphinx](<https://devfeed.tech/tags/sphinx.md>)

### AI overview

An experienced technical writer discusses the strengths and weaknesses of managing Sphinx documentation projects with Bazel. The article explains how Bazel can orchestrate Sphinx workflows and describes reported maintenance and development-environment benefits, while helping readers decide whether it fits their project.

### Source excerpt

Strengths and weaknesses of orchestrating Sphinx projects with Bazel.

## Orchestrate Sphinx projects with Bazel

DevFeed: [Orchestrate Sphinx projects with Bazel](<https://devfeed.tech/articles/orchestrate-sphinx-projects-with-bazel-31142.md>)

Original publisher: [Read original article](<https://technicalwriting.dev/2025/03/tutorial/index.html>)

Published: 2025-03-25T00:00:00Z

Content type: tutorial

Language: en

Sources: [technicalwriting.dev](<https://devfeed.tech/sources/technicalwriting-dev.md>)

Topics: [bazel](<https://devfeed.tech/topics/bazel.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [GitHub Pages](<https://devfeed.tech/topics/github-pages.md>), [Bash](<https://devfeed.tech/topics/bash.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Extension](<https://devfeed.tech/topics/extension.md>), [Template](<https://devfeed.tech/topics/template.md>)

Tags: [bash](<https://devfeed.tech/tags/bash.md>), [bazel](<https://devfeed.tech/tags/bazel.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [docs](<https://devfeed.tech/tags/docs.md>), [extension](<https://devfeed.tech/tags/extension.md>), [github](<https://devfeed.tech/tags/github.md>), [github-pages](<https://devfeed.tech/tags/github-pages.md>), [linux](<https://devfeed.tech/tags/linux.md>), [repository](<https://devfeed.tech/tags/repository.md>), [sphinx](<https://devfeed.tech/tags/sphinx.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

An end-to-end tutorial on managing a Sphinx project with Bazel, including setup, documentation builds, local preview, extensions, and deployment to GitHub Pages.

### Source excerpt

An end-to-end tutorial on managing a Sphinx project with Bazel.

## How we accidentally built a better build system for OCaml

DevFeed: [How we accidentally built a better build system for OCaml](<https://devfeed.tech/articles/how-we-accidentally-built-a-better-build-system-for-ocaml-20179.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/how-we-accidentally-built-a-better-build-system-for-ocaml-index/>)

Author: Andrey Mokhov

Published: 2025-01-24T00:00:00Z

Content type: article

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [OCaml](<https://devfeed.tech/topics/ocaml.md>), [toolchain](<https://devfeed.tech/topics/toolchain.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>)

Tags: [build-system](<https://devfeed.tech/tags/build-system.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [portable](<https://devfeed.tech/tags/portable.md>), [speed](<https://devfeed.tech/tags/speed.md>)

### AI overview

Jane Street describes how dissatisfaction with OMake led to Jenga, then to the simpler cross-platform Jbuilder tool. Although Jbuilder was initially intended as a compatibility shim, its speed, portability, and hackability made it popular and led to its evolution into Dune.

### Source excerpt

A "build system" is one of the most important tools in a developer's toolbox. Roughly, it figures out how to create runnable programs from a bunch of different source files by calling out to the compiler, setting up and executing test suites, and so on. Because you interact with it daily, above all it has to be fast - but it also has to be flexible.

## Agnostic Build System: Powertrain build

DevFeed: [Agnostic Build System: Powertrain build](<https://devfeed.tech/articles/agnostic-build-system-powertrain-build-28866.md>)

Original publisher: [Read original article](<https://medium.com/volvo-cars-engineering/agnostic-build-system-powertrain-build-53cb007dfa7f?source=rss----4eed8113139---4>)

Author: Johannes Foufas

Published: 2024-06-18T09:48:37Z

Content type: release

Language: en

Sources: [Volvo Cars Engineering - Medium](<https://devfeed.tech/sources/volvo-cars-engineering-medium.md>)

Topics: [Embedded Software Dev](<https://devfeed.tech/topics/embedded-software-dev.md>), [Python](<https://devfeed.tech/topics/python.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [JSON](<https://devfeed.tech/topics/json.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [automotive](<https://devfeed.tech/tags/automotive.md>), [automotive-software](<https://devfeed.tech/tags/automotive-software.md>), [autosar](<https://devfeed.tech/tags/autosar.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [c-coding](<https://devfeed.tech/tags/c-coding.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [embedded](<https://devfeed.tech/tags/embedded.md>), [json](<https://devfeed.tech/tags/json.md>), [python](<https://devfeed.tech/tags/python.md>), [release](<https://devfeed.tech/tags/release.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

The article announces Volvo Cars' Powertrain Build project, a Python-based build system for automotive embedded software. It supports moving source code between POSIX-based and legacy embedded ECU targets, Software in the Loop testing, and continuous integration through Zuul. It also describes JSON-based project, base, and unit configuration files, unit tests, and HTML documentation.

### Source excerpt

Powering Volvo Cars' Software Builds We are thrilled to announce the release of the Volvo Cars Powertrain Build project, now available on OpenDev! As a build system tailored for embedded software development using DSpace Target Link or Mathworks Embedded coder, this project is set to improve the way we as automotive embedded engineers handle our code bases. The idea is to make it easy to move between different targets, enable Software in the Loop (SIL) testing, and streamline our continuous integration (CI) processes. Powertrain build offers to efficiently move embedded source code between different embedded targets, both Posix based and old school embedded ECU's. This build system does what AUTOSAR never did, and is a tool that prepares us for the future of the car OS. Check out the article below to learn more about AUTOSAR: The reality of AUTOSAR and the way forward Our Powertrain Build project is designed to work harmoniously with the Zuul CI system. This ensures that all code changes are automatically tested and validated, providing continuous feedback to developers and maintaining the integrity of our codebase. What is it? The build system is written in Python for ease of use and flexibility, and these are the build options. py -3.10 pybuild.wrapper --build ABC_123 Projects are defined in .json using Project, base and Unit configs. The project config file contains project specific configuration settings and references to other configuration files. The base config file shares the same structure as the project config file and can be used for non project-specific configuration settings and default values, these could for instance be diagnostic core dummy file names. The units config file contains information about included software units and scheduling rasters. The software units are executed in the order they are defined within each time raster definition. { "SampleTimes": { "VcExt10ms": 0.01 }, "VcExt10ms": [ "VcDebug", "VcCarCfg", ] } Schedulers are not include

## Nonsensical Maven is still a Gradle problem

DevFeed: [Nonsensical Maven is still a Gradle problem](<https://devfeed.tech/articles/nonsensical-maven-is-still-a-gradle-problem-20949.md>)

Original publisher: [Read original article](<https://jakewharton.com/nonsensical-maven-is-still-a-gradle-problem/>)

Published: 2024-03-28T00:00:00Z

Content type: article

Language: en

Sources: [Jake Wharton](<https://devfeed.tech/sources/jake-wharton.md>)

Topics: [Maven](<https://devfeed.tech/topics/maven.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>)

Tags: [build-system](<https://devfeed.tech/tags/build-system.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [dependency](<https://devfeed.tech/tags/dependency.md>), [jvm](<https://devfeed.tech/tags/jvm.md>)

### AI overview

The article argues that Maven's default dependency resolution strategy is problematic for libraries built with Gradle. It explains dependency graphs and contrasts Gradle's default preference for newer versions with Maven's "nearest definition" rule, where declaration order can cause an older transitive dependency to win.

### Source excerpt

There was a time when I used Maven heavily, but today all the libraries I work on build with Gradle. Even though I'm publishing with Gradle, consumers can use Gradle, Maven, Bazel, jars in libs/ (but please don't), or anything else. That's a huge JVM ecosystem win! In general, I don't have to think about what build system someone is using. I'm not here to debate subjective pros and cons of one versus any other. There is one notable exception, however. Maven's dependency resolution strategy is objectively bonkers. And if we want to support Maven consumers, we need to think about it. If you already are familiar with the concept of dependency resolution, you can skip to the nonsense. Dependency resolution primer Chances are your build system of choice (or a separate dependency resolver tool) gives you a declarative way to describe your dependencies. At build time, those declarations are resolved to .jars which can be put on the compiler classpath. Sometimes we call this a dependency tree, but it's actually a dependency graph, as separate nodes can converge back to something common to both. Project (build.gradle) ├── A │ └── B │ └── C v1.0 └── D └── C v1.0 If library B and library D agree on the version of library C, then that is the .jar version which is used. If they disagree on versions, some policy needs to decide the appropriate single version to use. Pop quiz: If library B wants version 1.1 of library C, and library D wants version 1.0 of library C, which single version of C should we use? Project (build.gradle) ├── A │ └── B │ └── C v1.1 └── D └── C v1.0 This is not a trick question. Hopefully the answer feels obvious: you use the newer version, 1.1. That version is probably compatible with 1.0, so it's safe for both library B and library D to use. We can't know for sure, to be clear, but it's a safe choice. This behavior is the default in many dependency resolvers, including the one inside Gradle. The nonsense When building with Maven, given two dependencies who

## Amper: a new way to configure Gradle projects?

DevFeed: [Amper: a new way to configure Gradle projects?](<https://devfeed.tech/articles/amper-a-new-way-to-configure-gradle-projects-24709.md>)

Original publisher: [Read original article](<https://dev.to/touchlab/amper-a-new-way-to-configure-gradle-projects-3abf>)

Author: Gustavo Fão Valvassori

Published: 2023-12-08T12:05:34Z

Content type: tutorial

Language: en

Sources: [Touchlab](<https://devfeed.tech/sources/touchlab.md>)

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [YAML](<https://devfeed.tech/topics/yaml.md>), [IntelliJ IDEA](<https://devfeed.tech/topics/intellij-idea.md>), [Groovy](<https://devfeed.tech/topics/groovy.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>)

Tags: [build-system](<https://devfeed.tech/tags/build-system.md>), [coding](<https://devfeed.tech/tags/coding.md>), [community](<https://devfeed.tech/tags/community.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [declarative](<https://devfeed.tech/tags/declarative.md>), [development](<https://devfeed.tech/tags/development.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [experimental](<https://devfeed.tech/tags/experimental.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [ide](<https://devfeed.tech/tags/ide.md>), [inclusive](<https://devfeed.tech/tags/inclusive.md>), [intellij-idea](<https://devfeed.tech/tags/intellij-idea.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [software](<https://devfeed.tech/tags/software.md>), [yaml](<https://devfeed.tech/tags/yaml.md>)

### AI overview

The article introduces Amper, an experimental Gradle plugin for configuring Kotlin Multiplatform projects with YAML instead of Groovy or Kotlin configuration code. It explains the declarative approach, required IDE or plugin setup, module.yaml configuration, and changes to project structure.

### Source excerpt

Earlier this month, Kotlin Multiplatform went stable. And just a couple of weeks later, they announced a new tool to help with one of the biggest issues we have, configuration. Currently, KMP projects use Gradle as a Build System, and we must agree that it's a great tool. But the complexity around it for new users is a big issue. Amper is a tool to help you configure your projects using a markup language. The main goal is to replace the Groovy/Kotlin programming language with something that can enforce a declarative approach. With a declarative paradigm, you can only declare what needs to be done without implementing it. If you already have experience with Maven, it may be familiar to you. Please note that the tool is in the early stages of development, and its goal is to validate the idea before putting more effort into it. With that in mind, be aware that syntax, language, and other things may change in the future, and it's a very experimental tool. How does it work? According to the docs, Amper is implemented as a Gradle plugin and uses YAML for its project configuration format. In other words, it's still a Gradle environment, but it will use an additional YAML file to configure the project. To be able to use it, you need one of the following environments: Use one of the following IDEs: IntelliJ IDEA 2023.3 or newer and the Amper Plugin; or Fleet 1.26 or newer; Use the Amper build plugin to enable it: In your settings.gradle.kts, add this plugin: id("org.jetbrains.amper.settings.plugin").version("0.1.1") When you open a project with the Amper Plugin in the IDE, it will look for the module.yaml file. This file will contain the configuration for the module (library or application), dependencies, and other project configurations (like the Java version). Also worth noting that it also changes the project architecture. Instead of having a directory for your source set artifacts, you will have multiple src directories. In other words, your commonMain/src/kotlin will be

## Amper: a new way to configure Gradle projects? - Gustavo Fão Valvassori

DevFeed: [Amper: a new way to configure Gradle projects? - Gustavo Fão Valvassori](<https://devfeed.tech/articles/amper-a-new-way-to-configure-gradle-projects-gustavo-fao-valvassori-38157.md>)

Original publisher: [Read original article](<https://touchlab.co/amper-a-new-way-to-configure-gradle-projects>)

Published: 2023-12-07T00:00:00Z

Content type: article

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [jetbrains](<https://devfeed.tech/topics/jetbrains.md>), [YAML](<https://devfeed.tech/topics/yaml.md>), [IntelliJ IDEA](<https://devfeed.tech/topics/intellij-idea.md>)

Tags: [build-system](<https://devfeed.tech/tags/build-system.md>), [build-tools](<https://devfeed.tech/tags/build-tools.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [declarative](<https://devfeed.tech/tags/declarative.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [jetbrains](<https://devfeed.tech/tags/jetbrains.md>), [kmp](<https://devfeed.tech/tags/kmp.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>)

### AI overview

This article introduces Amper, an experimental JetBrains tool for configuring Kotlin Multiplatform projects through a declarative markup approach instead of Groovy or Kotlin build scripts. It remains within a Gradle environment while using an additional YAML file, and its syntax and capabilities may change.

### Source excerpt

If you ask any KMP developer what's the biggest pain point on it, they will probably say "configuration". Amper is a new tool developed by JetBrains to help developers configure projects without all the complexity of Gradle.

[Next page](<https://devfeed.tech/tags/build-system.md?cursor=WyIyMDIzLTEyLTA3VDAwOjAwOjAwKzAwOjAwIiwgIjg0NzUwOThkLTJkYTctNDZkMy05MTgxLTYxNzJiYzRiODU5NiJd>)