# dependency-management

Published articles for dependency-management.

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 the Gradle Team Adopted Isolated Projects

DevFeed: [How the Gradle Team Adopted Isolated Projects](<https://devfeed.tech/articles/how-the-gradle-team-adopted-isolated-projects-24658.md>)

Original publisher: [Read original article](<https://blog.gradle.org/isolated-projects-in-gradle-team>)

Author: Alex Semin

Published: 2026-07-22T04:00:00Z

Content type: article

Language: en

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

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>), [Cache](<https://devfeed.tech/topics/cache.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [ci](<https://devfeed.tech/topics/ci.md>), [ide](<https://devfeed.tech/topics/ide.md>)

Tags: [cache](<https://devfeed.tech/tags/cache.md>), [ci](<https://devfeed.tech/tags/ci.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [ide](<https://devfeed.tech/tags/ide.md>), [parallelism](<https://devfeed.tech/tags/parallelism.md>), [performance](<https://devfeed.tech/tags/performance.md>)

### AI overview

The Gradle team describes adopting the experimental Isolated Projects feature in its own build. The article explains that Isolated Projects runs project configuration in parallel to improve scalability and performance, and outlines migration prerequisites, diagnostics, convention plugins, dependency management, and Shared Build Services.

### Source excerpt

Isolated Projects is an experimental feature aimed at improving Gradle scalability and performance. It speeds up builds by running project configuration in parallel, which benefits practically every workflow, from CI builds to IDE sync. We want the feature to offer an excellent user experience, so we made it a goal to adopt Isolated Projects in our own build, even though it is still in active development. This lets us find and smooth out the rough spots early, though secretly, we were also looking forward to the productivity boost for our own team. With Isolated Projects, more build logic runs concurrently. To keep builds reliable under that parallelism, the feature introduces additional constraints, and adopting it means migrating your build to address the violations of those constraints. Migrating our build Isolated Projects builds directly on top of the Configuration Cache, so making the build Configuration Cache compatible is a prerequisite. Fortunately for us, we've been enjoying fast inner developer loops for many years now, so that box was already checked. The general approach to migrating against new constraints is to start with the simplest workflows, such as running the help task, and address the violations. Then proceed to more complex workflows, such as IDE sync or CI. Running in Diagnostics mode helps you see all violations at once in a single HTML report, and the guide describes the recommended migration path. For the Gradle build, we followed a similar path. What helped us the most and made the migration much smoother is following the best practices, especially the best practice of having convention plugins: each project applies the build logic it needs, and no project has to reach in and mutate another's state directly. We've leaned heavily on sharing artifacts between projects only via dependency management, which is inherently compatible with Isolated Projects by making each project define its "outputs", on which other projects can depend. For more

## CEL repositories move to the dedicated cel-expr GitHub organization

DevFeed: [CEL repositories move to the dedicated cel-expr GitHub organization](<https://devfeed.tech/articles/cel-finds-a-new-home-at-github-com-cel-expr-34306.md>)

Original publisher: [Read original article](<http://opensource.googleblog.com/2026/06/cel-finds-a-new-home-at-githubcomcel-expr.html>)

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

Published: 2026-06-16T18:30:00Z

Content type: release

Language: en

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

Topics: [GitHub](<https://devfeed.tech/topics/github.md>), [Git](<https://devfeed.tech/topics/git.md>)

Tags: [announce](<https://devfeed.tech/tags/announce.md>), [brand-identity](<https://devfeed.tech/tags/brand-identity.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [cel](<https://devfeed.tech/tags/cel.md>), [common-expression-language](<https://devfeed.tech/tags/common-expression-language.md>), [consistency](<https://devfeed.tech/tags/consistency.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [development](<https://devfeed.tech/tags/development.md>), [discoverability](<https://devfeed.tech/tags/discoverability.md>), [github](<https://devfeed.tech/tags/github.md>), [go](<https://devfeed.tech/tags/go.md>), [java](<https://devfeed.tech/tags/java.md>), [pull-requests](<https://devfeed.tech/tags/pull-requests.md>), [python](<https://devfeed.tech/tags/python.md>)

### AI overview

The official Common Expression Language (CEL) repositories have moved from the Google organization to the dedicated cel-expr GitHub organization. The move centralizes the language specification and implementations, while redirects preserve existing links and repository history.

### Source excerpt

by Olena Huang, CEL (Common Expression Language) team We're excited to announce that the official Common Expression Language (CEL) repositories have moved to a dedicated GitHub organization. Visit the new cel-expr repository now! Why the move? This move is a key step in strengthening the CEL ecosystem. By centralizing our projects, including the language specification, Go, C++, C, Java, and Python implementations, under the cel-expr organization, we aim to: Enhance Branding: Create a clear and unified brand identity for CEL. Improve Discoverability: Make it easier for users and contributors to find all official CEL resources in one place. Ensure Consistency: Foster consistency across all CEL projects. Streamline Development: Simplify our development and release processes. What's Changing? The following repositories now reside in the cel-expr organization: google/cel-spec is now cel-expr/cel-spec google/cel-cpp is now cel-expr/cel-cpp google/cel-go is now cel-expr/cel-go google/cel-java is now cel-expr/cel-java cel-expr/cel-python and cel-expr/cel-c have already been in the cel-expr namespace All future development, issues, and pull requests for these projects will take place in their new homes within the cel-expr organization. This is a non-breaking change, due to automatic redirects, but you should update your URLs where possible. What Stays the Same? We've worked to make this transition as seamless as possible: Automatic Redirects: GitHub will automatically redirect all web traffic and git operations from the old google/cel-* URLs to the new cel-expr/cel-* locations. Your existing links and git remote configurations pointing to the old URLs should continue to work for cloning and fetching. Preserved History: The full commit history, issues, and pull requests for each repository have been migrated and are available in the new locations. Action Required: Update Your Dependencies While existing links and git remote configurations pointing to the old URLs should conti

## Hilt in Android Auto: From Manual Factories to a Cleaner Screen Provider

DevFeed: [Hilt in Android Auto: From Manual Factories to a Cleaner Screen Provider](<https://devfeed.tech/articles/hilt-in-android-auto-from-manual-factories-to-a-cleaner-screen-provider-22963.md>)

Original publisher: [Read original article](<https://funkymuse.github.io/posts/car-sample-with-hilt/>)

Author: FunkyMuse

Published: 2026-06-05T09:30:00Z

Content type: tutorial

Language: en

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

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Dagger](<https://devfeed.tech/topics/dagger.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [App](<https://devfeed.tech/topics/app.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-auto](<https://devfeed.tech/tags/android-auto.md>), [dagger](<https://devfeed.tech/tags/dagger.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [di](<https://devfeed.tech/tags/di.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

A tutorial on replacing manual dependency wiring in an Android Auto Car App with compile-time dependency injection using Hilt. It explains using Hilt entry points, screen providers, multibinding, and a central module to reduce constructor boilerplate and improve testability.

### Source excerpt

If you've ever followed the Android Auto Codelabs, you've seen the "sample" way of building a Car App. It works, it's functional, but as soon as you try to scale it beyond a simple demo, you hit a wall: Dependency Management. Keep in mind this is only one way to wire things, I'm pretty sure many others exist, I'm exploring things on Android Auto and Android Wear lately and how to connect and w...

## Flutter 3.44 will make Swift Package Manager the default for iOS and macOS apps

DevFeed: [Flutter 3.44 will make Swift Package Manager the default for iOS and macOS apps](<https://devfeed.tech/articles/saying-goodbye-to-cocoapods-swift-package-manager-is-soon-the-default-in-flutter-23043.md>)

Original publisher: [Read original article](<https://blog.flutter.dev/saying-goodbye-to-cocoapods-swift-package-manager-is-soon-the-default-in-flutter-645a92714a57?source=rss----4da7dfd21a33---4>)

Author: Jenn Magder

Published: 2026-04-30T15:57:00Z

Content type: release

Language: en

Sources: [Flutter - Medium](<https://devfeed.tech/sources/flutter-medium.md>)

Topics: [Flutter](<https://devfeed.tech/topics/flutter.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [macOS](<https://devfeed.tech/topics/macos.md>), [Package manager](<https://devfeed.tech/topics/package-manager.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>)

Tags: [cli](<https://devfeed.tech/tags/cli.md>), [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [flutter](<https://devfeed.tech/tags/flutter.md>), [flutter-app-development](<https://devfeed.tech/tags/flutter-app-development.md>), [ios](<https://devfeed.tech/tags/ios.md>), [macos](<https://devfeed.tech/tags/macos.md>), [migration](<https://devfeed.tech/tags/migration.md>), [release](<https://devfeed.tech/tags/release.md>), [swift](<https://devfeed.tech/tags/swift.md>), [swift-package-manager](<https://devfeed.tech/tags/swift-package-manager.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

Flutter 3.44 will make Swift Package Manager the default dependency manager for iOS and macOS apps, replacing CocoaPods. The Flutter CLI will migrate projects automatically, temporarily fall back to CocoaPods for unsupported plugins, and allow developers to opt out if SwiftPM causes breaking issues.

### Source excerpt

Dash migration! Starting with the next stable Flutter release, 3.44, Swift Package Manager (SwiftPM) replaces CocoaPods as the default dependency manager for iOS and macOS apps. This means no more messing around with Ruby or CocoaPods installations just to get your app running! CocoaPods is officially in maintenance mode, and its registry will permanently become read-only on December 2, 2026. While existing builds will still work, no new versions or pods will be added to the trunk after this date. To ensure that your apps continue receiving dependency updates and to provide access to the Swift package ecosystem, Flutter is transitioning to Apple's supported dependency management solution: Swift Package Manager. If you've already migrated your plugin(s) to use SwiftPM, read the "Plugin developers" section below for new migration requirements. Here is how to manage the transition. App developers For app developers, the Flutter CLI handles the migration. When you run or build your iOS or macOS app, the CLI automatically updates your Xcode project to use Swift Package Manager. Check out the Flutter migration docs for app developers for more details. If your app relies on plugins that haven't adopted Swift Package Manager yet, Flutter will print a warning listing exactly which of your dependencies are unsupported. Flutter will temporarily fall back to CocoaPods for plugins that have not adopted Swift packages yet. Because CocoaPods support will eventually be removed entirely, if a plugin hasn't updated and breaks your build, file an issue with the dependency's maintainer to request Swift package support or find an alternative package. We know that migrations can sometimes hit a snag. If SwiftPM causes a breaking issue, you can temporarily disable it for your project. Open your pubspec.yaml file, navigate to the flutter section, and set enable-swift-package-manager to false under the config block: flutter: config: enable-swift-package-manager: false If you opt out, please

## Lessons from Software Engineering at Google for Maintaining Healthy Codebases

DevFeed: [Lessons from Software Engineering at Google for Maintaining Healthy Codebases](<https://devfeed.tech/articles/what-i-learned-from-the-book-software-engineering-at-google-38697.md>)

Original publisher: [Read original article](<https://newsletter.techworld-with-milan.com/p/what-i-learned-at-swe-at-google-book>)

Author: Dr Milan Milanović

Published: 2026-02-26T16:01:23Z

Content type: opinion

Language: en

Sources: [Tech World With Milan Newsletter](<https://devfeed.tech/sources/tech-world-with-milan-newsletter.md>)

Topics: [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [Development](<https://devfeed.tech/topics/development.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [Code review](<https://devfeed.tech/topics/code-review.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [engineering-culture](<https://devfeed.tech/topics/engineering-culture.md>), [Mocking](<https://devfeed.tech/topics/mocking.md>), [releases](<https://devfeed.tech/topics/releases.md>), [upgrade](<https://devfeed.tech/topics/upgrade.md>)

Tags: [code-review](<https://devfeed.tech/tags/code-review.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [leadership](<https://devfeed.tech/tags/leadership.md>), [mocking](<https://devfeed.tech/tags/mocking.md>), [release](<https://devfeed.tech/tags/release.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>)

### AI overview

A review of Software Engineering at Google argues that the book's lessons apply to teams of different sizes. It highlights practices for evolving, sharing, testing, releasing, and eventually deleting code, along with code review, dependency management, productivity measurement, and engineering culture.

### Source excerpt

And what you can apply from today.

## Migrating from Nav2 to Nav3

DevFeed: [Migrating from Nav2 to Nav3](<https://devfeed.tech/articles/simplest-nav2-to-nav3-migration-guide-39354.md>)

Original publisher: [Read original article](<https://kt.academy/article/nav2-to-nav3>)

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

Content type: tutorial

Language: en

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

Topics: [migration](<https://devfeed.tech/topics/migration.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [interface](<https://devfeed.tech/topics/interface.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [compose](<https://devfeed.tech/tags/compose.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [guide](<https://devfeed.tech/tags/guide.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [interface](<https://devfeed.tech/tags/interface.md>), [migrate](<https://devfeed.tech/tags/migrate.md>), [migration-guide](<https://devfeed.tech/tags/migration-guide.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

A practical guide to migrating a Compose navigation setup from Nav2 to Nav3. It covers adding dependencies, updating destinations to use NavKey, and migrating NavHosts incrementally while preserving the existing navigation during the transition.

### Source excerpt

How to migrate routes, navigation calls, and transitions from Nav2 to Nav3.

## JavaScript's dependency ecosystem needs stronger supply-chain security and package management

DevFeed: [JavaScript's dependency ecosystem needs stronger supply-chain security and package management](<https://devfeed.tech/articles/a-better-future-for-javascript-that-won-t-happen-20789.md>)

Original publisher: [Read original article](<https://drewdevault.com/blog/An-impossible-future-for-JS/>)

Author: September

Published: 2025-09-17T00:00:00Z

Content type: opinion

Language: en

Sources: [Drew DeVault](<https://devfeed.tech/sources/drew-devault.md>)

Topics: [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Package Management](<https://devfeed.tech/topics/package-management.md>), [npm](<https://devfeed.tech/topics/npm.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [linux](<https://devfeed.tech/tags/linux.md>), [npm](<https://devfeed.tech/tags/npm.md>), [reproducible-builds](<https://devfeed.tech/tags/reproducible-builds.md>), [supply-chain](<https://devfeed.tech/tags/supply-chain.md>)

### AI overview

This opinion article argues that JavaScript's dependency ecosystem should respond to supply-chain attacks by reducing sprawling dependency trees and adopting stronger trust, package-signing, distribution, and reproducible-build practices. It also proposes a standard library and more consolidated packages.

### Source excerpt

In the wake of the largest supply-chain attack in history, the JavaScript community could have a moment of reckoning and decide: never again. As the panic and shame subsides, after compromised developers finish re-provisioning their workstations and rotating their keys, the ecosystem might re-orient itself towards solving the fundamental flaws that allowed this to happen. After all, people have been sounding the alarm for years that this approach to dependency management is reckless and dangerous and broken by design. Maybe this is the moment when the JavaScript ecosystem begins to understand the importance and urgency of this problem, and begins its course correction. It could leave behind its sprawling dependency trees full of micro-libraries, establish software distribution based on relationships of trust, and incorporate the decades of research and innovation established by more serious dependency management systems. Perhaps Google and Mozilla, leaders in JavaScript standards and implementations, will start developing a real standard library for JavaScript, which makes micro-dependencies like left-pad a thing of the past. This could be combined with a consolidation of efforts, merging micro-libraries into larger packages with a more coherent and holistic scope and purpose, which prune their own dependency trees in turn. This could be the moment where npm comes to terms with its broken design, and with a well-funded effort (recall that, ultimately, npm is GitHub is Microsoft, market cap $3 trillion USD), will develop and roll out the next generation of package management for JavaScript. It could incorporate the practices developed and proven in Linux distributions, which rarely suffer from these sorts of attacks, by de-coupling development from packaging and distribution, establishing package maintainers who assemble and distribute curated collections of software libraries. By introducing universal signatures for packages of executable code, smaller channels and

## When do you really need a monorepo?

DevFeed: [When do you really need a monorepo?](<https://devfeed.tech/articles/when-do-you-really-need-a-monorepo-31109.md>)

Original publisher: [Read original article](<https://www.mintlify.com/blog/when-do-you-really-need-a-monorepo>)

Author: Emma Adler

Published: 2025-02-26T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [monorepo](<https://devfeed.tech/topics/monorepo.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [build performance](<https://devfeed.tech/topics/build-performance.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>)

Tags: [best-practices](<https://devfeed.tech/tags/best-practices.md>), [build-performance](<https://devfeed.tech/tags/build-performance.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [code](<https://devfeed.tech/tags/code.md>), [collaboration](<https://devfeed.tech/tags/collaboration.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [monorepo](<https://devfeed.tech/tags/monorepo.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>)

### AI overview

This guide helps software engineering teams choose between monorepo and multi-repo strategies. It compares code sharing, dependency management, build performance, CI/CD pipelines, documentation consistency, collaboration, and access control, while describing how large organizations use monorepos.

### Source excerpt

Software engineering teams often face an important decision: "Should all projects live in one repository or be split across multiple repositories?" This decision impacts build times, CI/CD pipelines, dependency management, and even documentation accuracy.

## Undisclosed bundled dependencies in Kotlin compiler POM metadata

DevFeed: [Undisclosed bundled dependencies in Kotlin compiler POM metadata](<https://devfeed.tech/articles/this-is-why-we-can-t-have-nice-things-when-pom-files-lie-30466.md>)

Original publisher: [Read original article](<https://dev.to/autonomousapps/this-is-why-we-cant-have-nice-things-when-pom-files-lie-3lm5>)

Author: Tony Robalik

Published: 2025-02-07T23:54:47Z

Content type: opinion

Language: en

Sources: [DEV Community: Tony Robalik](<https://devfeed.tech/sources/dev-community-tony-robalik.md>)

Topics: [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [Java](<https://devfeed.tech/topics/java.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>)

Tags: [coding](<https://devfeed.tech/tags/coding.md>), [community](<https://devfeed.tech/tags/community.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [development](<https://devfeed.tech/tags/development.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [inclusive](<https://devfeed.tech/tags/inclusive.md>), [java](<https://devfeed.tech/tags/java.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [software](<https://devfeed.tech/tags/software.md>)

### AI overview

The author investigates a JVM ClassCastException and traces it to the Kotlin compiler JAR loaded by Gradle. They argue that bundled, unrelocated Guava classes and POM metadata that does not disclose the fat JAR create dependency-management problems.

### Source excerpt

Photo by Marco Bicca on Unsplash. I really hope there's a light at the end of this sewer. Sorry, my country is dissolving into a Nazi sewer of world-historical proportions and so I'm dealing with my otherwise fruitless rage by yelling about JVM things. The fact that Java classes exist in a global namespace is not well-appreciated, even by vendors of major parts of the ecosystem (apparently). Caused by: java.lang.ClassCastException: class com.google.common.graph.ImmutableGraph cannot be cast to class com.google.common.graph.SuccessorsFunction (com.google.common.graph.ImmutableGraph and com.google.common.graph.SuccessorsFunction are in unnamed module of loader org.gradle.internal.classloader.VisitableURLClassLoader$InstrumentingVisitableURLClassLoader @4617120) A confusing error at the best of times, but to a build engineer (i.e. me) trying to help out during a SEV, a despair-inducing example of how Dependency Management on the JVM is Completely Broken, What Are We Even Doing Here. A ClassCastException always means Someone Somewhere Hates You, or at least values their own KPIs more than not polluting the entire goddamn ecosystem. Let's debug! My first step is to navigate to the Graph class and check its hierarchy. I can confirm that, yes, in Guava 33.3.1-jre at least, that class does indeed implement the SuccessorsFunction interface. It should not be throwing a ClassCastException! Next step. In Intellij (the vendor which is ironically the source of this amongst most of the rest of my woes), I set a breakpoint at the exception and evaluate the following expression.1 // `this` is an instance of the `com.google.common.graph.Graph` class this.javaClass.superclass.superclass.superclass.interfaces.first().protectionDomain.codeSource.location That expression resolves to this: file:/Users/<<ME!>>/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-compiler/2.0.21/88f09afc2536e38d528e78eb8349504de10ac436/kotlin-compiler-2.0.21.jar What the fuck! That is not the righ

## Heroku CLI v9: Infrastructure Upgrades and oclif Transition

DevFeed: [Heroku CLI v9: Infrastructure Upgrades and oclif Transition](<https://devfeed.tech/articles/heroku-cli-v9-infrastructure-upgrades-and-oclif-transition-26424.md>)

Original publisher: [Read original article](<https://www.heroku.com/blog/heroku-cli-v9-infrastructure-upgrades-oclif-transition/>)

Author: Anush DSouza

Published: 2024-07-25T01:55:03Z

Content type: release

Language: en

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

Topics: [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Heroku](<https://devfeed.tech/topics/heroku.md>), [upgrade](<https://devfeed.tech/topics/upgrade.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [legacy](<https://devfeed.tech/topics/legacy.md>), [maintenance](<https://devfeed.tech/topics/maintenance.md>), [telemetry](<https://devfeed.tech/topics/telemetry.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [cli](<https://devfeed.tech/tags/cli.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [developer-tools](<https://devfeed.tech/tags/developer-tools.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [framework](<https://devfeed.tech/tags/framework.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [legacy](<https://devfeed.tech/tags/legacy.md>), [maintenance](<https://devfeed.tech/tags/maintenance.md>), [release](<https://devfeed.tech/tags/release.md>), [telemetry](<https://devfeed.tech/tags/telemetry.md>), [testing](<https://devfeed.tech/tags/testing.md>), [upgrades](<https://devfeed.tech/tags/upgrades.md>)

### AI overview

Heroku CLI v9.0.0 restructures the core CLI around the oclif platform, consolidates core commands into one package, improves testing and release automation, and adds telemetry. The release also introduces breaking changes to output formatting, flags, arguments, and deprecated commands.

### Source excerpt

Introduction The Heroku CLI is an incredible tool. It's simple, extendable, and allows you to interact with all the Heroku functionality you depend on day to day. For this reason, it's incredibly important for us to keep it up to date. Today, we're excited to highlight a major upgrade with the release of Heroku CLI [...] The post Heroku CLI v9: Infrastructure Upgrades and oclif Transition appeared first on Heroku.

## Dependency Management - Best Practices for Naming Gradle Version Catalog Entries

DevFeed: [Dependency Management - Best Practices for Naming Gradle Version Catalog Entries](<https://devfeed.tech/articles/dependency-management-best-practices-for-naming-gradle-version-catalog-entries-24598.md>)

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

Author: Benedikt Ritter

Published: 2024-07-08T04:00:00Z

Content type: article

Language: en

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

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>)

Tags: [best-practices](<https://devfeed.tech/tags/best-practices.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [gradle](<https://devfeed.tech/tags/gradle.md>)

### AI overview

This article explains how Gradle version catalogs standardize dependency definitions and describes the Develocity team's conventions for naming catalog entries based on GAV coordinates. It also shows how catalog entries generate compile-safe dependency accessors.

### Source excerpt

Version catalogs are a fairly recent feature in Gradle Build Tool. They help manage dependencies by providing a standardized way of defining and accessing the catalog of dependencies used in a project--ensuring that all developers in a team are aligned on dependency names and definitions saves time and cognitive load for everyone. Like most Gradle features they are quite flexible, so users have to come up with their own conventions for how to use them. In this blog post, we're going to share some of the best-practices we employ in the Develocity team when it comes to managing dependencies using version catalogs. In particular, we're going to look at our convention for how to derive a version catalog entry name from the GAV (short for Group, Artifact ID, Version) coordinates of a particular dependency. Version catalogs Version catalogs are part of Gradle's dependency management features. They provide a convenient, standardized way to define a set of dependencies that are available to engineers in the project. Version catalogs can either be defined directly in Gradle's settings script, or using a separate TOML file. The default for a TOML catalog is to place it in gradle/libs.versions.toml. This will create a libs catalog to be used in the build. An example entry in TOML format can look like this: commons-lang3 = { module = "org.apache.commons:commons-lang3", version = "3.14.0" } When Gradle finds a version catalog, it generates accessors that can be used in the build scripts to define dependencies in a compile-safe way. So instead of writing: implementation("org.apache.commons:commons-lang3:3.14.0") And repeating the GAV coordinate string in each of the build scripts where we need this dependency, we can now write: implementation(libs.commons.lang3) As we can see from this example there are some rules that Gradle applies while translating from the catalog entry commons-lang3 to the accessor libs.commons.lang3. Furthermore a question that we could be asking is why I ca

## Road to Gradle 9 with Louis Jacomet

DevFeed: [Road to Gradle 9 with Louis Jacomet](<https://devfeed.tech/articles/road-to-gradle-9-with-louis-jacomet-24688.md>)

Original publisher: [Read original article](<https://blog.gradle.org/road-to-gradle-9>)

Author: Oleg Nenashev

Published: 2024-06-18T04:00:00Z

Content type: article

Language: en

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

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [Cache](<https://devfeed.tech/topics/cache.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Java](<https://devfeed.tech/topics/java.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>)

Tags: [build-tool](<https://devfeed.tech/tags/build-tool.md>), [cache](<https://devfeed.tech/tags/cache.md>), [compatibility](<https://devfeed.tech/tags/compatibility.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [github](<https://devfeed.tech/tags/github.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [performance](<https://devfeed.tech/tags/performance.md>)

### AI overview

The article discusses the upcoming Gradle 9 release based on an interview with Louis Jacomet at Devoxx France. It highlights performance, comprehensibility, support for modern Java and Kotlin versions, Configuration Cache improvements, plugin compatibility, and Isolated Projects.

### Source excerpt

At Devoxx France, we sat down with Louis Jacomet, a tech lead at Gradle Inc. Louis leads the Gradle Build Tool support team and coordinates releases, so you can often see him active on GitHub issues and speaking at Gradle conferences. Let's dive into what Louis shares about the upcoming Gradle 9 release! A Busy Day at Devoxx FR Louis had a packed schedule on Friday at Devoxx FR, with 4 hours of talks lined up. He did a session with Hervé Boutemy from the Apache Maven community on navigating the labyrinth of dependency management, which was a 1-hour talk. He also had a separate discussion with his colleague Paul Merlin about the upcoming features in Gradle 9. Preparing for so many talks at once is no small feat. As Louis puts it: Thinking about what you want to say, organizing it, having cool demos, and making it interesting for the audience. Yeah, it's work. At the conference, Maven and Gradle folks worked together to share tips and best practices on dependency management in both systems. See the talk by Louis and Hervé Boutemy here (in French): Key Areas in Gradle 9 So what can we expect in Gradle 9? Louis outlined a few key areas they're focusing on for this next major version of Gradle: 🚀 Performance 💡 Comprehensibility 🐘 Support for modern Java and Kotlin versions Configuration Cache Improvements One major focus is continuing the work on the Configuration Cache, which was marked stable in Gradle 8.1. In Gradle 9.0, the Configuration Cache will be the preferred mode of execution, and turning it off will be deprecated. This means every build should use the Configuration Cache feature, speeding up the configuration phase and making builds faster overall. Gradle configuration is a significant part of the build, hence the Configuration Cache improvements. However, this necessitates considerable effort on internal Gradle plugins and accommodating use cases that aren't always compatible. This is particularly true for community plugins. The Gradle team will continue col

## Gradle's Evolution - A Conversation with Adam Murdoch

DevFeed: [Gradle's Evolution - A Conversation with Adam Murdoch](<https://devfeed.tech/articles/gradle-s-evolution-a-conversation-with-adam-murdoch-24637.md>)

Original publisher: [Read original article](<https://blog.gradle.org/gradles-evolution-a-conversation-with-adam-murdoch>)

Author: Laura Kassovic

Published: 2024-06-12T04:00:00Z

Content type: article

Language: en

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

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [Automation](<https://devfeed.tech/topics/automation.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Android](<https://devfeed.tech/topics/android.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [automation](<https://devfeed.tech/tags/automation.md>), [build-tool](<https://devfeed.tech/tags/build-tool.md>), [build-tools](<https://devfeed.tech/tags/build-tools.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [evolution](<https://devfeed.tech/tags/evolution.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>)

### AI overview

An interview with Gradle CTO Adam Murdoch traces Gradle's origins, growth, and evolution as a build tool. It discusses Gradle's expanding role across dependency management, deployment, production, Kotlin, and Android, along with major product milestones from 2012 through 2018.

### Source excerpt

We had a conversation with Adam Murdoch, the CTO of Gradle, about his journey from the very origins of Gradle. Adam offers insights into the latest features and discusses the future of build tools. The Genesis of Gradle Adam began his journey with Gradle around 2008 while seeking a robust alternative to the Ant-based build systems that he used at the time. He recalls, "I was looking for a replacement for our Ant-based build system, came across this new tool called Gradle, started using it, [and] started sending in patches for improvements." Hans Dockter, the founder of Gradle, recognized Adam's contributions and invited him to join as a maintainer. This collaboration marked the beginning of a transformative journey in build automation. "Here we are 15 years later," Adam remarks, reflecting on the vast changes since those early days. Recognizing a growing ecosystem Reflecting on the evolution of build tools over the years, Adam notes the dramatic expansion of the ecosystem. "When we started Gradle, there were no microservices [...] building your software meant compiling some classes, making adjustments, and then you were done." Today, the landscape is vastly different. Build tools now need to handle various tasks from deployment to production, which were not considered when Gradle first began. The introduction of languages like Kotlin and platforms like Android has further expanded Gradle's role in the developer community. 2012: Gradle Build Tool 1.0 introduces a faster, more accurate dependency resolution engine and expands plugin support. 2014: Gradle Build Tool 2.0 improves performance and memory efficiency, introduces new dependency management features, and enhances incremental build support. 2016: Gradle Build Tool 3.0 enables the Gradle Daemon by default and enhances IDE support with auto-completion and navigation with Kotlin DSL. 2016: Gradle, Inc. releases Gradle Enterprise as a commercial product to build software better and faster with Build Scan® and Build C

## Gradle partners with GitHub on supply chain security

DevFeed: [Gradle partners with GitHub on supply chain security](<https://devfeed.tech/articles/gradle-partners-with-github-on-supply-chain-security-24626.md>)

Original publisher: [Read original article](<https://blog.gradle.org/gradle-github-partnership-supply-chain-security>)

Author: Gradle Build Tool

Published: 2024-04-18T04:00:00Z

Content type: news

Language: en

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

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [supply-chain-security](<https://devfeed.tech/topics/supply-chain-security.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [Security](<https://devfeed.tech/topics/security.md>), [Developer experience](<https://devfeed.tech/topics/developer-experience.md>)

Tags: [dependabot](<https://devfeed.tech/tags/dependabot.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [github](<https://devfeed.tech/tags/github.md>), [github-action](<https://devfeed.tech/tags/github-action.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [integrity](<https://devfeed.tech/tags/integrity.md>), [security](<https://devfeed.tech/tags/security.md>), [supply-chain-security](<https://devfeed.tech/tags/supply-chain-security.md>)

### AI overview

Gradle and GitHub announce a technical partnership focused initially on software supply chain security and developer experience. The first feature is a Gradle dependency submission GitHub Action that automatically sends project dependencies to GitHub's dependency graph, helping users understand dependencies and receive Dependabot alerts.

### Source excerpt

Gradle is happy to announce a technical partnership with GitHub focusing on multiple areas, starting with supply chain security and developer experience. With this partnership, we establish a direct connection between organizations and plan to cooperate on integrations between GitHub and Gradle to promote best security practices among Gradle users. The first feature being released as a part of this partnership is the dependency submission GitHub Action for Gradle, which can be configured to automatically submit dependencies to GitHub's dependency graph, helping users better understand their application and receive Dependabot alerts. This partnership will improve the experience of many users within the shared Gradle and GitHub ecosystem. GitHub is the world's leading AI-powered developer platform to build, scale, and deliver secure software, home to more than 284 million public repositories. Gradle Build Tool is the default build system for Android application development, the most used JVM build system on GitHub, and among the most used build systems on the GitHub platform across public and private repositories. "Gradle is one of the most used build tools among GitHub users, and we're excited to continue to collaborate with them to improve supply chain security for the Gradle community. These updates to the Gradle Build Action will help millions of GitHub users improve the security of their apps by giving them better insights into their dependencies." - Jon Janego, Senior Product Manager at GitHub The problem with vulnerable dependencies Vulnerable project dependencies are a major risk for the software ecosystem. It's critical for developers to quickly detect potential vulnerabilities arising from both direct and transitive dependencies. It is a priority for many modern build systems, including Gradle, to help developers manage their dependencies and protect the supply chain and end users. Gradle Build Tool provides advanced security features like dependency verific

## Spotlight on SIG Architecture: Code Organization

DevFeed: [Spotlight on SIG Architecture: Code Organization](<https://devfeed.tech/articles/spotlight-on-sig-architecture-code-organization-17577.md>)

Original publisher: [Read original article](<https://www.kubernetes.dev/blog/2024/04/11/sig-architecture-code-spotlight-2024/>)

Author: The Kubernetes Authors

Published: 2024-04-11T00:00:00Z

Content type: article

Language: en

Sources: [Kubernetes Contributors Blog](<https://devfeed.tech/sources/kubernetes-contributors-blog.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [code](<https://devfeed.tech/tags/code.md>), [cycles](<https://devfeed.tech/tags/cycles.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [github](<https://devfeed.tech/tags/github.md>), [go](<https://devfeed.tech/tags/go.md>), [interview](<https://devfeed.tech/tags/interview.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [series](<https://devfeed.tech/tags/series.md>), [technical](<https://devfeed.tech/tags/technical.md>), [vmware](<https://devfeed.tech/tags/vmware.md>)

### AI overview

An interview in the SIG Architecture Spotlight series examines Kubernetes code organization. It discusses the scale of the Kubernetes Go codebase, dependency management, publishing Go modules, and using a monorepo with downstream repositories.

### Source excerpt

This is the third interview of a SIG Architecture Spotlight series that will cover the different subprojects. We will cover SIG Architecture: Code Organization . In this SIG Architecture spotlight I talked with Madhav Jivrajani (VMware), a member of the Code Organization subproject. Introducing the Code Organization subproject Frederico (FSM): Hello Madhav, thank you for your availability. Could you start by telling us a bit about yourself, your role and how you got involved in Kubernetes? Madhav Jivrajani (MJ): Hello! My name is Madhav Jivrajani, I serve as a technical lead for SIG Contributor Experience and a GitHub Admin for the Kubernetes project. Apart from that I also contribute to SIG API Machinery and SIG Etcd, but more recently, I've been helping out with the work that is needed to help Kubernetes stay on supported versions of Go , and it is through this that I am involved with the Code Organization subproject of SIG Architecture. FSM: A project the size of Kubernetes must have unique challenges in terms of code organization - is this a fair assumption? If so, what would you pick as some of the main challenges that are specific to Kubernetes? MJ: That's a fair assumption! The first interesting challenge comes from the sheer size of the Kubernetes codebase. We have ≅2.2 million lines of Go code (which is steadily decreasing thanks to dims and other folks in this sub-project!), and a little over 240 dependencies that we rely on either directly or indirectly, which is why having a sub-project dedicated to helping out with dependency management is crucial: we need to know what dependencies we're pulling in, what versions these dependencies are at, and tooling to help make sure we are managing these dependencies across different parts of the codebase in a consistent manner. Another interesting challenge with Kubernetes is that we publish a lot of Go modules as part of the Kubernetes release cycles, one example of this is client-go .However, we as a project would

## Installing Python on a Mac with pyenv and pyenv-virtualenv

DevFeed: [Installing Python on a Mac with pyenv and pyenv-virtualenv](<https://devfeed.tech/articles/the-right-way-to-install-python-on-a-mac-38843.md>)

Original publisher: [Read original article](<https://mettlesome.substack.com/p/the-right-way-to-install-python-on>)

Author: Raphaël Hoogvliets

Published: 2024-02-07T09:27:30Z

Content type: tutorial

Language: en

Sources: [Raphaël Hoogvliets](<https://devfeed.tech/sources/raphael-hoogvliets.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>)

Tags: [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [install](<https://devfeed.tech/tags/install.md>), [mac](<https://devfeed.tech/tags/mac.md>), [python](<https://devfeed.tech/tags/python.md>)

### AI overview

This tutorial recommends using pyenv with pyenv-virtualenv to install and manage Python on a Mac. It explains how pyenv supports multiple Python versions, project-specific version pinning, user-local installations, and isolated per-project dependencies.

### Source excerpt

Carefree and flexible Python use awaits you!

## Separation of Concerns in Cross-Compilation

DevFeed: [Separation of Concerns in Cross-Compilation](<https://devfeed.tech/articles/separation-of-concerns-in-cross-compilation-32430.md>)

Original publisher: [Read original article](<https://nixcademy.com/posts/cross-compilation-with-nix/>)

Author: Jacek Galowicz

Published: 2024-01-30T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [Cross-Compilation](<https://devfeed.tech/topics/cross-compilation.md>), [Nix](<https://devfeed.tech/topics/nix.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Dockerfile](<https://devfeed.tech/topics/dockerfile.md>), [static linking](<https://devfeed.tech/topics/static-linking.md>)

Tags: [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [compilation](<https://devfeed.tech/tags/compilation.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [cross-compilation](<https://devfeed.tech/tags/cross-compilation.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [development](<https://devfeed.tech/tags/development.md>), [docker](<https://devfeed.tech/tags/docker.md>), [static-linking](<https://devfeed.tech/tags/static-linking.md>)

### AI overview

This guide explains how Nix applies separation of concerns to cross-compilation in complex C++ projects. It discusses compiler selection, dependency management, external libraries, distribution, Docker-based workflows, and static linking.

### Source excerpt

Master cross-compilation in complex C++ projects with Nix. Simplify dependency management, boost development speed, and reduce costs with this guide!

## Comparing the Dependency Size of AWS Java SDK v1 and v2 SQS Clients

DevFeed: [Comparing the Dependency Size of AWS Java SDK v1 and v2 SQS Clients](<https://devfeed.tech/articles/aws-java-sdk-2-x-at-half-the-cost-23967.md>)

Original publisher: [Read original article](<https://medium.com/making-meetup/aws-java-sdk-2-x-at-half-the-cost-cca5727a349b?source=rss----6981e268ba45---4>)

Author: Doug Tangren

Published: 2024-01-19T16:40:54Z

Content type: article

Language: en

Sources: [Making Meetup - Medium](<https://devfeed.tech/sources/making-meetup-medium.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [Amazon Simple Queue Service (SQS)](<https://devfeed.tech/topics/amazon-simple-queue-service-sqs.md>), [Netty](<https://devfeed.tech/topics/netty.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>)

Tags: [aws](<https://devfeed.tech/tags/aws.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [java](<https://devfeed.tech/tags/java.md>), [maintenance](<https://devfeed.tech/tags/maintenance.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [sdks](<https://devfeed.tech/tags/sdks.md>), [security-vulnerabilities](<https://devfeed.tech/tags/security-vulnerabilities.md>), [sqs](<https://devfeed.tech/tags/sqs.md>)

### AI overview

This article from Meetup compares the dependency size of AWS SDK for Java v1 and v2 using SQS client versions 1.12.637 and 2.23.3. It attributes the larger v2 footprint largely to bundled defaults and transitive dependencies, including Netty, and discusses the maintenance and security costs of dependencies.

### Source excerpt

Photo by Nathan Dumlao on Unsplash At Meetup, two of our core engineering principles are to be cost conscious and use technologies that are proven to scale. On Meetup every time you click an attend button, schedule an event, create a group, start a conversation, decide join the local puppy group in your neighborhood, or any other activity your request is guaranteed to pass through multiple JVMs and within those, likely half a dozen AWS services along the way which themselves are often sitting in front of multiple JVMs. Both the JVM and AWS APIs are considered proven, rock-solid, and scalable technologies at Meetup. This is why we're heavily invested in Java and AWS for our core platform services as well as keeping both up to date. Like many companies, AWS included, we've completed the spiritual journey of migrating our largest primary platform codebase from Java 8 to 11, then to 17, and most recently to 21. The renaissance happening with the Java community has been wonderful and has unlocked a number of options for us, one being the subject of this post. Being a 20 year strong engineering focused company, we've accumulated a lot learnings in the area of understanding the cost of code dependencies. We've learned it's much easier to add than to remove dependencies and that the simplest solution to avoid the future burden of maintenance tax and security vulnerabilities attached to dependencies is simply not to invite them to the party in the first place so we're relatively conservative when evaluating new dependencies. We understand the long term tax and cost involved in doing so. When evaluating the new v2 AWS SDKs for Java, the first surprise we encountered was that it was nearing twice the size of that of the equivalent v1 SDK clients. While we started our V2 migration journey relatively long ago we recently revisited and this is still more or less the same case. We'll compare the AWS SDK SQS client versionsv1.12.637vs v2.23.3 respectively in this post. Here is an e

## Handling security vulnerabilities in Spring Boot

DevFeed: [Handling security vulnerabilities in Spring Boot](<https://devfeed.tech/articles/handling-security-vulnerabilities-in-spring-boot-8093.md>)

Original publisher: [Read original article](<https://snyk.io/blog/security-vulnerabilities-spring-boot/>)

Author: Brian Vermeer

Published: 2023-11-29T06:00:00Z

Content type: article

Language: en

Sources: [Blog RSS Feed | Snyk](<https://devfeed.tech/sources/blog-rss-feed-snyk.md>)

Topics: [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [Security](<https://devfeed.tech/topics/security.md>), [snyk-open-source](<https://devfeed.tech/topics/snyk-open-source.md>)

Tags: [application-security](<https://devfeed.tech/tags/application-security.md>), [awareness](<https://devfeed.tech/tags/awareness.md>), [blog](<https://devfeed.tech/tags/blog.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [developer](<https://devfeed.tech/tags/developer.md>), [devrel](<https://devfeed.tech/tags/devrel.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [java](<https://devfeed.tech/tags/java.md>), [open-source-security](<https://devfeed.tech/tags/open-source-security.md>), [sca](<https://devfeed.tech/tags/sca.md>), [security](<https://devfeed.tech/tags/security.md>), [snyk-open-source](<https://devfeed.tech/tags/snyk-open-source.md>), [spring-boot](<https://devfeed.tech/tags/spring-boot.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>)

### AI overview

This article explains how to identify and remediate open source security vulnerabilities in Spring Boot applications. It emphasizes dependency management, uses Snyk Open Source as a software composition analysis tool, and discusses updating vulnerable transitive dependencies, including updating the Spring Boot Webflux starter from 2.7.16 to 2.7.17. The supplied text ends while discussing Maven and Gradle configuration.

### Source excerpt

In this blog, we'll demonstrate the best way to find and remediate open source vulnerabilities in Spring Boot.

## Tips and tricks for using Renovate

DevFeed: [Tips and tricks for using Renovate](<https://devfeed.tech/articles/tips-and-tricks-for-using-renovate-38559.md>)

Original publisher: [Read original article](<https://msfjarvis.dev/posts/tips-and-tricks-for-using-renovate/>)

Author: Harsh Shandilya

Published: 2023-01-17T19:32:18Z

Content type: tutorial

Language: en

Sources: [Posts on Harsh Shandilya](<https://devfeed.tech/sources/posts-on-harsh-shandilya.md>)

Topics: [renovate](<https://devfeed.tech/topics/renovate.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Dependabot](<https://devfeed.tech/topics/dependabot.md>), [ci](<https://devfeed.tech/topics/ci.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [Hugo](<https://devfeed.tech/topics/hugo.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Netlify](<https://devfeed.tech/topics/netlify.md>)

Tags: [config](<https://devfeed.tech/tags/config.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [dependabot](<https://devfeed.tech/tags/dependabot.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [github](<https://devfeed.tech/tags/github.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [hugo](<https://devfeed.tech/tags/hugo.md>), [netlify](<https://devfeed.tech/tags/netlify.md>), [regex](<https://devfeed.tech/tags/regex.md>), [renovate](<https://devfeed.tech/tags/renovate.md>), [tips](<https://devfeed.tech/tags/tips.md>)

### AI overview

A practical guide to using Renovate for dependency management. It covers disabling updates for selected packages, grouping related updates, setting semver bounds, detecting dependencies in non-standard declarations with regular expressions, securing GitHub Actions with exact commit SHAs, and automatically merging compatible updates.

### Source excerpt

Renovate is an extremely powerful tool for keeping your dependencies up-to-date, and its flexibility is often left unexplored. I'm hoping to change that

## Building a Semantically Correct Blockchain in Go: Genesis Blocks and Asset On-Ramping

DevFeed: [Building a Semantically Correct Blockchain in Go: Genesis Blocks and Asset On-Ramping](<https://devfeed.tech/articles/ultimate-go-advanced-engineering-episode-8-22194.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2022/12/ultimate-go-advanced-engineering-episode-8.html>)

Published: 2022-12-19T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Blockchain](<https://devfeed.tech/topics/blockchain.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [blockchain](<https://devfeed.tech/tags/blockchain.md>), [blockchain-asset](<https://devfeed.tech/tags/blockchain-asset.md>), [blockchain-equity](<https://devfeed.tech/tags/blockchain-equity.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [genesis](<https://devfeed.tech/tags/genesis.md>), [genesis-block](<https://devfeed.tech/tags/genesis-block.md>), [go](<https://devfeed.tech/tags/go.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

This video explains how to build a semantically correct blockchain entirely with Go. It covers how a blockchain starts, the role of the genesis block, and how assets are introduced into the blockchain, while building on concepts from an earlier dependency-management example.

### Source excerpt

Introduction In the first part of the series, Bill designed a dependency management system. The dependency manager needed to be distributed, transparent, cryptographically auditable and scalable. To meet these requirements, Bill borrowed concepts from blockchain. He did this to illustrate how the blockchain can be repurposed and used to accomplish the mundane task of dependency management. While doing so, Bill indirectly highlighted the problems a blockchain solves. In the next segment of the series, Bill will build a semantically correct blockchain. He plans to perform this task entirely with Go and he'lll re-use the ideas described in the previous segment to further facilitate your understanding of what a blockchain is. Early on Bill admits he is no economist, and for the sake of the series he will use a hypothetical pot of gold as the starting equity for his blockchain. Follow along and learn how assets are "on-ramped" into the blockchain.

## Ultimate Go: Advanced Engineering Episode 2

DevFeed: [Ultimate Go: Advanced Engineering Episode 2](<https://devfeed.tech/articles/ultimate-go-advanced-engineering-episode-2-22188.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2022/12/ultimate-go-advanced-engineering-episode-2.html>)

Published: 2022-12-13T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [Blockchain](<https://devfeed.tech/topics/blockchain.md>), [Algorithm](<https://devfeed.tech/topics/algorithm.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Database](<https://devfeed.tech/topics/database.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [blockchain](<https://devfeed.tech/tags/blockchain.md>), [cli](<https://devfeed.tech/tags/cli.md>), [database](<https://devfeed.tech/tags/database.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [go](<https://devfeed.tech/tags/go.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [golang-blockchain](<https://devfeed.tech/tags/golang-blockchain.md>), [hash-algorithms](<https://devfeed.tech/tags/hash-algorithms.md>), [hash-collision](<https://devfeed.tech/tags/hash-collision.md>), [hashing](<https://devfeed.tech/tags/hashing.md>), [sha-256](<https://devfeed.tech/tags/sha-256.md>), [sha256](<https://devfeed.tech/tags/sha256.md>)

### AI overview

This video tutorial explains how dependency management in Go relates to reproducible builds, blockchain hashing, and trust in a centralized dependency database. It introduces hashes as distributed identifiers, explains collisions, and discusses the use of SHA-256 to reduce collision risk.

### Source excerpt

Introduction In episode 1, Bill finished by describing the dependency management conundrum Go faced in its early days. Prior to the Go team providing the module system, developers were on their own to find a solution. Engineers in the Go community did propose different solutions, but there was no general consensus on which tool to use for dependency management. In this video, Bill will begin to architect a solution to the reproducible build problem. By doing so, you will learn how blockchain hashing works and then Bill will share how centralizing this dependency database will cause other problems. One of these problems is people eventually losing trust in the database because only one stakeholder, Bill, can make changes to it without a means for users to detect the change. He closes this segment with an important question, "how do we establish trust for this CLI's database?"

## Composer for the Rest of Us

DevFeed: [Composer for the Rest of Us](<https://devfeed.tech/articles/composer-for-the-rest-of-us-31246.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/composer-for-the-rest-of-us>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2022-08-14T20:04:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Composer](<https://devfeed.tech/topics/composer.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [PHP](<https://devfeed.tech/topics/php.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [JSON](<https://devfeed.tech/topics/json.md>)

Tags: [cli](<https://devfeed.tech/tags/cli.md>), [composer](<https://devfeed.tech/tags/composer.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [insights](<https://devfeed.tech/tags/insights.md>), [install](<https://devfeed.tech/tags/install.md>), [json](<https://devfeed.tech/tags/json.md>), [learn](<https://devfeed.tech/tags/learn.md>), [leverage](<https://devfeed.tech/tags/leverage.md>), [like](<https://devfeed.tech/tags/like.md>), [manage](<https://devfeed.tech/tags/manage.md>), [php](<https://devfeed.tech/tags/php.md>), [php-based](<https://devfeed.tech/tags/php-based.md>), [projects](<https://devfeed.tech/tags/projects.md>)

### AI overview

A tutorial on Composer, the PHP dependency-management tool. It explains how Composer declares, installs, updates, and autoloads project dependencies, then introduces composer.json, composer.lock, Packagist, and useful Composer commands.

### Source excerpt

Learn about how you can leverage Composer like a pro to manage & install your dependencies in PHP-based projects

## Practical Uses Of Blockchain Technology

DevFeed: [Practical Uses Of Blockchain Technology](<https://devfeed.tech/articles/practical-uses-of-blockchain-technology-22184.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2022/06/practical-uses-blockchain-technology.html>)

Published: 2022-06-06T00:00:00Z

Content type: article

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Blockchain](<https://devfeed.tech/topics/blockchain.md>), [blockchain technology](<https://devfeed.tech/topics/blockchain-technology.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [Database](<https://devfeed.tech/topics/database.md>), [Cryptography](<https://devfeed.tech/topics/cryptography.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [blockchain](<https://devfeed.tech/tags/blockchain.md>), [blockchain-signature-verification](<https://devfeed.tech/tags/blockchain-signature-verification.md>), [blockchain-technology](<https://devfeed.tech/tags/blockchain-technology.md>), [build-blockchain-from-scratch](<https://devfeed.tech/tags/build-blockchain-from-scratch.md>), [cryptographically-auditable](<https://devfeed.tech/tags/cryptographically-auditable.md>), [cryptography](<https://devfeed.tech/tags/cryptography.md>), [database](<https://devfeed.tech/tags/database.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [digital-wallet](<https://devfeed.tech/tags/digital-wallet.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [ecdsa](<https://devfeed.tech/tags/ecdsa.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [genesis-file](<https://devfeed.tech/tags/genesis-file.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [golang-blockchain](<https://devfeed.tech/tags/golang-blockchain.md>), [verification](<https://devfeed.tech/tags/verification.md>)

### AI overview

The article explains practical uses of blockchain technology, focusing on a dependency-management verification system. The proposed system hashes code retrieved from a version-control system and compares it with a database record to detect changes. Cryptographic auditing and append-only records are presented as ways to make the database verifiable.

### Source excerpt

Introduction A blockchain is an integrated solution of different computer science problems in the form of a single, append-only, publicly available, transparent, and cryptographically auditable database that runs in a distributed and decentralized environment. I've heard many times that blockchain is a technology looking for a problem to solve. I disagree with that assessment because the tech and computer science behind blockchain has practical uses in everyday engineering problems. One use of this technology that comes to mind is a dependency management verification system.

[Next page](<https://devfeed.tech/tags/dependency-management.md?cursor=WyIyMDIyLTA2LTA2VDAwOjAwOjAwKzAwOjAwIiwgIjMyMzFhMzgxLWM3MjctNGM3YS1iMTAwLTBiYmE5Y2EwMWI3NyJd>)