# toolchains

Published articles for toolchains.

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

## Announcing Fedora Linux 45 Beta

DevFeed: [Announcing Fedora Linux 45 Beta](<https://devfeed.tech/articles/announcing-fedora-linux-45-beta-26757.md>)

Original publisher: [Read original article](<https://fedoramagazine.org/announcing-fedora-linux-45-beta/>)

Author: Aoife Moloney

Published: 2026-09-15T14:05:00Z

Content type: release

Language: en

Sources: [Fedora Magazine](<https://devfeed.tech/sources/fedora-magazine.md>)

Topics: [Fedora](<https://devfeed.tech/topics/fedora.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [dnf](<https://devfeed.tech/topics/dnf.md>), [podman](<https://devfeed.tech/topics/podman.md>), [pandas](<https://devfeed.tech/topics/pandas.md>), [Python](<https://devfeed.tech/topics/python.md>), [gcc](<https://devfeed.tech/topics/gcc.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [MariaDB](<https://devfeed.tech/topics/mariadb.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>), [Filesystems](<https://devfeed.tech/topics/filesystems.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [dnf](<https://devfeed.tech/tags/dnf.md>), [fedora-project-community](<https://devfeed.tech/tags/fedora-project-community.md>), [filesystems](<https://devfeed.tech/tags/filesystems.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [go](<https://devfeed.tech/tags/go.md>), [linux](<https://devfeed.tech/tags/linux.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [pandas](<https://devfeed.tech/tags/pandas.md>), [partitioning](<https://devfeed.tech/tags/partitioning.md>), [podman](<https://devfeed.tech/tags/podman.md>), [pre-release](<https://devfeed.tech/tags/pre-release.md>), [python](<https://devfeed.tech/tags/python.md>), [release](<https://devfeed.tech/tags/release.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>)

### AI overview

Fedora Linux 45 Beta is available for download or upgrade on September 15, 2026. The release includes changes to the kernel console, package signature verification, desktop secret management, software versions, Atomic Desktop image builds, Fedora CoreOS swap support, Anaconda installation flows, and Stratis filesystem partitioning.

### Source excerpt

Fedora Linux 45 Beta is here! On Tuesday, 15 September 2026 you can download or upgrade your systems from your usual spots to start enjoying what F45 has to offer early. How to get the beta release You can download F45 Beta, or our pre-release edition versions, from any of the following places: You can [...]

## Introducing CUDA Rust: Two Tracks for Writing GPU Kernels

DevFeed: [Introducing CUDA Rust: Two Tracks for Writing GPU Kernels](<https://devfeed.tech/articles/introducing-cuda-rust-two-tracks-for-writing-gpu-kernels-6871.md>)

Original publisher: [Read original article](<https://developer.nvidia.com/blog/introducing-cuda-rust-two-tracks-for-writing-gpu-kernels/>)

Author: Elizabeth Goodman

Published: 2026-09-08T12:00:00Z

Content type: article

Language: en

Sources: [NVIDIA Developer](<https://devfeed.tech/sources/nvidia-developer.md>), [NVIDIA Technical Blog](<https://devfeed.tech/sources/nvidia-technical-blog.md>)

Topics: [GPU](<https://devfeed.tech/topics/gpu.md>), [Code generation](<https://devfeed.tech/topics/code-generation.md>), [toolchain](<https://devfeed.tech/topics/toolchain.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>)

Tags: [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [cuda](<https://devfeed.tech/tags/cuda.md>), [cuda-tile](<https://devfeed.tech/tags/cuda-tile.md>), [data-science](<https://devfeed.tech/tags/data-science.md>), [developer-tools-techniques](<https://devfeed.tech/tags/developer-tools-techniques.md>), [dynamo](<https://devfeed.tech/tags/dynamo.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [kernels](<https://devfeed.tech/tags/kernels.md>), [nemo-retriever](<https://devfeed.tech/tags/nemo-retriever.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [programming-languages-compilers](<https://devfeed.tech/tags/programming-languages-compilers.md>), [rust](<https://devfeed.tech/tags/rust.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>)

### AI overview

NVIDIA introduces CUDA Rust for writing GPU kernels natively in Rust and compiling them to PTX. The article explains the SIMT and Tile programming tracks, recommends Tile as the default, and describes cuda-oxide's Rust-based code-generation path.

### Source excerpt

In September 2026, NVIDIA announced it is leaning into native GPU programming in Rust. CUDA C++ and CUDA Python are mature, enterprise-grade toolchains, and...

## Kotlin Toolchain 0.12: Multiplatform Library Publishing, Wasm Apps, and More

DevFeed: [Kotlin Toolchain 0.12: Multiplatform Library Publishing, Wasm Apps, and More](<https://devfeed.tech/articles/kotlin-toolchain-0-12-multiplatform-library-publishing-wasm-apps-and-more-8794.md>)

Original publisher: [Read original article](<https://blog.jetbrains.com/kotlin/2026/09/kotlin-toolchain-0-12-multiplatform-library-publishing-wasm-apps-and-more/>)

Author: Joffrey Bion

Published: 2026-09-03T10:40:05Z

Content type: release

Language: en

Sources: [Kotlin : A concise multiplatform language developed by JetBrains | The JetBrains Blog](<https://devfeed.tech/sources/kotlin-a-concise-multiplatform-language-developed-by-jetbrains-the-jetbrains-blog.md>)

Topics: [toolchain](<https://devfeed.tech/topics/toolchain.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [compose-hot-reload](<https://devfeed.tech/topics/compose-hot-reload.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [Spring Boot 4](<https://devfeed.tech/topics/spring-boot-4.md>)

Tags: [compose-hot-reload](<https://devfeed.tech/tags/compose-hot-reload.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [intellij-idea](<https://devfeed.tech/tags/intellij-idea.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [news](<https://devfeed.tech/tags/news.md>), [publication](<https://devfeed.tech/tags/publication.md>), [releases](<https://devfeed.tech/tags/releases.md>), [toolchain](<https://devfeed.tech/tags/toolchain.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>), [wasm](<https://devfeed.tech/tags/wasm.md>)

### AI overview

Kotlin Toolchain 0.12.0 adds multiplatform library publishing and previews support for building Wasm modules as web applications. It also includes command-line Compose Hot Reload and changes intended to reduce Maven Central publication files.

### Source excerpt

Kotlin Toolchain 0.12.0 is out. This release brings some long-awaited features: multiplatform libraries publication, a preview of Wasm application support, Compose Hot Reload from the command line, and more. Read on for the details, and check the release notes for the full list of changes and bug fixes. Additionally, klibs.io now uses the Kotlin Toolchain [...]

## Google joins the OpenROAD Initiative as principal member to accelerate open source silicon innovation

DevFeed: [Google joins the OpenROAD Initiative as principal member to accelerate open source silicon innovation](<https://devfeed.tech/articles/google-joins-the-openroad-initiative-as-principal-member-to-accelerate-open-source-silicon-innovation-41367.md>)

Original publisher: [Read original article](<http://opensource.googleblog.com/2026/08/%20google-joins-the-openroad-initiative-as-principal-member-to-accelerate-open-source-silicon-innovation.html>)

Author: Google Open Source (noreply@blogger.com)

Published: 2026-08-11T18:30:00Z

Content type: release

Language: en

Sources: [Google Open Source Blog](<https://devfeed.tech/sources/google-open-source-blog.md>)

Topics: [Google](<https://devfeed.tech/topics/google.md>), [Chip design](<https://devfeed.tech/topics/chip-design.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [toolchains](<https://devfeed.tech/topics/toolchains.md>), [Continuous integration](<https://devfeed.tech/topics/continuous-integration.md>)

Tags: [chip-design](<https://devfeed.tech/tags/chip-design.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [eda](<https://devfeed.tech/tags/eda.md>), [google](<https://devfeed.tech/tags/google.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [openroad](<https://devfeed.tech/tags/openroad.md>), [semiconductors](<https://devfeed.tech/tags/semiconductors.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>), [user-experience](<https://devfeed.tech/tags/user-experience.md>)

### AI overview

Google has joined the OpenROAD Initiative as a principal member and appointed Aaron Cunningham to its Governing Board. The partnership supports OpenROAD's open-source electronic design automation ecosystem through governance, ecosystem growth, workforce development, and technical improvements.

### Source excerpt

by Ethan Mahintorabi & Aaron Cunningham, Hardware Toolchains Team Google is committed to advancing open source silicon innovation. We are excited to share that we have formally joined the OpenROAD Initiative (ORI), Inc. as a principal member. ORI is a nonprofit public benefit corporation dedicated to the open source electronic design automation (EDA) ecosystem. As part of this commitment, Aaron Cunningham has been appointed to the ORI Governing Board to represent Google and help drive the foundation's strategic direction, financial sustainability, and technical stewardship. Driving long-term open source sustainability The OpenROAD Initiative's mission is to advance and sustain the open source EDA ecosystem by fostering collaborative innovation across research, education, and industry--transforming ideas into silicon. Google's membership aligns directly with ORI's multi-year sustainability goals, supported by the US National Science Foundation's (NSF) Pathways to Enable Open-Source Ecosystems (POSE) program. With Google's participation and membership commitment, ORI will continue to strengthen, grow, and sustain its open source ecosystem through key vectors: Neutral Stewardship: Fostering transparent governance where no single company has outsized control over the code, ensuring the project remains inspectable, accessible, and community-driven. Ecosystem Growth: Supporting open and reproducible silicon research, developing robust design flows, and hosting global design contests. Workforce Development: Supporting global silicon skilling initiatives by expanding open source chip design curricula and collaborating with academic institutions and industrial training networks. Technical Strengthening: Enhancing continuous integration and deployment (CI/CD) pipelines, expanding PDK enablement, and improving user experience. Leadership perspectives "The OpenROAD Initiative is built on the vision of making chip design open and accessible to all--building a collaborative ecosyst

## GC and Exceptions in Wasmtime

DevFeed: [GC and Exceptions in Wasmtime](<https://devfeed.tech/articles/gc-and-exceptions-in-wasmtime-15142.md>)

Original publisher: [Read original article](<https://bytecodealliance.org/articles/wasmtime-gc>)

Author: Nick Fitzgerald

Published: 2026-07-20T00:00:00Z

Content type: release

Language: en

Sources: [Bytecode Alliance](<https://devfeed.tech/sources/bytecode-alliance.md>)

Topics: [WebAssembly](<https://devfeed.tech/topics/web-assembly.md>), [wasm](<https://devfeed.tech/topics/wasm.md>), [Exception](<https://devfeed.tech/topics/exception.md>), [toolchains](<https://devfeed.tech/topics/toolchains.md>)

Tags: [compilation](<https://devfeed.tech/tags/compilation.md>), [exceptions](<https://devfeed.tech/tags/exceptions.md>), [release](<https://devfeed.tech/tags/release.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>), [wasm](<https://devfeed.tech/tags/wasm.md>), [webassembly](<https://devfeed.tech/tags/webassembly.md>)

### AI overview

Wasmtime 47 enables the Wasm GC and exceptions proposals by default. The article explains how Wasm GC supports languages with object-and-reference data models by letting the runtime manage types and lifetimes, while the exceptions proposal provides more efficient exception handling for WebAssembly compilation targets.

### Source excerpt

The Wasm GC and exceptions proposals are both enabled by default in today's Wasmtime 47 release! We are excited to help bring more languages to WebAssembly and everywhere that Wasmtime runs. Getting to this point involved large Wasmtime changes and represents the culmination of years of engineering effort.

## ESPHome 2026.7.0: Native toolchains by default

DevFeed: [ESPHome 2026.7.0: Native toolchains by default](<https://devfeed.tech/articles/esphome-2026-7-0-native-toolchains-by-default-16712.md>)

Original publisher: [Read original article](<https://esphome.io/blog/2026/07/15/esphome-2026-7/>)

Author: Jesse Hills

Published: 2026-07-15T00:00:00Z

Content type: release

Language: en

Sources: [ESPHome - Smart Home Made Simple - Blog](<https://devfeed.tech/sources/esphome-smart-home-made-simple-blog.md>)

Topics: [esphome](<https://devfeed.tech/topics/esphome.md>), [toolchains](<https://devfeed.tech/topics/toolchains.md>), [ESP32](<https://devfeed.tech/topics/esp32.md>), [Modbus](<https://devfeed.tech/topics/modbus.md>), [Security](<https://devfeed.tech/topics/security.md>), [ESP-IDF](<https://devfeed.tech/topics/esp-idf.md>), [SDK](<https://devfeed.tech/topics/sdk.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [esp-idf](<https://devfeed.tech/tags/esp-idf.md>), [esp32](<https://devfeed.tech/tags/esp32.md>), [esphome](<https://devfeed.tech/tags/esphome.md>), [modbus](<https://devfeed.tech/tags/modbus.md>), [native](<https://devfeed.tech/tags/native.md>), [release](<https://devfeed.tech/tags/release.md>), [releases](<https://devfeed.tech/tags/releases.md>), [security](<https://devfeed.tech/tags/security.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>)

### AI overview

ESPHome 2026.7.0 makes native ESP32 and nRF52 toolchains the default, adds security infrastructure including NVS encryption and OTA downgrade protection, and introduces a transport-agnostic provisioning component. The release also overhauls Modbus and includes performance, memory, LVGL, Ethernet, ESP-NOW, Zigbee, and component updates.

### Source excerpt

ESPHome 2026.7.0 makes native toolchains the default on ESP32 and nRF52, adds EN18031 security groundwork, and overhauls Modbus.

## ESP-IDF v6.0: Default libc Switches from Newlib to PicolibC

DevFeed: [ESP-IDF v6.0: Default libc Switches from Newlib to PicolibC](<https://devfeed.tech/articles/esp-idf-v6-0-default-libc-switches-from-newlib-to-picolibc-13762.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2026/04/esp-idf-6-default-libc-picolibc/>)

Author: John Lee

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

Content type: article

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>), [C](<https://devfeed.tech/topics/c.md>), [Embedded Systems](<https://devfeed.tech/topics/embedded-systems.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [Library](<https://devfeed.tech/topics/library.md>), [POSIX](<https://devfeed.tech/topics/posix.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [architectures](<https://devfeed.tech/tags/architectures.md>), [blog](<https://devfeed.tech/tags/blog.md>), [c](<https://devfeed.tech/tags/c.md>), [compatibility](<https://devfeed.tech/tags/compatibility.md>), [embedded](<https://devfeed.tech/tags/embedded.md>), [embedded-systems](<https://devfeed.tech/tags/embedded-systems.md>), [esp-idf](<https://devfeed.tech/tags/esp-idf.md>), [firmware](<https://devfeed.tech/tags/firmware.md>), [libc](<https://devfeed.tech/tags/libc.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [memory](<https://devfeed.tech/tags/memory.md>), [migration](<https://devfeed.tech/tags/migration.md>), [newlib](<https://devfeed.tech/tags/newlib.md>), [performance](<https://devfeed.tech/tags/performance.md>), [picolibc](<https://devfeed.tech/tags/picolibc.md>), [posix](<https://devfeed.tech/tags/posix.md>), [streams](<https://devfeed.tech/tags/streams.md>), [systems](<https://devfeed.tech/tags/systems.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>)

### AI overview

ESP-IDF v6.0 changes its default C library from Newlib to PicolibC. The article compares the libraries' memory usage, standard I/O behavior, compatibility, and migration considerations, including measurements on ESP32-C3.

### Source excerpt

ESP-IDF v6.0 switches the default C library from Newlib to PicolibC. This article compares both libraries in terms of memory usage, stdio behavior, compatibility, and migration tradeoffs, and explains when keeping Newlib still makes sense.

## ESP-IDF Installation Manager v0.8: Streamlined Setup for ESP-IDF Development

DevFeed: [ESP-IDF Installation Manager v0.8: Streamlined Setup for ESP-IDF Development](<https://devfeed.tech/articles/esp-idf-installation-manager-v0-8-streamlined-setup-for-esp-idf-development-13753.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2026/03/esp-idf-installation-manager/>)

Author: John Lee

Published: 2026-03-02T00:00:00Z

Content type: release

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>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>), [Espressif](<https://devfeed.tech/topics/espressif.md>), [Package manager](<https://devfeed.tech/topics/package-manager.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>)

Tags: [beginner](<https://devfeed.tech/tags/beginner.md>), [blog](<https://devfeed.tech/tags/blog.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [eim](<https://devfeed.tech/tags/eim.md>), [esp-idf](<https://devfeed.tech/tags/esp-idf.md>), [esp-idf-tool](<https://devfeed.tech/tags/esp-idf-tool.md>), [espressif](<https://devfeed.tech/tags/espressif.md>), [gui](<https://devfeed.tech/tags/gui.md>), [installation](<https://devfeed.tech/tags/installation.md>), [linux](<https://devfeed.tech/tags/linux.md>), [macos](<https://devfeed.tech/tags/macos.md>), [offline](<https://devfeed.tech/tags/offline.md>), [pipelines](<https://devfeed.tech/tags/pipelines.md>), [release](<https://devfeed.tech/tags/release.md>), [reproducible-builds](<https://devfeed.tech/tags/reproducible-builds.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

ESP-IDF Installation Manager v0.8 adds native package-manager installation methods, offline ESP-IDF installation, improved environment activation, CI/CD integration, and version management across Windows, macOS, and Linux.

### Source excerpt

The ESP-IDF Installation Manager (EIM) v0.8 introduces simplified installation across Windows, macOS, and Linux through native package managers. This article covers the new release features, installation methods, offline capabilities, and headless usage for CI/CD pipelines.

## Architectural Choices in China's Open-Source AI Ecosystem: Building Beyond DeepSeek

DevFeed: [Architectural Choices in China's Open-Source AI Ecosystem: Building Beyond DeepSeek](<https://devfeed.tech/articles/architectural-choices-in-china-s-open-source-ai-ecosystem-building-beyond-deepseek-7251.md>)

Original publisher: [Read original article](<https://huggingface.co/blog/huggingface/one-year-since-the-deepseek-moment-blog-2>)

Author: Adina Yakefu; Irene Solaiman

Published: 2026-01-27T15:01:45Z

Content type: article

Language: en

Sources: [Hugging Face - Blog](<https://devfeed.tech/sources/hugging-face-blog.md>)

Topics: [Open Source](<https://devfeed.tech/topics/open-source.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Mixture of Experts (MoE)](<https://devfeed.tech/topics/mixture-of-experts-moe.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>), [multimodal](<https://devfeed.tech/topics/multimodal.md>), [Open Source Models & Datasets](<https://devfeed.tech/topics/open-source-models-datasets.md>), [Inference](<https://devfeed.tech/topics/inference.md>), [model-deployment](<https://devfeed.tech/topics/model-deployment.md>), [datasets](<https://devfeed.tech/topics/datasets.md>), [toolchains](<https://devfeed.tech/topics/toolchains.md>), [stable-diffusion](<https://devfeed.tech/topics/stable-diffusion.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [china](<https://devfeed.tech/tags/china.md>), [compute](<https://devfeed.tech/tags/compute.md>), [datasets](<https://devfeed.tech/tags/datasets.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [evaluation](<https://devfeed.tech/tags/evaluation.md>), [mixture-of-experts-moe](<https://devfeed.tech/tags/mixture-of-experts-moe.md>), [multimodal](<https://devfeed.tech/tags/multimodal.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [performance](<https://devfeed.tech/tags/performance.md>), [text-to-image](<https://devfeed.tech/tags/text-to-image.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>)

### AI overview

This second article in a three-part series examines architectural and hardware choices in China's open-source AI ecosystem after the DeepSeek Moment. It explains why Mixture-of-Experts architectures became widespread, emphasizing flexible compute allocation, sustainable cost-performance balance, deployment across varied hardware, and expansion into multimodal models, agents, datasets, evaluation, and toolchains.

### Source excerpt

This is the second blog in a three-part series on China's open source community's historical advancements since January 2025's "DeepSeek Moment." The first blog is available here, and the third blog is available here. In this second piece we turn our focus from models to the architectural and hardware choices Chinese companies have made as openness becomes the norm.

## Engineers Want to Build, Not Maintain: Key Findings From Our 2026 Engineering Reality Report

DevFeed: [Engineers Want to Build, Not Maintain: Key Findings From Our 2026 Engineering Reality Report](<https://devfeed.tech/articles/engineers-want-to-build-not-maintain-key-findings-from-our-2026-engineering-reality-report-13029.md>)

Original publisher: [Read original article](<https://www.chainguard.dev/unchained/engineers-want-to-build-not-maintain-key-findings-from-our-2026-engineering-reality-report>)

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

Content type: article

Language: en

Sources: [Chainguard: Unchained](<https://devfeed.tech/sources/chainguard-unchained.md>)

Topics: [Developer experience](<https://devfeed.tech/topics/developer-experience.md>), [code productivity](<https://devfeed.tech/topics/code-productivity.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Automation](<https://devfeed.tech/topics/automation.md>), [toolchains](<https://devfeed.tech/topics/toolchains.md>), [Security](<https://devfeed.tech/topics/security.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [ai](<https://devfeed.tech/tags/ai.md>), [automation](<https://devfeed.tech/tags/automation.md>), [chainguard](<https://devfeed.tech/tags/chainguard.md>), [chainguard-containers-report](<https://devfeed.tech/tags/chainguard-containers-report.md>), [chainguard-report](<https://devfeed.tech/tags/chainguard-report.md>), [developer-experience](<https://devfeed.tech/tags/developer-experience.md>), [developer-experience-report](<https://devfeed.tech/tags/developer-experience-report.md>), [engineering-reality](<https://devfeed.tech/tags/engineering-reality.md>), [engineering-reality-2025](<https://devfeed.tech/tags/engineering-reality-2025.md>), [productivity](<https://devfeed.tech/tags/productivity.md>), [report](<https://devfeed.tech/tags/report.md>), [secure-software](<https://devfeed.tech/tags/secure-software.md>), [security](<https://devfeed.tech/tags/security.md>), [software-engineer](<https://devfeed.tech/tags/software-engineer.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>)

### AI overview

Chainguard's 2026 Engineering Reality Report, based on a survey of 1,200 engineers and technology leaders, examines the modern developer experience. It finds that automation and AI are reducing repetitive work, while technical debt, maintenance, fragmented tooling, workflow disruption, burnout, and limited trust continue to constrain productivity. Engineers consistently want more time to build, and the article connects secure, integrated tools with innovation and business growth.

### Source excerpt

Chainguard surveyed 1,200 engineers and technology leaders to better understand the state of the developer experience today and where teams can improve.

## Jane Street's 2025 Intern Projects: SQL Evaluation, OCaml Torch Bindings, and Cross-Process Memory Management

DevFeed: [Jane Street's 2025 Intern Projects: SQL Evaluation, OCaml Torch Bindings, and Cross-Process Memory Management](<https://devfeed.tech/articles/what-the-interns-have-wrought-2025-edition-20240.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/wrought-2025/>)

Author: Yaron Minsky

Published: 2025-08-27T00: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>), [SQL](<https://devfeed.tech/topics/sql.md>), [torch](<https://devfeed.tech/topics/torch.md>), [Process](<https://devfeed.tech/topics/process.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [internship](<https://devfeed.tech/tags/internship.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [process](<https://devfeed.tech/tags/process.md>), [sql](<https://devfeed.tech/tags/sql.md>), [systems](<https://devfeed.tech/tags/systems.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>)

### AI overview

Jane Street's 2025 internship roundup highlights projects involving a more efficient evaluator for its internal JSQL dialect, OCaml torch bindings designed for safe and deterministic tensor cleanup, and ref-counted memory management across processes in trading systems. It also briefly describes other intern work in testing, build systems, CSS tooling, OCaml, data warehousing, and simulation.

### Source excerpt

Yet again, we're at the end of our internship season, and so it's time to summarize what the interns were up to!

## Finding unused targets with bazel

DevFeed: [Finding unused targets with bazel](<https://devfeed.tech/articles/finding-unused-targets-with-bazel-25411.md>)

Original publisher: [Read original article](<https://smileykeith.com/2025/03/24/unused-bazel-targets/>)

Author: Keith Smiley

Published: 2025-03-24T18:00:00Z

Content type: tutorial

Language: en

Sources: [Keith Smiley](<https://devfeed.tech/sources/keith-smiley.md>)

Topics: [Graphs](<https://devfeed.tech/topics/graphs.md>), [coding](<https://devfeed.tech/topics/coding.md>), [Code](<https://devfeed.tech/topics/code.md>), [toolchains](<https://devfeed.tech/topics/toolchains.md>)

Tags: [bazel](<https://devfeed.tech/tags/bazel.md>), [build](<https://devfeed.tech/tags/build.md>), [code](<https://devfeed.tech/tags/code.md>), [coding](<https://devfeed.tech/tags/coding.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [graph](<https://devfeed.tech/tags/graph.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>), [use-cases](<https://devfeed.tech/tags/use-cases.md>)

### AI overview

This article explains how to use bazel query to inspect a build graph and identify unused targets. It presents a query that subtracts dependencies of top-level targets from all first-party targets, then discusses handling edge cases with kind filters and special tags such as allow-unused. It also describes tagging toolchains and other targets whose dependencies should be treated as used.

### Source excerpt

Once you've fully migrated a codebase to bazel, one of the many advantages is that you can easily inspect your build graph using bazel query. One of the many things you can do with queries is write scripts to enforce coding standards, or in today's example, find unused targets that can lead to discovering unused code. The simplest version of this query starts like this: let all_targets = //... in let top_level_targets = tests($all_targets) union kind("(.*_binary) rule", $all_targets) in $all_targets - deps($top_level_targets) This initial version discovers all your first party targets, and then subtracts the dependencies of all "top level" targets, so that any remaining targets are considered unused. The idea of "top level" targets is better defined as: anything that you consider to be important enough that its dependencies are used. Depending on your codebase you might want to exclude test targets from this so that targets only in the dependencies of test targets are diagnosed as unused (this won't work if you have intentional testonly dependencies, although you could special case those as shown below). Once you have this initial query, you can start iterating in order to handle in edge cases. For example it's likely that you have some targets that aren't binaries or tests, but are considered used. There are 2 approaches I would recommend to handle this. First you can continue to build out the kind filter: kind("(.*_binary|platform|test_suite) rule", $all_targets) The downside with this approach is it can get unwieldy quickly. I like adding rules here that have many uses, but for other one off cases another approach you can use is to expand the query to look for special tags: let all_targets = //... in let top_level_targets = tests($all_targets) union kind("(.*_binary|platform|test_suite) rule", $all_targets) in let allowed_unused = attr(tags, allow-unused, $all_targets) in $all_targets - deps($top_level_targets) - $allowed_unused Then you can add tags = ["allow-un

## Using Renovate to update build JDK

DevFeed: [Using Renovate to update build JDK](<https://devfeed.tech/articles/using-renovate-to-update-build-jdk-20982.md>)

Original publisher: [Read original article](<https://jakewharton.com/using-renovate-to-update-build-jdk/>)

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

Content type: tutorial

Language: en

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

Topics: [Java](<https://devfeed.tech/topics/java.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [JSON](<https://devfeed.tech/topics/json.md>), [Development](<https://devfeed.tech/topics/development.md>), [Homebrew](<https://devfeed.tech/topics/homebrew.md>), [toolchains](<https://devfeed.tech/topics/toolchains.md>)

Tags: [build](<https://devfeed.tech/tags/build.md>), [ci](<https://devfeed.tech/tags/ci.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [java](<https://devfeed.tech/tags/java.md>), [jdk](<https://devfeed.tech/tags/jdk.md>), [json](<https://devfeed.tech/tags/json.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [renovate](<https://devfeed.tech/tags/renovate.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>), [update](<https://devfeed.tech/tags/update.md>)

### AI overview

This article explains how to use Renovate to keep the JDK used by a GitHub Actions CI build updated automatically. It moves the Java version into a .github/.java-version file, configures setup-java to read that file, and adds a custom regex manager in renovate.json to update the file. The approach allows local development with the latest JDK while preserving compatibility with older Java versions for targeting and testing.

### Source excerpt

You want to be using the latest JDK for development. Don't use Gradle toolchains, they'll needlessly force you to use old JDKs. You can still target and test on old JVM versions but develop with the latest and greatest. Java and the JDK are literally built for this. Locally this hasn't been a problem. Homebrew (or your favorite equivalent) will keep your default JDK at the latest. Keeping my GitHub actions up-to-date, however, frequently slips my mind. I find projects using 19 or 20 simply because I haven't touched the CI build in the two years since 19 or 20 was the latest. We're already using Renovate to keep dependencies up to date. With a little extra programming in JSON (wince) we can have the JDK version updated to latest as well. First, migrate the existing build JDK version in your GitHub Action to a .github/.java-version file1. 21 Next, change the setup-java action to use this file rather than a hard-coded version. - uses: actions/setup-java@v4 with: distribution: 'zulu' - java-version: 21 + java-version-file: .github/.java-version Finally, in your renovate.json52, add a custom manager to update this file3. ignorePresets: [ // Ensure we get the latest version and are not pinned to old versions. 'workarounds:javaLTSVersions', ], customManagers: [ // Update .java-version file with the latest JDK version. { customType: 'regex', fileMatch: [ '\\.java-version$', ], matchStrings: [ '(?<currentValue>.*)\\n', ], datasourceTemplate: 'java-version', depNameTemplate: 'java', // Only write the major version. extractVersionTemplate: '^(?<version>\\d+)', }, ], Commit, push, and wait for Renovate to send you a PR4. Now your CI build automatically tracks the latest JDK. I'm putting the .java-version file into the .github/ folder because I don't want to force this version on people using jenv or the like. The whole point of this setup is you can build with any version of Java newer than our very, very old baseline of Java 8 (although things like Gradle have a higher minimum

## Gradle toolchains are rarely a good idea

DevFeed: [Gradle toolchains are rarely a good idea](<https://devfeed.tech/articles/gradle-toolchains-are-rarely-a-good-idea-20938.md>)

Original publisher: [Read original article](<https://jakewharton.com/gradle-toolchains-are-rarely-a-good-idea/>)

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

Content type: opinion

Language: en

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

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [toolchains](<https://devfeed.tech/topics/toolchains.md>), [Java](<https://devfeed.tech/topics/java.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Homebrew](<https://devfeed.tech/topics/homebrew.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>)

Tags: [ci](<https://devfeed.tech/tags/ci.md>), [containers](<https://devfeed.tech/tags/containers.md>), [go](<https://devfeed.tech/tags/go.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [java](<https://devfeed.tech/tags/java.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>)

### AI overview

The article argues that Gradle Java toolchains are often counterproductive. Using an old JDK can produce outdated, non-searchable Javadoc, ignore container resource limits, and increase the risk of compiler and JVM bugs. The author recommends building with a modern JDK while controlling the target language level through compiler configuration, and keeping installed JDKs up to date.

### Source excerpt

The last post featured some Kotlin code inadvertently targeting a new Java API when the build JDK was bumped to 21. This can be solved with the -Xjdk-release Kotlin compiler flag, or by using Gradle toolchains to build with an old JDK. If you read the Gradle docs... Using Java toolchains is a preferred way to target a language version ...or the Android docs... We recommend that you always specify the Java toolchain ...you wouldn't be blamed for thinking Java toolchains are the way to go! However, Java toolchains are rarely a good idea. Let's look at why. Bad docs Last week I released a new version of Retrofit which uses a Java toolchain to target Java 8. Its use of toolchains was contributed a while ago, and I simply forgot to remove it. As a consequence, its Javadoc was built using JDK 8 and is thus not searchable. Searchable Javadoc came in JEP 225 with JDK 9. The next release of Retrofit will be made without a toolchain and with the latest JDK. Its docs will have all the Javadoc advancements from the last 10 years including search and better modern HTML/CSS. Resource ignorance Old JVMs were somewhat notorious for being ignorant to resource limitations imposed by the system. The rise of containers, especially on CI systems, means your process resource limits are different from those of the host OS. JDK 10 kicked things into high gear with cgroups support and JDK 15 extended that to cgroups2. Both of those changes were backported to the 8 and 11 branches, but since Gradle toolchains will use an already-installed JDK if available you have to have kept your JDK 8 and/or JDK 11 up-to-date. Have you? Not to stray too far off-topic, but if you installed it with SDKMAN! or similar JDK management tools there's a good chance it's wildly out of date. I keep all my JDKs up-to-date by installing them through a Homebrew tap which itself updates automatically using the Azul Zulu API. As long as I do a brew upgrade every so often, each major JDK release that I have installed will be upd

## Building with nightly Swift toolchains on macOS

DevFeed: [Building with nightly Swift toolchains on macOS](<https://devfeed.tech/articles/building-with-nightly-swift-toolchains-on-macos-21725.md>)

Original publisher: [Read original article](<https://oleb.net/2024/swift-toolchains/>)

Author: Ole Begemann

Published: 2024-03-05T18:54:44Z

Content type: tutorial

Language: en

Sources: [Ole Begemann](<https://devfeed.tech/sources/ole-begemann.md>)

Topics: [Swift](<https://devfeed.tech/topics/swift.md>), [toolchains](<https://devfeed.tech/topics/toolchains.md>), [macOS](<https://devfeed.tech/topics/macos.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [Package manager](<https://devfeed.tech/topics/package-manager.md>)

Tags: [command-line](<https://devfeed.tech/tags/command-line.md>), [macos](<https://devfeed.tech/tags/macos.md>), [swift](<https://devfeed.tech/tags/swift.md>), [swift-package-manager](<https://devfeed.tech/tags/swift-package-manager.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

A practical guide to installing and selecting nightly Swift compiler toolchains on macOS. It covers using custom toolchains in Xcode and from the command line, including the TOOLCHAINS environment variable and bundle IDs. The article also notes limitations such as unsupported playgrounds, built-in Swift Package Manager behavior, and App Store submission restrictions.

### Source excerpt

The Swift website provides nightly builds of the Swift compiler (called toolchains) for download. Building with a nightly compiler can be useful if you want to check if a bug has already been fixed on main, or if you want to experiment with upcoming language features such as Embedded Swift, as I've been doing lately. A toolchain is distributed as a .pkg installer that installs itself into /Library/Developer/Toolchains (or the equivalent path in your home directory). After installation, you have several options to select the toolchain you want to build with: In Xcode In Xcode, select the toolchain from the main menu (Xcode > Toolchains), then build and/or run your code normally. Not all Xcode features work with a custom toolchain. For example, playgrounds don't work, and Xcode will always use its built-in copy of the Swift Package Manager, so you won't be able to use unreleased SwiftPM features in this way. Also, Apple won't accept apps built with a non-standard toolchain for submission to the App Store. On the command line When building on the command line there are multiple options, depending on your preferences and what tool you want to use. The TOOLCHAINS environment variable All of the various Swift build tools respect the TOOLCHAINS environment variable. This should be set to the desired toolchain's bundle ID, which you can find in the Info.plist file in the toolchain's directory. Example (I'm using a nightly toolchain from 2024-03-03 here): # My normal Swift version is 5.10 $ swift --version swift-driver version: 1.90.11.1 Apple Swift version 5.10 (swiftlang-5.10.0.13 clang-1500.3.9.4) # Make sure xcode-select points to Xcode, not to /Library/Developer/CommandLineTools # The Command Line Tools will ignore the TOOLCHAINS variable. $ xcode-select --print-path /Applications/Xcode.app/Contents/Developer # The nightly toolchain is 6.0-dev $ export TOOLCHAINS=org.swift.59202403031a $ swift --version Apple Swift version 6.0-dev (LLVM 0c7823cab15dec9, Swift 0cc0590933

## Dev Mode: Building a design tool that works harder for developers

DevFeed: [Dev Mode: Building a design tool that works harder for developers](<https://devfeed.tech/articles/dev-mode-building-a-design-tool-that-works-harder-for-developers-9804.md>)

Original publisher: [Read original article](<https://www.figma.com/blog/how-we-built-dev-mode/>)

Author: Alia Fite

Published: 2023-11-22T00:00:00Z

Content type: article

Language: en

Sources: [Figma Blog](<https://devfeed.tech/sources/figma-blog.md>)

Topics: [Figma](<https://devfeed.tech/topics/figma.md>), [developer tooling](<https://devfeed.tech/topics/developer-tooling.md>), [toolchains](<https://devfeed.tech/topics/toolchains.md>), [React](<https://devfeed.tech/topics/react.md>), [Code generation](<https://devfeed.tech/topics/code-generation.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [developer-tooling](<https://devfeed.tech/tags/developer-tooling.md>), [developers](<https://devfeed.tech/tags/developers.md>), [development](<https://devfeed.tech/tags/development.md>), [figma](<https://devfeed.tech/tags/figma.md>), [product-design](<https://devfeed.tech/tags/product-design.md>), [react](<https://devfeed.tech/tags/react.md>), [tool](<https://devfeed.tech/tags/tool.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>), [workflows](<https://devfeed.tech/tags/workflows.md>)

### AI overview

Figma describes how its Dev Mode team built a developer-focused experience within the design tool. The team moved away from a code-generation-first approach, studied developer workflows and toolchains, and accelerated development through its 2021 acquisition of Visly, whose team had built a tool for developing UI components in React.

### Source excerpt

How do you create a home for developers in a design tool? The Dev Mode team shares their early pivot away from a codegen-first approach, the acquisition that accelerated their efforts, and what it means to break down the handoff wall.

## Announcing Lit 3.0 Pre-releases

DevFeed: [Announcing Lit 3.0 Pre-releases](<https://devfeed.tech/articles/announcing-lit-3-0-pre-releases-3519.md>)

Original publisher: [Read original article](<https://lit.dev/blog/2023-05-15-lit-3.0-prerelease/>)

Author: Justin Fagnani

Published: 2023-05-15T00:00:00Z

Content type: release

Language: en

Sources: [Lit Blog](<https://devfeed.tech/sources/lit-blog.md>)

Topics: [releases](<https://devfeed.tech/topics/releases.md>), [Web Components](<https://devfeed.tech/topics/web-components.md>), [Web](<https://devfeed.tech/topics/web.md>), [npm](<https://devfeed.tech/topics/npm.md>), [toolchains](<https://devfeed.tech/topics/toolchains.md>), [interoperability](<https://devfeed.tech/topics/interoperability.md>), [Server-side rendering](<https://devfeed.tech/topics/server-side-rendering.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [compatibility](<https://devfeed.tech/tags/compatibility.md>), [interoperability](<https://devfeed.tech/tags/interoperability.md>), [npm](<https://devfeed.tech/tags/npm.md>), [packages](<https://devfeed.tech/tags/packages.md>), [pre-release](<https://devfeed.tech/tags/pre-release.md>), [release](<https://devfeed.tech/tags/release.md>), [releases](<https://devfeed.tech/tags/releases.md>), [ssr](<https://devfeed.tech/tags/ssr.md>), [testing](<https://devfeed.tech/tags/testing.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>), [tooling](<https://devfeed.tech/tags/tooling.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>)

### AI overview

The Lit team announces the first Lit 3.0 pre-releases. This major version introduces a small set of breaking changes focused on browser support, deprecated APIs, package publishing, and SSR hydration modules, while adding no new features. Lit 2.x users without deprecation warnings should generally have a seamless upgrade, although some may need newer tooling because Lit's npm modules are now published as ES2021.

### Source excerpt

Get an early look at the upcoming Lit 3.0 release.

## Google's Fully Homomorphic Encryption Compiler -- A Primer

DevFeed: [Google's Fully Homomorphic Encryption Compiler -- A Primer](<https://devfeed.tech/articles/google-s-fully-homomorphic-encryption-compiler-a-primer-40462.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2023/02/13/googles-fully-homomorphic-encryption-compiler-a-primer/>)

Published: 2023-02-13T11:34:01Z

Content type: article

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [homomorphic encryption](<https://devfeed.tech/topics/homomorphic-encryption.md>), [FHE](<https://devfeed.tech/topics/fhe.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Google](<https://devfeed.tech/topics/google.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [toolchain](<https://devfeed.tech/topics/toolchain.md>)

Tags: [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [circuit](<https://devfeed.tech/tags/circuit.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [encryption](<https://devfeed.tech/tags/encryption.md>), [fhe](<https://devfeed.tech/tags/fhe.md>), [github](<https://devfeed.tech/tags/github.md>), [google](<https://devfeed.tech/tags/google.md>), [homomorphic-encryption](<https://devfeed.tech/tags/homomorphic-encryption.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>)

### AI overview

This primer introduces Google's open-source fully homomorphic encryption compiler for C++. It explains how the compiler transforms supported plaintext C++ programs into programs that operate on encrypted data, and briefly discusses its internals, optimization passes, and circuit-based toolchain model.

### Source excerpt

Back in May of 2022 I transferred teams at Google to work on Fully Homomorphic Encryption (newsletter announcement). Since then I've been working on a variety of projects in the space, including being the primary maintainer on github.com/google/fully-homomorphic-encryption, which is an open source FHE compiler for C++. This article will be an introduction to how to use it to compile programs to FHE, as well as a quick overview of its internals.

## Build on latest Java, test through lowest Java

DevFeed: [Build on latest Java, test through lowest Java](<https://devfeed.tech/articles/build-on-latest-java-test-through-lowest-java-20920.md>)

Original publisher: [Read original article](<https://jakewharton.com/build-on-latest-java-test-through-lowest-java/>)

Published: 2022-05-17T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [ci](<https://devfeed.tech/topics/ci.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Java](<https://devfeed.tech/topics/java.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [toolchains](<https://devfeed.tech/topics/toolchains.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [ci](<https://devfeed.tech/tags/ci.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [java](<https://devfeed.tech/tags/java.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [testing](<https://devfeed.tech/tags/testing.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>), [verification](<https://devfeed.tech/tags/verification.md>)

### AI overview

This article explains how to use Gradle toolchains to compile a Java project once with the latest Java version while running tests across every supported version down to the lowest. The approach reduces CI workload and is especially useful for projects whose behavior or API usage varies by Java version.

### Source excerpt

In the past, when a new version of Java was released, I would add that version to our open source project's CI builds. strategy: matrix: java-version: - 8 - 9 ⋮ - 17 + - 18 This ensures that each project can be built and its tests pass on every major version. But this makes no sense! No user is building these projects on different versions. No user is building these projects at all. Consumers are using the pre-built .jar which we ship to Maven Central built on a single version. Testing on every version, however, is something extremely valuable. Thankfully, Gradle toolchains let us retain this while still only building once. First, CI only has to build on a single version. We choose the latest because Java has excellent cross-compilation capabilities, and we want to be using the latest tools. - uses: actions/setup-java@v2 with: distribution: 'zulu' - java-version: ${{ matrix.java-version }} + java-version: 18 Second, unchanged from before, we still target whichever Java version is the lowest supported through either the --release flag or sourceCompatibility/targetCompatibility per the Gradle docs. And finally, we set up tests to run on every supported version. // Normal test task runs on compile JDK. (8..17).each { majorVersion -> def jdkTest = tasks.register("testJdk$majorVersion", Test) { javaLauncher = javaToolchains.launcherFor { languageVersion = JavaLanguageVersion.of(majorVersion) } description = "Runs the test suite on JDK $majorVersion" group = LifecycleBasePlugin.VERIFICATION_GROUP // Copy inputs from normal Test task. def testTask = tasks.getByName("test") classpath = testTask.classpath testClassesDirs = testTask.testClassesDirs } tasks.named("check").configure { dependsOn(jdkTest) } } This setup reduces CI burden since we only compile the main and test sources once but execute the tests on every supported version from latest to lowest. Verification tasks ------------------ check - Runs all checks. test - Runs the test suite. testJdk10 - Runs the test sui

## How to Integrate Just-In-Time Access Requests into Your DevOps Workflow

DevFeed: [How to Integrate Just-In-Time Access Requests into Your DevOps Workflow](<https://devfeed.tech/articles/how-to-integrate-just-in-time-access-requests-into-your-devops-workflow-29725.md>)

Original publisher: [Read original article](<https://goteleport.com/blog/just-in-time-access-request/>)

Author: info@goteleport.com (Steven Martin)

Published: 2021-11-11T00:00:00Z

Content type: tutorial

Language: en

Sources: [Teleport](<https://devfeed.tech/sources/teleport.md>)

Topics: [DevOps](<https://devfeed.tech/topics/devops.md>), [Zero Trust](<https://devfeed.tech/topics/zero-trust.md>), [certificates](<https://devfeed.tech/topics/certificates.md>), [toolchains](<https://devfeed.tech/topics/toolchains.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [Slack](<https://devfeed.tech/topics/slack.md>), [email](<https://devfeed.tech/topics/email.md>), [GitLab](<https://devfeed.tech/topics/gitlab.md>), [Amazon EC2](<https://devfeed.tech/topics/amazon-ec2.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [aws](<https://devfeed.tech/tags/aws.md>), [containers](<https://devfeed.tech/tags/containers.md>), [devops](<https://devfeed.tech/tags/devops.md>), [email](<https://devfeed.tech/tags/email.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [implement](<https://devfeed.tech/tags/implement.md>), [jira](<https://devfeed.tech/tags/jira.md>), [least-privilege](<https://devfeed.tech/tags/least-privilege.md>), [on-call](<https://devfeed.tech/tags/on-call.md>), [organization](<https://devfeed.tech/tags/organization.md>), [pagerduty](<https://devfeed.tech/tags/pagerduty.md>), [request](<https://devfeed.tech/tags/request.md>), [server](<https://devfeed.tech/tags/server.md>), [speed](<https://devfeed.tech/tags/speed.md>), [ssh](<https://devfeed.tech/tags/ssh.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>), [workflow](<https://devfeed.tech/tags/workflow.md>), [zero-trust](<https://devfeed.tech/tags/zero-trust.md>)

### AI overview

This tutorial explains how Teleport Access Requests provide temporary elevated infrastructure access for DevOps workflows. It covers approval through command-line, web console, and plugins such as Slack, PagerDuty, Jira, Email, and GitLab, with short-lived certificates reverting to default roles after the access period.

### Source excerpt

Just-in-time access requests enable DevOps teams to implement least privilege without introducing roadblocks to productivity. This post shows you how to get started.

## Introducing Java toolchains

DevFeed: [Introducing Java toolchains](<https://devfeed.tech/articles/introducing-java-toolchains-24661.md>)

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

Author: Louis Jacomet

Published: 2020-10-30T04:00:00Z

Content type: tutorial

Language: en

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

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [Java](<https://devfeed.tech/topics/java.md>), [toolchains](<https://devfeed.tech/topics/toolchains.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [build](<https://devfeed.tech/tags/build.md>), [compilation](<https://devfeed.tech/tags/compilation.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [install](<https://devfeed.tech/tags/install.md>), [installation](<https://devfeed.tech/tags/installation.md>), [java](<https://devfeed.tech/tags/java.md>), [jdk](<https://devfeed.tech/tags/jdk.md>), [project](<https://devfeed.tech/tags/project.md>), [run](<https://devfeed.tech/tags/run.md>), [test](<https://devfeed.tech/tags/test.md>), [testing](<https://devfeed.tech/tags/testing.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>)

### AI overview

This article introduces Java toolchain support in Gradle 6.7. It explains how to declare a project's required Java version in one place so Gradle can use that version for compilation, testing, documentation, and application execution, while allowing Gradle itself to run with another installed Java version. Gradle can detect suitable JDK installations and download a required JDK when necessary.

### Source excerpt

Building a Java project and running Gradle both require the installation of a JDK. Most Gradle users conveniently use the Java installation that is running Gradle to build and test their application. While this is acceptable in simple cases, there are a number of issues with this approach. For example, if a build requires the same Java version to be used on all machines, each developer needs to know about that requirement and install that version manually. It has been possible to configure Gradle to build a project with a different Java version than the one used to run Gradle. However, it has required configuring each task like compilation, test, and javadoc separately. Gradle 6.7 introduces "Java toolchain support". In a nutshell, it allows you to run Gradle with whatever version of Java you have installed, while Gradle builds the project with the version of Java declared in a single place. Gradle will automatically configure the build, detect already installed JDKs and download the required JDK if it is not already installed. No more release or sourceCompatibility tweaks, no more wiki pages describing which JDK you should install for the build to work. The advantages are tremendous, let's see how to use this! Introducing Java toolchains support Java toolchains support enables build authors to declare which Java version their project requires for compiling, testing and running their code. Project wide configuration Let's start with what you, as a build author, need to do, at the minimum: plugins { id("java-library") // or id("application") } java { toolchain { languageVersion.set(JavaLanguageVersion.of(11)) } } And that's it! What do you get with the above in Gradle 6.7? You get: All Java compilation tasks will use Java 11 to build. That means code in the main and test source sets, but also Java code in any custom source set you add, will be built with the configured Java version. All tests tasks, including the default test task and any additional custom Test task,

## On GitHub Actions with MSYS2

DevFeed: [On GitHub Actions with MSYS2](<https://devfeed.tech/articles/on-github-actions-with-msys2-27451.md>)

Original publisher: [Read original article](<https://ariya.io/2020/07/on-github-actions-with-msys2/>)

Published: 2020-08-01T03:33:31Z

Content type: tutorial

Language: en

Sources: [Ariya Hidayat](<https://devfeed.tech/sources/ariya-hidayat.md>)

Topics: [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [C](<https://devfeed.tech/topics/c.md>), [gcc](<https://devfeed.tech/topics/gcc.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [toolchain](<https://devfeed.tech/topics/toolchain.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [Shell](<https://devfeed.tech/topics/shell.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [c](<https://devfeed.tech/tags/c.md>), [clang](<https://devfeed.tech/tags/clang.md>), [compilers](<https://devfeed.tech/tags/compilers.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [github](<https://devfeed.tech/tags/github.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>), [windows](<https://devfeed.tech/tags/windows.md>), [yaml](<https://devfeed.tech/tags/yaml.md>)

### AI overview

A practical guide to using GitHub Actions with MSYS2 to build an ANSI C program on Windows. It shows configurations for GCC and Clang, then uses matrix parameters to cover both i686 and AMD64 architectures.

### Source excerpt

Thanks to the complete GitHub Actions for MSYS2, it is easier than ever to construct a continuous integration setup for building with compilers and toolchains which can run on MSYS2.

## Cross-compiling with musl Toolchains

DevFeed: [Cross-compiling with musl Toolchains](<https://devfeed.tech/articles/cross-compiling-with-musl-toolchains-27450.md>)

Original publisher: [Read original article](<https://ariya.io/2020/06/cross-compiling-with-musl-toolchains/>)

Published: 2020-06-22T12:37:59Z

Content type: tutorial

Language: en

Sources: [Ariya Hidayat](<https://devfeed.tech/sources/ariya-hidayat.md>)

Topics: [Cross-Compilation](<https://devfeed.tech/topics/cross-compilation.md>), [toolchains](<https://devfeed.tech/topics/toolchains.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Zig](<https://devfeed.tech/topics/zig.md>), [C](<https://devfeed.tech/topics/c.md>), [qemu](<https://devfeed.tech/topics/qemu.md>), [ci](<https://devfeed.tech/topics/ci.md>), [make](<https://devfeed.tech/topics/make.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [cross-compilation](<https://devfeed.tech/tags/cross-compilation.md>), [docker](<https://devfeed.tech/tags/docker.md>), [linux](<https://devfeed.tech/tags/linux.md>), [make](<https://devfeed.tech/tags/make.md>), [mips](<https://devfeed.tech/tags/mips.md>), [qemu](<https://devfeed.tech/tags/qemu.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>), [windows](<https://devfeed.tech/tags/windows.md>), [x86](<https://devfeed.tech/tags/x86.md>)

### AI overview

A tutorial on using static musl-based toolchains to cross-compile command-line programs for multiple targets, including MIPS and Windows, from a Linux x86-64 host. It also covers testing non-native binaries with QEMU and migrating FastLZ continuous integration to musl.cc.

### Source excerpt

When working on command-line utilities which can be useful for various platforms, from Windows on x86 to Linux on MIPS, the existence of a cross-compilation is highly attractive. A number of different binaries can be constructed conveniently from a single, typically powerful host system.

## Shipping Binary Frameworks With Swift 5.0

DevFeed: [Shipping Binary Frameworks With Swift 5.0](<https://devfeed.tech/articles/shipping-binary-frameworks-with-swift-5-0-15851.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/shipping-binary-frameworks-with-swift-5-0>)

Author: Chris Williams

Published: 2019-05-31T09:00:00Z

Content type: tutorial

Language: en

Sources: [Square Corner Blog](<https://devfeed.tech/sources/square-corner-blog-medium.md>), [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [Swift](<https://devfeed.tech/topics/swift.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [Objective-C](<https://devfeed.tech/topics/objective-c.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>)

Tags: [binaries](<https://devfeed.tech/tags/binaries.md>), [bridge](<https://devfeed.tech/tags/bridge.md>), [bridging](<https://devfeed.tech/tags/bridging.md>), [compatibility](<https://devfeed.tech/tags/compatibility.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [objective-c](<https://devfeed.tech/tags/objective-c.md>), [swift](<https://devfeed.tech/tags/swift.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

This tutorial explains how to ship binary frameworks with Swift 5.0. It covers ABI stability, the future role of module stability, and using Objective-C bridging to provide a more stable interface across Swift toolchain versions.

### Source excerpt

How to get a binary framework shipped with Swift 5.0