# merge

Published articles for merge.

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

## How we shipped a production API out of one Slack thread

DevFeed: [How we shipped a production API out of one Slack thread](<https://devfeed.tech/articles/how-we-shipped-a-production-api-out-of-one-slack-thread-16061.md>)

Original publisher: [Read original article](<https://workos.com/blog/shipping-a-production-api-from-one-slack-thread>)

Author: WorkOS

Published: 2026-08-27T14:09:14Z

Content type: article

Language: en

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

Topics: [API](<https://devfeed.tech/topics/api.md>), [Slack](<https://devfeed.tech/topics/slack.md>), [CRUD](<https://devfeed.tech/topics/crud.md>)

Tags: [agents](<https://devfeed.tech/tags/agents.md>), [api](<https://devfeed.tech/tags/api.md>), [merge](<https://devfeed.tech/tags/merge.md>), [production](<https://devfeed.tech/tags/production.md>), [pull-requests](<https://devfeed.tech/tags/pull-requests.md>), [rest](<https://devfeed.tech/tags/rest.md>), [security](<https://devfeed.tech/tags/security.md>), [slack](<https://devfeed.tech/tags/slack.md>)

### AI overview

WorkOS describes how its IT Contact API was shipped from a single Slack thread. Humans made product and design decisions and gated the merge, while agents handled tickets, pull requests, review responses, and merges. The discussion shaped the API from an initial RPC proposal toward REST and resolved security, deletion, and duplicate-creation questions.

### Source excerpt

The WorkOS IT Contact API went live on August 18 out of a single Slack thread. Humans made the decisions and gated the merge; agents did everything else.

## Broken Systems Don't Need More Developers

DevFeed: [Broken Systems Don't Need More Developers](<https://devfeed.tech/articles/broken-systems-don-t-need-more-developers-26194.md>)

Original publisher: [Read original article](<https://journal.optivem.com/p/you-cant-fix-a-broken-system-by-adding-more-developers>)

Author: Valentina Jemuović

Published: 2026-07-14T09:12:34Z

Content type: opinion

Language: en

Sources: [Optivem Journal](<https://devfeed.tech/sources/optivem-journal.md>)

Topics: [systems](<https://devfeed.tech/topics/systems.md>), [legacy](<https://devfeed.tech/topics/legacy.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Test-driven development](<https://devfeed.tech/topics/tdd.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [code-reviews](<https://devfeed.tech/tags/code-reviews.md>), [developers](<https://devfeed.tech/tags/developers.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [legacy](<https://devfeed.tech/tags/legacy.md>), [legacy-code](<https://devfeed.tech/tags/legacy-code.md>), [meetings](<https://devfeed.tech/tags/meetings.md>), [merge](<https://devfeed.tech/tags/merge.md>), [onboarding](<https://devfeed.tech/tags/onboarding.md>)

### AI overview

Adding developers to a tightly coupled legacy system may slow progress because onboarding, interruptions, meetings, code reviews, and merge conflicts increase. The article argues that architecture, rather than team size, is the main bottleneck.

### Source excerpt

If four developers aren't delivering fast enough, why not make it eight?

## Hidden Gems: Part 4

DevFeed: [Hidden Gems: Part 4](<https://devfeed.tech/articles/hidden-gems-part-4-13489.md>)

Original publisher: [Read original article](<https://zed.dev/blog/hidden-gems-part-4>)

Author: Joseph Lyons

Published: 2026-06-23T00:00:00Z

Content type: tutorial

Language: en

Sources: [Zed Industries - Blog](<https://devfeed.tech/sources/zed-industries-blog.md>)

Topics: [GUI](<https://devfeed.tech/topics/gui.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Terminal](<https://devfeed.tech/topics/terminal.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [macOS](<https://devfeed.tech/topics/macos.md>), [Windows](<https://devfeed.tech/topics/windows.md>)

Tags: [command-line](<https://devfeed.tech/tags/command-line.md>), [merge](<https://devfeed.tech/tags/merge.md>), [projects](<https://devfeed.tech/tags/projects.md>), [terminal](<https://devfeed.tech/tags/terminal.md>), [workflows](<https://devfeed.tech/tags/workflows.md>)

### AI overview

A collection of Zed workflows and lesser-known features covers centered editor layouts, navigating projects, worktrees and branches with keybindings, and configuring Zed as an interactive terminal editor.

### Source excerpt

Favorite workflows and hidden features from the Zed team and community.

## Git sync & workspace forks: your entire workspace, version controlled

DevFeed: [Git sync & workspace forks: your entire workspace, version controlled](<https://devfeed.tech/articles/git-sync-workspace-forks-your-entire-workspace-version-controlled-30720.md>)

Original publisher: [Read original article](<https://www.windmill.dev/blog/launch-week-git-sync>)

Author: Tristan Lécuyer

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

Content type: release

Language: en

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

Topics: [Git](<https://devfeed.tech/topics/git.md>), [version-control](<https://devfeed.tech/topics/version-control.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [GitLab](<https://devfeed.tech/topics/gitlab.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [azure](<https://devfeed.tech/tags/azure.md>), [bitbucket](<https://devfeed.tech/tags/bitbucket.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [fork](<https://devfeed.tech/tags/fork.md>), [git](<https://devfeed.tech/tags/git.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [launch-week](<https://devfeed.tech/tags/launch-week.md>), [merge](<https://devfeed.tech/tags/merge.md>), [pipelines](<https://devfeed.tech/tags/pipelines.md>), [repository](<https://devfeed.tech/tags/repository.md>), [review](<https://devfeed.tech/tags/review.md>), [rollback](<https://devfeed.tech/tags/rollback.md>), [sync](<https://devfeed.tech/tags/sync.md>)

### AI overview

Windmill introduces redesigned bidirectional Git sync and workspace forks. Git sync commits and pushes deployed items to a configured repository and can pull updates from Git, while forks provide isolated feature-development workspaces with deployment, merge, and Git-based workflows.

### Source excerpt

Introducing improved Git sync and workspace forks: sync workspaces to Git, fork for feature development, and deploy via CI/CD.

## Building an LSM Storage Engine from Scratch in Rust

DevFeed: [Building an LSM Storage Engine from Scratch in Rust](<https://devfeed.tech/articles/building-strata-39414.md>)

Original publisher: [Read original article](<https://n8z.dev/posts/building-strata/>)

Author: Nevin Zheng

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

Content type: opinion

Language: en

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

Topics: [Rust](<https://devfeed.tech/topics/rust.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [compaction](<https://devfeed.tech/tags/compaction.md>), [data-structures](<https://devfeed.tech/tags/data-structures.md>), [database](<https://devfeed.tech/tags/database.md>), [merge](<https://devfeed.tech/tags/merge.md>), [mvcc](<https://devfeed.tech/tags/mvcc.md>), [rust](<https://devfeed.tech/tags/rust.md>), [storage](<https://devfeed.tech/tags/storage.md>), [storage-engine](<https://devfeed.tech/tags/storage-engine.md>)

### AI overview

A personal engineering account of building an LSM storage engine from scratch in Rust. The author discusses choosing LSM trees, prioritizing correctness and developer experience, versioning keys for possible MVCC exploration, and considering key-value separation to reduce compaction costs.

### Source excerpt

Building my own perfectly imperfect LSM storage engine from scratch in Rust.

## In praise of the stacked pull request

DevFeed: [In praise of the stacked pull request](<https://devfeed.tech/articles/in-praise-of-the-stacked-pull-request-37629.md>)

Original publisher: [Read original article](<https://swizec.com/blog/in-praise-of-the-stacked-pull-request>)

Author: hi@swizec.com (Swizec Teller)

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

Content type: opinion

Language: en

Sources: [Swizec Teller](<https://devfeed.tech/sources/swizec-teller.md>)

Topics: [stacked pull requests](<https://devfeed.tech/topics/stacked-pull-requests.md>), [Code review](<https://devfeed.tech/topics/code-review.md>), [Code quality](<https://devfeed.tech/topics/code-quality.md>), [Development](<https://devfeed.tech/topics/development.md>), [Git](<https://devfeed.tech/topics/git.md>)

Tags: [code-quality](<https://devfeed.tech/tags/code-quality.md>), [code-review](<https://devfeed.tech/tags/code-review.md>), [git](<https://devfeed.tech/tags/git.md>), [merge](<https://devfeed.tech/tags/merge.md>), [pull-request](<https://devfeed.tech/tags/pull-request.md>), [queue](<https://devfeed.tech/tags/queue.md>), [soc2](<https://devfeed.tech/tags/soc2.md>), [stacked-pull-requests](<https://devfeed.tech/tags/stacked-pull-requests.md>), [team](<https://devfeed.tech/tags/team.md>), [velocity](<https://devfeed.tech/tags/velocity.md>)

### AI overview

An opinion piece argues that stacked pull requests help teams work on larger or dependent changes without creating oversized, difficult-to-review pull requests. It presents small, independent, testable pull requests as units of work that can be reviewed and merged incrementally.

### Source excerpt

How fast you do code review is how fast you do everything. Your PR queue is the leading indicator of team velocity. Stacked PRs can help.

## Waiting for PostgreSQL 19 - Implement ALTER TABLE ... MERGE/SPLIT PARTITIONS ... command

DevFeed: [Waiting for PostgreSQL 19 - Implement ALTER TABLE ... MERGE/SPLIT PARTITIONS ... command](<https://devfeed.tech/articles/waiting-for-postgresql-19-implement-alter-table-merge-split-partitions-command-33671.md>)

Original publisher: [Read original article](<https://www.depesz.com/2026/01/04/waiting-for-postgresql-19-implement-alter-table-merge-split-partitions-command/>)

Author: depesz

Published: 2026-01-04T17:30:47Z

Content type: opinion

Language: en

Sources: [select \* from depesz;](<https://devfeed.tech/sources/select-from-depesz.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [function](<https://devfeed.tech/topics/function.md>)

Tags: [command](<https://devfeed.tech/tags/command.md>), [locking](<https://devfeed.tech/tags/locking.md>), [merge](<https://devfeed.tech/tags/merge.md>), [partition](<https://devfeed.tech/tags/partition.md>), [partitioning](<https://devfeed.tech/tags/partitioning.md>), [partitions](<https://devfeed.tech/tags/partitions.md>), [pg19](<https://devfeed.tech/tags/pg19.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [split](<https://devfeed.tech/tags/split.md>), [uncategorized](<https://devfeed.tech/tags/uncategorized.md>), [waiting](<https://devfeed.tech/tags/waiting.md>)

### AI overview

A PostgreSQL 19 development update describes the ALTER TABLE command for merging and splitting partitions. The patch was rolled back after earlier discussion, then recommitted; testing showed it worked as expected, with slightly less locking observed. Further changes may be needed before the feature reaches the final release.

### Source excerpt

Important update This has been rolled back after some discussion. On 14th of December 2025, Alexander Korotkov committed patch: Implement ALTER TABLE ... MERGE PARTITIONS ... command This new DDL command merges several partitions into a single partition of the target table. The target partition is created using the new createPartitionTable() function with the ... Continue reading "Waiting for PostgreSQL 19 - Implement ALTER TABLE ... MERGE/SPLIT PARTITIONS ... command"

## Postgres 18 Is Out: Try it on Neon

DevFeed: [Postgres 18 Is Out: Try it on Neon](<https://devfeed.tech/articles/postgres-18-is-out-try-it-on-neon-5726.md>)

Original publisher: [Read original article](<https://neon.com/blog/postgres-18>)

Author: Bryan Clark

Published: 2025-09-25T18:54:37Z

Content type: article

Language: en

Sources: [Blog -- Neon Docs](<https://devfeed.tech/sources/blog-neon-docs.md>)

Topics: [Database](<https://devfeed.tech/topics/database.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [Query (disambiguation)](<https://devfeed.tech/topics/query.md>), [Developer experience](<https://devfeed.tech/topics/developer-experience.md>), [Structured-data](<https://devfeed.tech/topics/structured-data.md>), [Cache](<https://devfeed.tech/topics/cache.md>)

Tags: [analytics](<https://devfeed.tech/tags/analytics.md>), [cache](<https://devfeed.tech/tags/cache.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [integrity](<https://devfeed.tech/tags/integrity.md>), [merge](<https://devfeed.tech/tags/merge.md>), [native](<https://devfeed.tech/tags/native.md>), [new-features](<https://devfeed.tech/tags/new-features.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [performance](<https://devfeed.tech/tags/performance.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [preview](<https://devfeed.tech/tags/preview.md>), [product](<https://devfeed.tech/tags/product.md>), [schema](<https://devfeed.tech/tags/schema.md>)

### AI overview

The article announces the Postgres 18 release and its immediate preview availability on Neon's Free plan. It highlights performance and developer-focused improvements including skip scans for multicolumn B-tree indexes, expanded EXPLAIN ANALYZE metrics, virtual generated columns, native UUIDv7 support, access to old and new row values in a single statement, and temporal integrity for keys.

### Source excerpt

Postgres 18 just shipped, and as always, it's available in preview on Neon right away. You can try it right now on Neon's Free plan, no credit card or setup required. New Features in Postgres 18 Postgres 18 comes with a ton of other exciting updates around performance, flexibilit...

## first-class merges and cover letters

DevFeed: [first-class merges and cover letters](<https://devfeed.tech/articles/first-class-merges-and-cover-letters-36222.md>)

Original publisher: [Read original article](<https://dotat.at/@/2025-09-11-cover-letter.html>)

Published: 2025-09-11T01:26:47Z

Content type: opinion

Language: en

Sources: [Tony Finch's blog](<https://devfeed.tech/sources/tony-finch-s-blog.md>)

Topics: [Git](<https://devfeed.tech/topics/git.md>), [version-control](<https://devfeed.tech/topics/version-control.md>), [Development](<https://devfeed.tech/topics/development.md>), [pull-requests](<https://devfeed.tech/topics/pull-requests.md>), [Code review](<https://devfeed.tech/topics/code-review.md>)

Tags: [branch](<https://devfeed.tech/tags/branch.md>), [git](<https://devfeed.tech/tags/git.md>), [merge](<https://devfeed.tech/tags/merge.md>), [review](<https://devfeed.tech/tags/review.md>), [version-control](<https://devfeed.tech/tags/version-control.md>), [workflow](<https://devfeed.tech/tags/workflow.md>)

### AI overview

This commentary examines shortcomings in Git branches and common merge and rebase workflows. It argues that improving merges, rather than branches alone, could make branch-based development more effective, while considering trade-offs between detailed history and clean logical changes.

### Source excerpt

Although it looks really good, I have not yet tried the Jujutsu (jj) version control system, mainly because it's not yet clearly superior to Magit. But I have been following jj discussions with great interest. One of the things that jj has not yet tackled is how to do better than git refs / branches / tags. As I underestand it, jj currently has something like Mercurial bookmarks, which are more like raw git ref plumbing than a high-level porcelain feature. In particular, jj lacks signed or annotated tags, and it doesn't have branch names that always automatically refer to the tip. This is clearly a temporary state of affairs because jj is still incomplete and under development and these gaps are going to be filled. But the discussions have led me to think about how git's branches are unsatisfactory, and what could be done to improve them. branch merge rebase squash fork cover letters previous branch workflow questions branch One of the huge improvements in git compared to Subversion was git's support for merges. Subversion proudly advertised its support for lightweight branches, but a branch is not very useful if you can't merge it: an un-mergeable branch is not a tool you can use to help with work-in-progress development. The point of this anecdote is to illustrate that rather than trying to make branches better, we should try to make merges better and branches will get better as a consequence. Let's consider a few common workflows and how git makes them all unsatisfactory in various ways. Skip to cover letters and previous branch below where I eventually get to the point. merge A basic merge workflow is, create a feature branch hack, hack, review, hack, approve merge back to the trunk The main problem is when it comes to the merge, there may be conflicts due to concurrent work on the trunk. Git encourages you to resolve conflicts while creating the merge commit, which tends to bypass the normal review process. Git also gives you an ugly useless canned commit messa

## Expanding a Running Netlab Topology

DevFeed: [Expanding a Running Netlab Topology](<https://devfeed.tech/articles/expanding-a-running-netlab-topology-11214.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2025/07/expanding-netlab-topology/>)

Published: 2025-07-07T06:11:00Z

Content type: tutorial

Language: en

Sources: [ipSpace.net blog](<https://devfeed.tech/sources/ipspace-net-blog.md>)

Topics: [configuration](<https://devfeed.tech/topics/configuration.md>), [Cisco](<https://devfeed.tech/topics/cisco.md>), [dell](<https://devfeed.tech/topics/dell.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [cisco](<https://devfeed.tech/tags/cisco.md>), [collect](<https://devfeed.tech/tags/collect.md>), [config](<https://devfeed.tech/tags/config.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [dell](<https://devfeed.tech/tags/dell.md>), [devices](<https://devfeed.tech/tags/devices.md>), [ios](<https://devfeed.tech/tags/ios.md>), [linux](<https://devfeed.tech/tags/linux.md>), [merge](<https://devfeed.tech/tags/merge.md>), [mikrotik](<https://devfeed.tech/tags/mikrotik.md>), [netlab](<https://devfeed.tech/tags/netlab.md>), [nx](<https://devfeed.tech/tags/nx.md>), [sonic](<https://devfeed.tech/tags/sonic.md>)

### AI overview

This tutorial explains how to expand a netlab topology while preserving configuration changes made to existing devices. It recommends collecting configurations to a separate folder, checking whether they can be reloaded, rebuilding the lab with the modified topology, and applying the saved configurations. The procedure has platform-specific limitations and may fail when device interfaces or configuration formats differ.

### Source excerpt

One of the happy netlab users sent me an interesting challenge: He's built a large lab and added tons of extra configuration to the lab devices. Afterwards, he realized he'd like to add a few more devices to the lab and was worried about losing all the changes he had made. Unfortunately, you cannot add new devices to an already-running lab. You must shut down the lab, change the topology description, and start a new lab. However, there are things you can do to preserve the extra work you already did: Read more ...

## Optimizing Jetpack Compose Transform Computations by Merging Functions

DevFeed: [Optimizing Jetpack Compose Transform Computations by Merging Functions](<https://devfeed.tech/articles/merge-your-computations-25612.md>)

Original publisher: [Read original article](<https://www.romainguy.dev/posts/2025/merge-your-computations/>)

Author: Romain Guy

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

Content type: tutorial

Language: en

Sources: [Posts on Romain Guy](<https://devfeed.tech/sources/posts-on-romain-guy.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [inlining](<https://devfeed.tech/topics/inlining.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [code](<https://devfeed.tech/tags/code.md>), [compose](<https://devfeed.tech/tags/compose.md>), [developer](<https://devfeed.tech/tags/developer.md>), [function](<https://devfeed.tech/tags/function.md>), [graphics](<https://devfeed.tech/tags/graphics.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [inlining](<https://devfeed.tech/tags/inlining.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [merge](<https://devfeed.tech/tags/merge.md>), [performance](<https://devfeed.tech/tags/performance.md>)

### AI overview

This article explains how merging or manually inlining low-level functions can remove duplicated work in performance-sensitive code. Using Jetpack Compose matrix transformations as an example, it describes eliminating unnecessary temporary matrices and intermediate computations.

### Source excerpt

There is a simple but often overlooked technique to optimize performance-sensitive code: merging (or manually inlining) functions. We often build series of low-level functions that execute various computations that we then combine to perform higher-level tasks. When taken in isolation, each of those functions does exactly what it should and might even be perfectly optimized. However, when a series of thosefunctions work together, unnecessary or duplicated work might appear. Let's look at a concrete example taken from the Jetpack Compose code base. To apply the various geometric transforms that may affect a layer, Compose needs to build a matrix that combines all the transformations exposed by its APIs:

## Think About SQL MERGE in Terms of a RIGHT JOIN

DevFeed: [Think About SQL MERGE in Terms of a RIGHT JOIN](<https://devfeed.tech/articles/think-about-sql-merge-in-terms-of-a-right-join-28967.md>)

Original publisher: [Read original article](<https://blog.jooq.org/think-about-sql-merge-in-terms-of-a-right-join/>)

Author: lukaseder

Published: 2025-03-13T14:45:53Z

Content type: tutorial

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [SQL](<https://devfeed.tech/topics/sql.md>), [etl](<https://devfeed.tech/topics/etl.md>), [rdbms](<https://devfeed.tech/topics/rdbms.md>)

Tags: [databricks](<https://devfeed.tech/tags/databricks.md>), [etl](<https://devfeed.tech/tags/etl.md>), [firebird](<https://devfeed.tech/tags/firebird.md>), [merge](<https://devfeed.tech/tags/merge.md>), [outer-join](<https://devfeed.tech/tags/outer-join.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [right-join](<https://devfeed.tech/tags/right-join.md>), [schema](<https://devfeed.tech/tags/schema.md>), [semantics](<https://devfeed.tech/tags/semantics.md>), [source](<https://devfeed.tech/tags/source.md>), [sql](<https://devfeed.tech/tags/sql.md>), [sql-server](<https://devfeed.tech/tags/sql-server.md>), [statement](<https://devfeed.tech/tags/statement.md>), [syntax](<https://devfeed.tech/tags/syntax.md>), [table](<https://devfeed.tech/tags/table.md>), [target-table](<https://devfeed.tech/tags/target-table.md>), [when-matched](<https://devfeed.tech/tags/when-matched.md>), [when-not-matched](<https://devfeed.tech/tags/when-not-matched.md>), [when-not-matched-by-source](<https://devfeed.tech/tags/when-not-matched-by-source.md>)

### AI overview

The article explains SQL MERGE by relating its target-and-source behavior to a RIGHT JOIN. It covers updating matching rows, inserting nonmatching rows, deletion behavior, and the restriction against duplicate matches.

### Source excerpt

RIGHT JOIN is an esoteric feature in the SQL language, and hardly ever seen in the real world, because almost every RIGHT JOIN can just be expressed as an equivalent LEFT JOIN. The following two statements are equivalent: It's not unreasonable to expect these two statements to produce the same execution plan on most RDBMS, ... Continue reading Think About SQL MERGE in Terms of a RIGHT JOIN ->

## jOOQ 3.20 released with ClickHouse, Databricks, and much more DuckDB support, new modules, Oracle type hierarchies, more spatial support, decfloat and synonym support, hidden columns, Scala 3, Kotlin 2, and much more

DevFeed: [jOOQ 3.20 released with ClickHouse, Databricks, and much more DuckDB support, new modules, Oracle type hierarchies, more spatial support, decfloat and synonym support, hidden columns, Scala 3, Kotlin 2, and much more](<https://devfeed.tech/articles/jooq-3-20-released-with-clickhouse-databricks-and-much-more-duckdb-support-new-modules-oracle-type-hierarchies-more-spatial-support-decfloat-and-synonym-support-hidden-co-28953.md>)

Original publisher: [Read original article](<https://blog.jooq.org/jooq-3-20-released-with-clickhouse-databricks-and-much-more-duckdb-support-new-modules-oracle-type-hierarchies-more-spatial-support-decfloat-and-synonym-support-hidden-columns-scala-3-kotlin/>)

Author: lukaseder

Published: 2025-02-20T10:27:54Z

Content type: release

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [clickhouse](<https://devfeed.tech/topics/clickhouse.md>), [databricks](<https://devfeed.tech/topics/databricks.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [DuckDB](<https://devfeed.tech/topics/duckdb.md>), [modules](<https://devfeed.tech/topics/modules.md>), [Oracle Database](<https://devfeed.tech/topics/oracle-database.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Scala](<https://devfeed.tech/topics/scala.md>), [reactive](<https://devfeed.tech/topics/reactive.md>), [jpa](<https://devfeed.tech/topics/jpa.md>)

Tags: [array](<https://devfeed.tech/tags/array.md>), [clickhouse](<https://devfeed.tech/tags/clickhouse.md>), [databricks](<https://devfeed.tech/tags/databricks.md>), [decfloat](<https://devfeed.tech/tags/decfloat.md>), [dirty-tracking](<https://devfeed.tech/tags/dirty-tracking.md>), [dml-join](<https://devfeed.tech/tags/dml-join.md>), [duckdb](<https://devfeed.tech/tags/duckdb.md>), [hidden-columns](<https://devfeed.tech/tags/hidden-columns.md>), [jdk-21](<https://devfeed.tech/tags/jdk-21.md>), [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-3-20](<https://devfeed.tech/tags/jooq-3-20.md>), [jooq-development](<https://devfeed.tech/tags/jooq-development.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [json](<https://devfeed.tech/tags/json.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-2](<https://devfeed.tech/tags/kotlin-2.md>), [merge](<https://devfeed.tech/tags/merge.md>), [modules](<https://devfeed.tech/tags/modules.md>), [oracle](<https://devfeed.tech/tags/oracle.md>), [oracle-plsql-types](<https://devfeed.tech/tags/oracle-plsql-types.md>), [r2dbc](<https://devfeed.tech/tags/r2dbc.md>), [reactive](<https://devfeed.tech/tags/reactive.md>), [scala](<https://devfeed.tech/tags/scala.md>), [scala-3](<https://devfeed.tech/tags/scala-3.md>), [sequences](<https://devfeed.tech/tags/sequences.md>), [spatial](<https://devfeed.tech/tags/spatial.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

jOOQ 3.20 introduces experimental ClickHouse and Databricks SQL dialects, improves DuckDB support, adds new integration modules, and expands support for Oracle type hierarchies, spatial features, decfloat, synonyms, hidden columns, Scala 3, and Kotlin 2.

### Source excerpt

New dialects: jOOQ 3.20 ships with 2 new experimental dialects: ClickHouse is a fast-moving SQL dialect with a historic vendor-specific syntax that is gradually migrated to a more standards compliant alternative, which is why our support is still experimental. A lot of behaviours differ from what one would expect elsewhere, including NULL handling, which is ... Continue reading jOOQ 3.20 released with ClickHouse, Databricks, and much more DuckDB support, new modules, Oracle type hierarchies, more spatial support, decfloat and synonym support, hidden columns, Scala 3, Kotlin 2, and much more ->

## postmarketOS July 2024 update covers homepage redesign, contributor workflow, and pmbootstrap v3

DevFeed: [postmarketOS July 2024 update covers homepage redesign, contributor workflow, and pmbootstrap v3](<https://devfeed.tech/articles/postmarketos-in-2024-07-new-homepage-pmbootstrap-v3-sensors-libcamera-and-more-41737.md>)

Original publisher: [Read original article](<https://postmarketos.org/blog/2024/07/21/pmOS-update-2024-07/>)

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

Content type: news

Language: en

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

Topics: [Maintainers](<https://devfeed.tech/topics/maintainers.md>), [pull-requests](<https://devfeed.tech/topics/pull-requests.md>), [patches](<https://devfeed.tech/topics/patches.md>), [navigation](<https://devfeed.tech/topics/navigation.md>), [Usability](<https://devfeed.tech/topics/usability.md>)

Tags: [experience](<https://devfeed.tech/tags/experience.md>), [maintainers](<https://devfeed.tech/tags/maintainers.md>), [merge](<https://devfeed.tech/tags/merge.md>), [navigation](<https://devfeed.tech/tags/navigation.md>), [patches](<https://devfeed.tech/tags/patches.md>), [postmarketos](<https://devfeed.tech/tags/postmarketos.md>), [redesign](<https://devfeed.tech/tags/redesign.md>), [release](<https://devfeed.tech/tags/release.md>)

### AI overview

The postmarketOS July 2024 update describes a redesigned homepage with reorganized navigation and new team and exploration pages. It also reports new approval requirements for merging patches, plans for automatic maintainer assignment, funding-related news, and improvements from the pmbootstrap v3 patch series.

### Source excerpt

Fasten your seatbelts, after skipping the monthly progress report in June because of the v24.06 release, we have at least twice as much news to share! Homepage First, we obviously updated the homepage. The new design is a collaboration between Dika, Markus and Oliver. It's more than just a design change actually. If you take a close look at the links in the top navigation bar you may first notice that it isn't as overloaded with random links anymore as it used to be. And secondly that there is a new explore button that more or less lists the links we had there previously (but now nicely sorted in categories!) as well as a new team button. Bryant spent a whole lot of time and effort on that. The team page shows who makes postmarketOS. Who the Core Contributors (renamed from Core Team for consistency) and Trusted Contributors are and what we are doing in postmarketOS. What we think about, enjoy doing and where you can find us on Matrix etc. The teams page also has the purpose to list the contributor groups and teams we now have, which have grown quite a lot in the last months, in one easy to read overview. So Bryant figured before we add yet another new button to the navigation bar, we should first unclutter the navigation bar and... while at it we just did this whole redesign! Organizational We decided on new approval requirements for merging patches. This addresses problems with good patches not getting merged, that oftentimes were caused by lack of clear understanding of who is supposed to approve and merge patches. With further work we plan to automatically assign maintainers to new merge requests (like it works in Alpine's aports). We apologize to everybody that had a hard time with the previous review process, and we hope this makes the workflow better for everyone. Feel free to reply to #66 if you still experience problems with the new workflow. We wrote a separate blog post about postmarketOS being selected for NGI Zero Core funding, as well as how the European

## In Praise of Small Pull Requests

DevFeed: [In Praise of Small Pull Requests](<https://devfeed.tech/articles/in-praise-of-small-pull-requests-23858.md>)

Original publisher: [Read original article](<http://testing.googleblog.com/2024/07/in-praise-of-small-pull-requests.html>)

Author: Google Testing Bloggers (noreply@blogger.com)

Published: 2024-07-16T13:00:00Z

Content type: article

Language: en

Sources: [Google Testing Blog](<https://devfeed.tech/sources/google-testing-blog.md>)

Topics: [pull-requests](<https://devfeed.tech/topics/pull-requests.md>), [Code review](<https://devfeed.tech/topics/code-review.md>), [engineering-culture](<https://devfeed.tech/topics/engineering-culture.md>)

Tags: [code-health](<https://devfeed.tech/tags/code-health.md>), [code-review](<https://devfeed.tech/tags/code-review.md>), [elliotte-rusty-harold](<https://devfeed.tech/tags/elliotte-rusty-harold.md>), [merge](<https://devfeed.tech/tags/merge.md>), [pull-requests](<https://devfeed.tech/tags/pull-requests.md>), [review](<https://devfeed.tech/tags/review.md>), [tott](<https://devfeed.tech/tags/tott.md>), [version-control](<https://devfeed.tech/tags/version-control.md>)

### AI overview

This Google Testing on the Toilet Code Health post explains why pull requests should be small and focused on one self-contained change. It says smaller pull requests are easier and faster to review, make mistakes easier to detect, simplify debugging and rollback, reduce merge conflicts, improve pull request descriptions and revision history, and can increase code coverage.

### Source excerpt

This is another post in our Code Health series. A version of this post originally appeared in Google bathrooms worldwide as a Google Testing on the Toilet episode. You can download a printer-friendly version to display in your office. By Elliotte Rusty Harold Note: A "pull request" refers to one self-contained change that has been submitted to version control or which is undergoing code review. At Google, this is referred to as a"CL", which is short for "changelist". Prefer small, focused pull requests that do exactly one thing each. Why? Several reasons: Small pull requests are easier to review. A mistake in a focused pull request is more obvious. In a 40 file pull request that does several things, would you notice that one if statement had reversed the logic it should have and was using true instead of false? By contrast, if that if block and its test were the only things that changed in a pull request, you'd be a lot more likely to catch the error. Small pull requests can be reviewed quickly. A reviewer can often respond quickly by slipping small reviews in between other tasks. Larger pull requests are a big task by themselves, often waiting until the reviewer has a significant chunk of time. If something does go wrong and your continuous build breaks on a small pull request, the small size makes it much easier to figure out exactly where the mistake is. They are also easier to rollback if something goes wrong. By virtue of their size, small pull requests are less likely to conflict with other developers' work. Merge conflicts are less frequent and easier to resolve. If you've made a critical error, it saves a lot of work when the reviewer can point this out after you've only gone a little way down the wrong path. Better to find out after an hour than after several weeks. Pull request descriptions are more accurate when pull requests are focused on one task. The revision history becomes easier to read. Small pull requests can lead to increased code coverage becau

## Campground Pull Request

DevFeed: [Campground Pull Request](<https://devfeed.tech/articles/campground-pull-request-25228.md>)

Original publisher: [Read original article](<https://kau.sh/blog/campground-pr/>)

Author: Kaushik Gopal

Published: 2024-07-06T22:52:31Z

Content type: opinion

Language: en

Sources: [Kaushik Gopal's Site](<https://devfeed.tech/sources/kaushik-gopal-s-site.md>)

Topics: [Pull Request](<https://devfeed.tech/topics/pull-request.md>), [Code review](<https://devfeed.tech/topics/code-review.md>), [Code quality](<https://devfeed.tech/topics/code-quality.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [cleanup](<https://devfeed.tech/tags/cleanup.md>), [code](<https://devfeed.tech/tags/code.md>), [code-quality](<https://devfeed.tech/tags/code-quality.md>), [merge](<https://devfeed.tech/tags/merge.md>), [pull-request](<https://devfeed.tech/tags/pull-request.md>), [refactor](<https://devfeed.tech/tags/refactor.md>), [review](<https://devfeed.tech/tags/review.md>), [reviews](<https://devfeed.tech/tags/reviews.md>), [team](<https://devfeed.tech/tags/team.md>)

### AI overview

The article proposes "Campground PRs": separate pull requests for refactoring and clarifying code before implementing a new feature. Because these changes should not alter functionality, they can improve estimates, simplify reviews, and gradually improve codebase quality.

### Source excerpt

Before diving into a new feature, I always tell my team to scout the parts of the codebase that will need to change. As we explore, refactor for clarity. These cleanup changes get their own pull request1 (PR) before we touch the new feature. This PR shouldn't change functionality, just tidy up the existing code. This gives us a few big wins: Better estimates: We can estimate the feature's timeline more accurately now that we have a much better sense of what's about to change. Smoother reviews: Campground PRs are quicker to review, since no functionality has changed. Importantly, you don't clutter your feature PR with refactors or distracting changes -- prompting the ire of code reviewers. Codebase quality: You gradually increase the code quality of your codebase -- especially the parts that won't get touched by your feature PR but could use the love. This is not a new concept , you've probably seen versions of it before: Boy Scout Rule: Leave your codebase cleaner than you found it. Broken Windows: Fix small issues before they proliferate through your code base become big. I haven't found a popular name for this specific concept, so I've started calling them "Campground PRs". Don't just leave the code better after your feature, do it before hand. Got a better name? Let me know! Or merge request (MR), for the Gitlab folks. ↩︎

## Git Version Control Tutorial: A Beginner's Guide to Git Version Control

DevFeed: [Git Version Control Tutorial: A Beginner's Guide to Git Version Control](<https://devfeed.tech/articles/git-version-control-tutorial-a-beginner-s-guide-to-git-version-control-28417.md>)

Original publisher: [Read original article](<https://banes.dev/git-version-control-tutorial-a-beginners-guide-to-git-version-control/>)

Author: admin

Published: 2024-05-03T07:28:35Z

Content type: tutorial

Language: en

Sources: [Posts on Chris Banes](<https://devfeed.tech/sources/posts-on-chris-banes.md>)

Topics: [Git](<https://devfeed.tech/topics/git.md>), [version-control](<https://devfeed.tech/topics/version-control.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [coding](<https://devfeed.tech/topics/coding.md>), [Development](<https://devfeed.tech/topics/development.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [beginner](<https://devfeed.tech/tags/beginner.md>), [code](<https://devfeed.tech/tags/code.md>), [coding](<https://devfeed.tech/tags/coding.md>), [collaboration](<https://devfeed.tech/tags/collaboration.md>), [commands](<https://devfeed.tech/tags/commands.md>), [commit](<https://devfeed.tech/tags/commit.md>), [core](<https://devfeed.tech/tags/core.md>), [developers](<https://devfeed.tech/tags/developers.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [distributed-system](<https://devfeed.tech/tags/distributed-system.md>), [efficiency](<https://devfeed.tech/tags/efficiency.md>), [files](<https://devfeed.tech/tags/files.md>), [git](<https://devfeed.tech/tags/git.md>), [guide](<https://devfeed.tech/tags/guide.md>), [machine](<https://devfeed.tech/tags/machine.md>), [merge](<https://devfeed.tech/tags/merge.md>), [projects](<https://devfeed.tech/tags/projects.md>), [repository](<https://devfeed.tech/tags/repository.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [uncategorized](<https://devfeed.tech/tags/uncategorized.md>), [version-control](<https://devfeed.tech/tags/version-control.md>)

### AI overview

A beginner-focused tutorial explaining Git as a distributed version control system for tracking changes, managing repositories, creating commits and branches, and collaborating with other developers.

### Source excerpt

Have you ever worked on a project and accidentally overwritten your progress? Maybe you spent hours coding a new feature, then realized you needed to go back to a previous version. This is where git version control can help! Git is a lifesaver for developers, allowing you to track changes, collaborate effectively, and ensure you [...]

## Chainguard patches 3 "silent" Golang CVEs in under 24 hours

DevFeed: [Chainguard patches 3 "silent" Golang CVEs in under 24 hours](<https://devfeed.tech/articles/chainguard-patches-3-silent-golang-cves-in-under-24-hours-12975.md>)

Original publisher: [Read original article](<https://www.chainguard.dev/unchained/chainguard-patches-3-silent-golang-cves-in-under-24-hours>)

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

Content type: article

Language: en

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

Topics: [chainguard](<https://devfeed.tech/topics/chainguard.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [Go](<https://devfeed.tech/topics/go.md>), [chainguard images](<https://devfeed.tech/topics/chainguard-images.md>), [Security](<https://devfeed.tech/topics/security.md>), [Automation](<https://devfeed.tech/topics/automation.md>), [toolchain](<https://devfeed.tech/topics/toolchain.md>), [DDoS](<https://devfeed.tech/topics/ddos.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Pull Request](<https://devfeed.tech/topics/pull-request.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [automation](<https://devfeed.tech/tags/automation.md>), [chainguard](<https://devfeed.tech/tags/chainguard.md>), [chainguard-images](<https://devfeed.tech/tags/chainguard-images.md>), [cve](<https://devfeed.tech/tags/cve.md>), [cves](<https://devfeed.tech/tags/cves.md>), [ddos](<https://devfeed.tech/tags/ddos.md>), [github](<https://devfeed.tech/tags/github.md>), [go](<https://devfeed.tech/tags/go.md>), [golang](<https://devfeed.tech/tags/golang.md>), [golang-patch](<https://devfeed.tech/tags/golang-patch.md>), [linux](<https://devfeed.tech/tags/linux.md>), [melange](<https://devfeed.tech/tags/melange.md>), [merge](<https://devfeed.tech/tags/merge.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [safe-source-for-open-source](<https://devfeed.tech/tags/safe-source-for-open-source.md>), [security](<https://devfeed.tech/tags/security.md>), [silent-cve](<https://devfeed.tech/tags/silent-cve.md>), [tooling](<https://devfeed.tech/tags/tooling.md>), [wolfi](<https://devfeed.tech/tags/wolfi.md>)

### AI overview

Chainguard describes how it patched three Golang CVEs in under 24 hours. Its automation monitored new Go releases, opened a pull request, rebuilt the Wolfi package, and updated Chainguard Images containing Go.

### Source excerpt

See how Chainguard swiftly patched three Golang CVEs in under 24 hours, showcasing rapid response and dedication to secure software.

## Jetpack Compose Clip or Cut a Composable with Custom Image Shape

DevFeed: [Jetpack Compose Clip or Cut a Composable with Custom Image Shape](<https://devfeed.tech/articles/jetpack-compose-clip-or-cut-a-composable-with-custom-image-shape-25850.md>)

Original publisher: [Read original article](<https://medium.com/@banmarkovic/jetpack-compose-clip-or-cut-a-composable-with-custom-image-shape-062dde54d4b2?source=rss-8aced922ece------2>)

Author: Ban Markovic

Published: 2024-02-14T17:25:40Z

Content type: tutorial

Language: en

Sources: [Stories by Ban Markovic on Medium](<https://devfeed.tech/sources/stories-by-ban-markovic-on-medium.md>)

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Android](<https://devfeed.tech/topics/android.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Graphics](<https://devfeed.tech/topics/graphics.md>)

Tags: [alignment](<https://devfeed.tech/tags/alignment.md>), [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [androiddev](<https://devfeed.tech/tags/androiddev.md>), [building](<https://devfeed.tech/tags/building.md>), [component](<https://devfeed.tech/tags/component.md>), [compose](<https://devfeed.tech/tags/compose.md>), [compose-ui](<https://devfeed.tech/tags/compose-ui.md>), [customization](<https://devfeed.tech/tags/customization.md>), [extend](<https://devfeed.tech/tags/extend.md>), [images](<https://devfeed.tech/tags/images.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [layout](<https://devfeed.tech/tags/layout.md>), [merge](<https://devfeed.tech/tags/merge.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

A tutorial showing how to clip a Jetpack Compose composable to a custom image shape. It builds a health-bar example, then uses PorterDuff operators and Modifier.drawWithContent to combine the image shape with colored content.

### Source excerpt

As an Android developer, I face all sorts of challenges provided to me by my fellow designers. One of them was actually building an UI component that has a custom shape in a form of an image. This was required because we wanted to display a special type of a progress bar by fulfilling the image shape with gradient. Because I didn't find this functionality trivial to implement, I decided to show how I solved this issue with some fun example. Example Here is a simple game where I utilized cutting of my composable. The game consists of one plane with full health. Upon each hit, it looses 10% of its health. Game is over once the plane remains with no health. Game Setup First, let me show you how I formed the basic layout for this game. It will contain the gray square and Hit button. Column( modifier = Modifier.fillMaxSize().background(Color.Black), verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally ) { Box( modifier = Modifier .size(240.dp) .background(Color.LightGray) ) Spacer(modifier = Modifier.height(40.dp)) Button( onClick = { /* TODO */ } ) { Text("HIT") } } Next step, is to create custom Composable called SquareHealth. SquareHealth is expecting the progress value (from 0.0 to 1.0). This will determine the height of the green area inside my gray square (aligned at bottom). It will represent remaining health for my Square. @Composable fun SquareHealth(healthPercentage: Float) { Box( modifier = Modifier .size(240.dp) .background(Color.LightGray) ) { Box( modifier = Modifier .fillMaxWidth() .height((240 * healthPercentage).dp) .background(Color.Green) .align(Alignment.BottomCenter) ) } } Now, I can call it instead of the static gray Box inside my screen. The basic layout is now set, and I just need to set initial health progress to 1.0, and enable my button to decrease the health percentage by 0.1 on each click. var healthPercentage by remember { mutableStateOf(1.0f) } Column( modifier = Modifier .fillMaxSize() .background(Co

## Keep your Chainguard Images up to date with digestabot

DevFeed: [Keep your Chainguard Images up to date with digestabot](<https://devfeed.tech/articles/keep-your-chainguard-images-up-to-date-with-digestabot-13134.md>)

Original publisher: [Read original article](<https://www.chainguard.dev/unchained/keep-your-chainguard-images-up-to-date-with-digestabot>)

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

Content type: article

Language: en

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

Topics: [chainguard images](<https://devfeed.tech/topics/chainguard-images.md>), [chainguard](<https://devfeed.tech/topics/chainguard.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [Pull Request](<https://devfeed.tech/topics/pull-request.md>), [Security](<https://devfeed.tech/topics/security.md>)

Tags: [also](<https://devfeed.tech/tags/also.md>), [chainguard](<https://devfeed.tech/tags/chainguard.md>), [chainguard-images](<https://devfeed.tech/tags/chainguard-images.md>), [container](<https://devfeed.tech/tags/container.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [digestabot](<https://devfeed.tech/tags/digestabot.md>), [dockerfiles](<https://devfeed.tech/tags/dockerfiles.md>), [github-action](<https://devfeed.tech/tags/github-action.md>), [helm](<https://devfeed.tech/tags/helm.md>), [make](<https://devfeed.tech/tags/make.md>), [merge](<https://devfeed.tech/tags/merge.md>), [oidc](<https://devfeed.tech/tags/oidc.md>), [security](<https://devfeed.tech/tags/security.md>), [vulnerability-automation](<https://devfeed.tech/tags/vulnerability-automation.md>), [vulnerability-management](<https://devfeed.tech/tags/vulnerability-management.md>)

### AI overview

Chainguard's digestabot is a free GitHub Action that helps keep Chainguard Images and other container assets current. It detects outdated image digests, opens pull requests, and supports testing and secure updates through continuous integration and optional ephemeral OIDC tokens.

### Source excerpt

Experience hassle-free updates with Chainguard's digestabot, ensuring your Images stay secure and up-to-date daily.

## Verkle tree structure

DevFeed: [Verkle tree structure](<https://devfeed.tech/articles/verkle-tree-structure-16993.md>)

Original publisher: [Read original article](<https://blog.ethereum.org/en/2021/12/02/verkle-tree-structure>)

Author: Guillaume Ballet; Dankrad Feist

Published: 2021-12-02T00:00:00Z

Content type: tutorial

Language: en

Sources: [Ethereum Foundation Blog](<https://devfeed.tech/sources/ethereum-foundation-blog.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [client](<https://devfeed.tech/topics/client.md>)

Tags: [developers](<https://devfeed.tech/tags/developers.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [implement](<https://devfeed.tech/tags/implement.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [layout](<https://devfeed.tech/tags/layout.md>), [merge](<https://devfeed.tech/tags/merge.md>), [post](<https://devfeed.tech/tags/post.md>), [research-development](<https://devfeed.tech/tags/research-development.md>), [scheme](<https://devfeed.tech/tags/scheme.md>), [stem](<https://devfeed.tech/tags/stem.md>), [storage](<https://devfeed.tech/tags/storage.md>), [structure](<https://devfeed.tech/tags/structure.md>), [vector](<https://devfeed.tech/tags/vector.md>)

### AI overview

This developer article explains the structure of draft Verkle tree EIP designs. It describes replacing Merkle tree hashes with vector commitments, merging account and storage tries, using 32-byte keys, and organizing keys into 31-byte stems with one-byte suffixes.

### Source excerpt

A Verkle tree is a commitment scheme that works similar to a Merkle tree, but has much smaller witnesses. It works by replacing the hashes in a Merkle tree with a vector commitment, which makes wider branching factors more efficient. Thanks to Kevaundray Wedderburn for feedback on the post....

## How The Merge Impacts Ethereum's Application Layer

DevFeed: [How The Merge Impacts Ethereum's Application Layer](<https://devfeed.tech/articles/how-the-merge-impacts-ethereum-s-application-layer-16992.md>)

Original publisher: [Read original article](<https://blog.ethereum.org/en/2021/11/29/how-the-merge-impacts-app-layer>)

Author: Tim Beiko

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

Content type: article

Language: en

Sources: [Ethereum Foundation Blog](<https://devfeed.tech/sources/ethereum-foundation-blog.md>)

Topics: [Ethereum](<https://devfeed.tech/topics/ethereum.md>), [Network](<https://devfeed.tech/topics/network.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [Transactions](<https://devfeed.tech/topics/transactions.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [beacon](<https://devfeed.tech/tags/beacon.md>), [consensus](<https://devfeed.tech/tags/consensus.md>), [developers](<https://devfeed.tech/tags/developers.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [features](<https://devfeed.tech/tags/features.md>), [merge](<https://devfeed.tech/tags/merge.md>), [proof-of-work](<https://devfeed.tech/tags/proof-of-work.md>), [research-development](<https://devfeed.tech/tags/research-development.md>), [tooling](<https://devfeed.tech/tags/tooling.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

### AI overview

This article explains how Ethereum's transition from proof of work to proof of stake through The Merge affects end users, smart contracts, decentralized applications, and application developers. It describes the Beacon Chain as the new consensus layer, ExecutionPayloads as the post-merge equivalent of blocks, and the minor changes to block fields and transaction infrastructure.

### Source excerpt

Ethereum's transition to proof of stake -- The Merge -- is near: devnets are being stood up, specifications are being finalized and community outreach has begun in earnest. The Merge is designed to have minimal impact on how Ethereum operates for end users, smart contracts and dapps. That said, there...

## Kintsugi testnet and Arrow Glacier upgrade advance Ethereum Merge preparations

DevFeed: [Kintsugi testnet and Arrow Glacier upgrade advance Ethereum Merge preparations](<https://devfeed.tech/articles/finalized-no-32-16990.md>)

Original publisher: [Read original article](<https://blog.ethereum.org/en/2021/11/22/finalized-no-32>)

Author: Danny Ryan

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

Content type: news

Language: en

Sources: [Ethereum Foundation Blog](<https://devfeed.tech/sources/ethereum-foundation-blog.md>)

Topics: [Ethereum](<https://devfeed.tech/topics/ethereum.md>), [releases](<https://devfeed.tech/topics/releases.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [client](<https://devfeed.tech/topics/client.md>), [Software](<https://devfeed.tech/topics/software.md>)

Tags: [ethereum](<https://devfeed.tech/tags/ethereum.md>), [launch](<https://devfeed.tech/tags/launch.md>), [merge](<https://devfeed.tech/tags/merge.md>), [node](<https://devfeed.tech/tags/node.md>), [releases](<https://devfeed.tech/tags/releases.md>), [research-development](<https://devfeed.tech/tags/research-development.md>), [tests](<https://devfeed.tech/tags/tests.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>)

### AI overview

The article reports progress on the Kintsugi Merge sprint, including plans for a persistent multi-client testnet and ongoing client implementation, testing, and interoperability work. It also explains that validators must upgrade their PoW node for the Arrow Glacier difficulty-bomb delay.

### Source excerpt

tl;dr Kintsugi🍵 in progress -- testnet to come Stakers must upgrade for Arrow Glacier...

## Moving from Schema Stitching to Federation: How Expedia improved performance

DevFeed: [Moving from Schema Stitching to Federation: How Expedia improved performance](<https://devfeed.tech/articles/moving-from-schema-stitching-to-federation-how-expedia-improved-performance-23294.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/expedia-improved-performance-by-moving-from-schema-stitching-to-apollo-federation>)

Author: David Isquick

Published: 2021-07-27T10:16:04Z

Content type: article

Language: en

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

Topics: [GraphQL](<https://devfeed.tech/topics/graphql.md>), [Graphs](<https://devfeed.tech/topics/graphs.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Front end](<https://devfeed.tech/topics/frontend.md>)

Tags: [announcement](<https://devfeed.tech/tags/announcement.md>), [backend](<https://devfeed.tech/tags/backend.md>), [core](<https://devfeed.tech/tags/core.md>), [declarative](<https://devfeed.tech/tags/declarative.md>), [gateway](<https://devfeed.tech/tags/gateway.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [merge](<https://devfeed.tech/tags/merge.md>), [performance](<https://devfeed.tech/tags/performance.md>)

### AI overview

This article recounts Expedia Group's GraphQL journey from schema stitching to federation. It describes why Expedia adopted GraphQL, how a gateway provided one schema and endpoint across independently owned services, and the challenges created by increasing custom stitching code.

### Source excerpt

Two weeks ago, we hosted a webinar with Shane Myrick, Senior Software Developer at Expedia Group entitled, "From Schema Stitching to Federation: Expedia's Journey." Shane's talk covered Expedia's motivation for adopting GraphQL and why they needed a distributed approach for managing their graph. Prior to adopting GraphQL, the Expedia Group faced the challenge of delivering a wide array of travel experiences across a growing number of platforms and clients.

[Next page](<https://devfeed.tech/tags/merge.md?cursor=WyIyMDIxLTA3LTI3VDEwOjE2OjA0KzAwOjAwIiwgIjc2NTQyYWZhLTEwZmEtNDI3MC1hMTEwLTU2Y2IyOWY4NDVmNSJd>)