https://kotlinlang.org logo
#feed
Title
# feed
b

Big Chungus

10/21/2020, 2:22 PM
Inspired by community projects like Awesome Kotlin & multiplatform-libraries I've decided to write the next gen of such projects. Introducing KAMP (camp but with k, because you can't have kotlin without k...)! This is still in early stages of development, but the idea is the self-updating catalog that automatically scans various maven repositories and finds kotlin libraries. Today I'm happy to share the scanner preview, that is already able to scan mavenCentral and jcenter. Turns out there are over 1.3k kotlin libraries published with gradle metadata on maven central alone! You can have a look at them all in
sampleData/mavenCentral.zip
. The end goal of the project is a hosted web-service to serve as a one-stop-shop for all your kotlin lib needs allowing you to filter available libraries by the set of platforms your project is targeting. Star/watch the repo for further updates :)
❤️ 1
👍 5
m

Marc Knaup

10/21/2020, 2:28 PM
You’re building Koogle 😄
b

Big Chungus

10/21/2020, 2:28 PM
Wait what?
Got a link?
m

Marc Knaup

10/21/2020, 2:29 PM
No, I mean you’re making a Google search engine for Kotlin libraries. So I’ve just dubbed your approach Koogle 😛
b

Big Chungus

10/21/2020, 2:29 PM
Damn man, don;t scare me like that 😄 Thought I've spent all this effort in reinventing the wheel
😁 3
m

Marc Knaup

10/21/2020, 2:30 PM
So far it’s just the scanner, right? No website for exploring yet.
b

Big Chungus

10/21/2020, 2:30 PM
Not yet. Want to nail down the scanner first before I start with the website.
m

Marc Knaup

10/21/2020, 2:31 PM
What really annoys me all the time is having to find the latest version for every single Kotlin library. I go to http://mvnrepository.com, look up the library and find the version number. Your website could make that significantly easier for me 🙂
b

Big Chungus

10/21/2020, 2:31 PM
I'm hoping to get started with the rudimentary website sometime next month
m

Marc Knaup

10/21/2020, 2:31 PM
I hope built with Kotlin React 😛
b

Big Chungus

10/21/2020, 2:31 PM
That's the plan. Auto population of libs and version sync. Also relevant links to source code and publishing repos
Either that or fritz2.
a

alex009

10/21/2020, 2:33 PM
big problem is bintray repositories...also #package-search do autofetch from maven repos, and implemented by jetbrains, but bintray separated repositories not fetched at all yet...
it also contains and web version as i see from google - https://package-search.jetbrains.com/
m

Marc Knaup

10/21/2020, 2:35 PM
😮 that thing was well hidden
No website though. I don’t like IDE-first 😅
a

alex009

10/21/2020, 2:37 PM
https://libs.kmp.icerock.dev in future will be reworked to dedicated fullstack kotlin multiplatform application (mobiles, desktop, web, backend) and will be work with current logic of autofetch from maven repos, but scanning will be very good feature, if it will not cut all bintray repos from registry
m

Marc Knaup

10/21/2020, 2:37 PM
Doesn’t work with my IDE either. Can’t even see it in Marketplace
you can ask questions about state of project in #package-search
(it's not about libs.kmp, its about package-search)
m

Marc Knaup

10/21/2020, 2:38 PM
again, well hidden 😮
Does it include Java-only projects?
a

alex009

10/21/2020, 2:39 PM
see on page 🙂 here also multiplatform filter
m

Marc Knaup

10/21/2020, 2:39 PM
OK, the UX of both websites isn’t great Developers designing I guess 😅 Looking forward for all projects to evolve 🙂
I don’t need a multiplatform filter. I need a “Kotlin-first” filter 😛
Libraries made for Kotlin, not compatible with Kotlin
b

Big Chungus

10/21/2020, 2:44 PM
It wasn't easy, but I've managed to figure out a way to pull all Bintray repos linked to jcenter as well! The scanner is currently running, will post back here with the results
m

Marc Knaup

10/21/2020, 2:46 PM
Cool. Test with
raptor
(group
io.fluidsonic.raptor
) and see if you find it. It’s neither in Maven Central nor in JCenter but a personal Bintray where other of my libs are linked to JCenter.
b

Big Chungus

10/21/2020, 2:47 PM
Also, while package-search is great, main pain poitn with it (ant other catalogs like it) for me was that I cannot select a list of platforms I want the lib to be available for
@Marc Knaup, if it's not linked to jcenter it won't be found as the curent bintray scanner only scans linked jcenter repos repos. But I do have a plan to write an extension to that to do a full bintray scan 😉
m

Marc Knaup

10/21/2020, 2:49 PM
Maybe you can just allow people to register their own repositories. Just like you can add URLs to Google :)
b

Big Chungus

10/21/2020, 2:49 PM
Of course! 😄 But I took that as a given, since otherwise it'd be a regression from other projects like this out there
m

Marc Knaup

10/21/2020, 2:50 PM
I don’t know other projects doing that 🤔
b

Big Chungus

10/21/2020, 2:50 PM
Both, awesome-kotlin and icerock mpp-libs allow you to submit packages
m

Marc Knaup

10/21/2020, 2:51 PM
Yes but not package repositories
That are scanned 🙂
I wouldn’t have to submit to awesome-kotlin if it scans repos anyway. Mine are all in JCenter & Maven Central
Maybe GitHub one day. Do they have a central one?
b

Big Chungus

10/21/2020, 2:54 PM
icerockdev scans submitted repos for latest version 😉
The main problem between them all is the fact that users need to submit, which I'm trying to solve now 🙂
So the plan is that while you shouldn't need to submit your repo, you could if it's not captured for whatever reason
m

Marc Knaup

10/21/2020, 2:56 PM
Most libraries are either in JCenter or Maven Central anyway, so that’s a solid basis
b

Big Chungus

10/21/2020, 2:56 PM
That's my thinking as well. Wanna get the scanner ready for those 2 (it's already quite pluggable so it shouldn;t be hard to add new repos in the future) and focus on getting the website out.
Happy to accept some help with the website if anyone's interested 😛 😄
m

Marc Knaup

10/21/2020, 2:58 PM
Already overflowing with OSS work unfortunately 😅
b

Big Chungus

10/21/2020, 2:58 PM
Yeah, saw your post on libs channel. Quite a baggage you carry
m

Marc Knaup

10/21/2020, 2:59 PM
too much fun building all that stuff ¯\_(ツ)_/¯
b

Big Chungus

10/21/2020, 4:16 PM
Just realised that I didn't push mavenCentral scan output to LFS properly, here it is now
m

Marc Knaup

10/21/2020, 4:19 PM
Nice. There probably will need to be a way or a logic to exclude certain (sub)libraries because they’re just “behind the scene” dependencies of other libraries.
Using them directly would probably fail spectacularly 🙂
b

Big Chungus

10/21/2020, 4:20 PM
Lol, I'm shocked how many libs are not being published to maven-central. The scanner already found 900 Kotlin libs on jCenter and it didn't even start scanning
heavy
groups like
com
io
or
org
😮
What do you mean by sub-libraries?
Like ktor-client-serialization for ktor-client?
If you mean filtering out stuff like ktor-client-jvm, ktor-client-js etc... then it's already doing that, only the wrapper modules are included in the final output with references to platform-specific modules
m

Marc Knaup

10/21/2020, 4:22 PM
No. Libraries that are added implicitly, invisibly (implementation) and not meant for direct usage. https://mvnrepository.com/artifact/io.fluidsonic.i18n I have for example
fluid-i18n
. Behind the scenes it uses
fluid-i18n-data-identifiers
and
fluid-i18n-data-regions
. The latter use private Int-based indices that change between versions. Normal humans can’t do much with these libraries and their API is not stable.
b

Big Chungus

10/21/2020, 4:23 PM
Ah, I see. Well it might be possible if more details are added in gradle metadata in the future, but as things stand now I don;t see a way to reliably do that
m

Marc Knaup

10/21/2020, 4:25 PM
Yeah maybe there’s a publishing property for that that would fit but is rarely used. Just to keep in mind. When looking at the other two projects above I was flooded by useless sub-libraries in the result. But that’s a different thing that you’ve already covered 🙂
b

Big Chungus

10/21/2020, 4:31 PM
Can you drop me a link to your bintray repo?
m

Marc Knaup

10/21/2020, 4:32 PM
Kotlinx, Ktor, Google repos are important for a start
b

Big Chungus

10/23/2020, 12:46 PM
I think i'll stick with bintray & maven central until I get the website published 😄 Extra repos can be added quite easily afterwards
👍 1
Btw kotlinx and ktor repos are on bintray so there already being picked up
16 Views