I tried to understand what the meaning of the M1: https://stackoverflow.com/questions/3687208/what-does-m1-mean-in-a-maven-repository
As i understand from. the comments there, it means that this is a milestone version and shouldn’t be used in production. But in the website it looks like it is recommended to. use this version: https://github.com/Kotlin/kotlinx.coroutines
So before including this in the project and blowing up production i prefer to ask
M means a milestone. Milestone versions are EAP. You of course can use them, but those are not release versions.
When you look at the releases on github, version 1.3.9 does also support kotlin 1.4.0 so I would stick with that instead. At the same time the library is reasonably stable so I wouldn’t expect many API changes in most of the kotlinx.serialization 1.4.0 release once available. The release should be reasonably soon, so depending on when you want to go live with your project, and whether you need/want the new features, it may be worthwhile to use the M1 release in development (being careful with API change issues).