Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Caupain

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 Caupain

Avatar for Valentin Rocher

Valentin Rocher

September 12, 2025
Tweet

Other Decks in Programming

Transcript

  1. What’s Caupain? • It’s an open source tool that generates

    dependency updates reports from a Gradle version catalog • Available both as a Gradle Plugin and as a CLI tool for all major platforms • It directly queries Maven repositories
  2. How does it work? Parse version catalog to get versions

    maven-metadata.xml Repository dependency-version.pom Repository maven-metadata.xml Repository maven-metadata.xml Forma tt er
  3. How did it start? • First dra ft was a

    snippet of code in an internal plugin because other solutions weren’t matching our needs • Talked about it with Martin Bonnin at Android Makers • A few beers later…The hype is here!
  4. What do we need? • It needs to be available

    as a CLI and as a plugin • It needs to work fl awlessly on all platforms • It has to be easily installable Solution: use KMP !
  5. Library grocery list Serialization • KotlinX serialization and all its

    formats! • TOML: tomlkt • XML: xmlutil • JSON: kotlinx-serialization-json • Properties: properties-serializer • ANTLR Kotlin for low-level parsing
  6. Library grocery list I/O • Ktor for network operations •

    Using native engines for each platform • Okio for all fi le-based operations
  7. Library grocery list CLI interactions • Clikt for writing command-lines

    interfaces • Easy option handling • Takes care of help pages and errors
  8. Library grocery list CLI interactions • Mordant for rendering styled

    text in the terminal • Progress bars • Text colors • Tables
  9. Make the code usable and readable • A lot of

    unit tests • Binary compatibility check • Transitive dependency check via dependency-guard • Style check (via Detekt) • Explicit API • All checks done via Github Actions
  10. Easy ways to access it MacOS • Brew via an

    external tap • Easy to install • Easy to update
  11. Easy ways to access it Debian • APT repository •

    Uses Net fl ix Nebula Plugins for easy DEB build • Published on GitHub Pages via a speci fi c action
  12. Easy ways to access it Maven • Gradle plugin portal

    for plugin • Maven Central for core library • Published via Gradle Publish Plugin
  13. Easy ways to access it Other platforms • Chocolatey for

    windows • Github Releases for the rest
  14. Open source is never done ! • We’re currently at

    version 1.8.0 • 140 stars, around 70 issues or PRs, people are using it and liking it ! • Mainly maintained by me, but you’re free to help ! • Idea is to keep maintaining it as long as people use it • Come look at it at h tt p://github.com/deezer/caupain !