Martin Bonnin
banner
mbonnin.net
Martin Bonnin
@mbonnin.net
Chocolate Droid Officer 🍫
Nice octo-hexagraph 🤩
January 16, 2026 at 10:07 PM
Reposted by Martin Bonnin
Here's our overview and links to our initial materials to help you with AGP 9.0 migrations of your Kotlin projects!

blog.jetbrains.com/k...

More to come later still, such as updates in the KMP wizard and in our samples.
Update your Kotlin projects for Android Gradle Plugin 9.0 | The Kotlin Blog
Learn how to migrate your projects to AGP 9.0 by moving to built-in Kotlin and the new Android KMP library plugin.
blog.jetbrains.com
January 16, 2026 at 10:42 AM
Question: Why do Java developers wear glasses ❓
.
.
.
.
.
Because they can't C#.
January 16, 2026 at 8:30 AM
Reposted by Martin Bonnin
🎤 The GraphQLConf CFP is open!

Got a GraphQL idea or story to share?

Join us May 6 - 7 at Meta HQ in Menlo Park.

Submit your talk 👇
sessionize.com/graphqlconf...
GraphQLConf 2026: Call for Papers
GraphQLConf 2026, the official GraphQL conference brought to you by the GraphQL Foundation, brings the entire GraphQL community together to learn, eng...
sessionize.com
January 15, 2026 at 10:00 PM
🤣
January 15, 2026 at 4:53 PM
`afterEvaluate {}` 🙈
January 15, 2026 at 3:20 PM
What if the name of the task needs user input. In Apollo, we create different tasks for different GraphQL schemas.

This is set by the user.
January 15, 2026 at 2:56 PM
(the something being registering a task with an output)
January 15, 2026 at 2:06 PM
You may want to do something only if there is a JS target in a KMP project for an example, how do you do this?
January 15, 2026 at 2:05 PM
Ah, that's a good one!
January 15, 2026 at 1:45 PM
And then it's cat and mouse between plugins.
January 15, 2026 at 1:44 PM
You may be robust to some task being present or not.

But if the shape of your task graph depends on user input, you need the graph to be created **after** the user has set the input.
January 15, 2026 at 1:44 PM
What Oliver said. If you have conditional logic to create your task, it needs explicit ordering. The way to do this is with imperative programming, not declarative.

Unless you start adding "if" and "while" clauses in your yaml...
January 15, 2026 at 1:42 PM
There's no such thing as "lazy user configurable task graph"
January 15, 2026 at 12:03 PM
Lots of good comments there!
Obviously, the only good answer is `1.0.0-alpha.0` 😁
Martin Bonnin (@mbonnin.net)
Curious what everyone thinks here. Is it `1.0.0-alpha01` or `1.0.0-alpha.1`? Or something else?
bsky.app
January 15, 2026 at 8:06 AM
Of course there's a publicobject blog post about this 🙂
Thanks for sharing!
January 15, 2026 at 8:03 AM
I have multiple things to blame Gradle for but versioning logic isn't one of them. The code I tried is conflict resolution, works fine.
Maybe the IDE plugin?
January 15, 2026 at 8:00 AM
It's even working in Gradle 1.0.

There might be other tools not ordering right but Gradle is not one of them.
January 14, 2026 at 10:36 PM
Maybe in 2021 but not in 2026

Try it out with OkHttp 5.0.0-alpha.10 and 5.0.0-alpha.2

gist.github.com/martinbonnin...
gist:47a465a2bb900fcfbbdf62c77a9d8cf8
GitHub Gist: instantly share code, notes, and snippets.
gist.github.com
January 14, 2026 at 10:19 PM
Nah, not buying this
January 14, 2026 at 9:59 PM
I'd be curious to do the same thing with publication date and groupId, how much of those 5M is Google...
January 14, 2026 at 8:18 PM
~5_000_000 zero-padded versions vs ~1_000_000 semver versions.
January 14, 2026 at 7:57 PM
It's so creative it's almost beautiful!!
January 14, 2026 at 7:55 PM
Now I'm thinking about writing a RFC for TCP over maven version 🤔
January 14, 2026 at 7:45 PM
I love those 8320 libs!
January 14, 2026 at 7:43 PM