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

Caupain

 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 !