To anyone who has Open Source artifacts hosted on ...
# opensource
d
To anyone who has Open Source artifacts hosted on Maven Central and who accesses the (awful) Sonatype UI through the https://oss.sonatype.org/ portal. We've been unable to gather download statistics for any of our packages for the entire of last week. I am unable to raise a support ticket with Sonatype because I am not a paying customer 🙄 ( ... which doesn't seem particularly reasonable since they they host the vast majority of JVM OSS ecosystem projects). I want to check if this issue just affects our packages or if it is a more generalised problem for everyone - can people please log in and see if they can see their stats?
c
Seems to work for me
@mbonnin maybe you know more?
d
That's very useful to know. Thanks @CLOVIS 🙃
m
Works for me too (using s01)
I had to log twice though. On first attempt, I dig get a 500 error 🤷
d
@mbonnin sorry - what's S01?
m
The “newest” host that is already “kindof” deprecated 😅
d
ah - ok. we're stuck on the original. I can't even log into s01.
m
Yea, you have to explicitely request the migration (but these days s01 is deprecated too and portal is the new way)
In allcases, I’d say it’s a transient error? Some people had issues publishing last week so maybe they’re doing some maintainance or so. Clear your cookies, try in incognito window and if nothing works, there’s an email adress you can contact
central-support@sonatype.com (from here). They’re usually pretty helpful
❤️ 1
d
ah wow - that email would be amazing. It's been an entire week - I've already tried all the other fallbacks (and that's with both of us users 🙂
we can log into the portal, but there are zero functionalities available to us.
m
I’ve had troubles in the past because creating the portal password kindof reset my oss and s01.oss ones
d
are the stats available on the portal? we've been depending on them for any kind of visibility..
m
Now I use the password from https://central.sonatype.com/ everywhere and everything works well. central-support@sonatype.com was very helpful debugging this
> are the stats available on the portal? Sadly not 😞 No stats, and no SNAPSHOTs
d
I'm kind of scared to ask for migration in case things go wrong TBH
maybe they'll sort it out by 2030...
🤞 1
😂 1
m
Same, I migrated my personnal hobby account but Apollo is still s01
I think loss of SNAPSHOTs would be okaish but loss of stats is hard to swallow. Last time I asked they had plans to make this work though 🤞
d
thanks for the help both - have sent an email to central-support@sonatype.com so we'll see where we get to I guess. 🙃
👍 1
m
I asked central-support@sonatype.com about the download statistics, and got this reply:
In the process of sunsetting we are stopping support for stats until we are able to migrate the feature over to portal. We are unable to provide an accurate date on when this feature will arrive but we will be making it a priority shortly after the sunset date. we apologize for any inconvenience not having the statistics may cause.
So it looks like there will be a period when nobody has any statistics at all.
m
Yup, same response I got
d
> We are unable to provide an accurate date on when this feature will arrive but we will be making it a priority shortly after the sunset date.
I didn't get this bit - which is encouraging. 🙂
🤞 1
Still, I'm waiting until after the stats for May are published around 10th June to migrate http4k and cousins.
n
One year later, does anyone know if there is something planned for stats or if it’s still unknown? Cannot find anything relevant on the internet…
d
Sonatype are partnering with a company called Scarf to provide the stats on an ongoing basis. A few maintainers have been onboarded onto the Scarf platform to check out the stats - we are one of them. Traditionally, Scarf hasn't supported Java packages but this seems to be the first integration point between the 2 worlds.
c
You can find a few screenshots of what it offers (and our struggling to make sense of it) here: https://kotlinlang.slack.com/archives/C078Z1QRHL3/p1764016873044559
n
Ohh I’ll have a look at that, thank you!
d
@Nathan Fallet it's not overly spectacular. The things that we have noticed: • "events" (maybe download numbers?) are higher than the recorded Maven Central numbers • "unique IPs" by contrast seem to be much lower than the recorded Maven Central numbers It's all very spiky and overall I don't really trust it because trying to interpret the numbers is 🤷. The "companies" data especially seems to be highly suspect...
plus1 2
n
The idea is to follow the growth of some of my open source packages. It’s not about the exact numbers but about the shape of them over time
d
yes - the general trends are there (or at least were over the period of time where the data overlaps), but it's so ridiculously spiky in a way that we never had with the MC stats.
1
This is the difference in shape between the MC and the Scarf data for http4k - MC did have some definite spikes, but ...
m
Vibes 😅
🤣 1
I'm just out of a call with them. Random notes: • Basically a "source" is a company-user agent combination • I don't think I completely understand how they deal with "IP". They mention they get "batches of IPs" from Sonatype and then they aggregate this but I'm not 100% clear. • Package event = downloads + pixels • We still get the download data for free. Other plans are much more expensive and get you some manual lead generation. • They can also deal with npm/docker/etc... if you want • The free plan has 3 month retention. They currently have data back to 2023, they might get more
👀 1
My 2 cents is I preferred the old system because it was simpler and it was closer to the raw data. But the free plan is probably good enough for trends.
And it's not like we have the choice anyways
d
thanks. did they give you pricing for the other plans? And I could only find data going back to may 2024. Did they account for the massive difference in numbers between MC and them? pixels did not exist then... suspect
m
did they give you pricing for the other plans?
It's quite expensive. The "basic" is at 15k
laugh cry face palm 1
And the pro, I can't remember but something like 30k (not sure)
My mind stopped at 15k
d
yes - truly for the open source world
c
best I can do is 10€
m
The basic plan still gives you the download data
d
For that I'm going to continue to harvest and store the data myself
m
Ah yes, forgot to mention the "companies" you see is sampled based on "first come"
So the #1 company is not the one that downloads the most but the one that was sampled "at the time it was sampled"
Obviously if it downloads a lot, it is sampled more
I'm not sure I got it all
Did they account for the massive difference in numbers between MC and them?
I asked a bunch of question already and the discussion had moved on so I didn't ask this one but if someone schedules another call, please ask
d
I think they need a bit of a readjustment of expectations - they're asking over 1k a month for some shonky data which they haven't even shown to anyone?
👍 1
(the company data that is!)
m
The feeling I got is they are typically designing for marketing teams where I guess those kinds of budgets are maybe more ok-ish and where you track your usage company-wise with pixels, etc...
I you can correlate sales to those leads, it's an easier sell
c
Sure, but I don't think that's the average Central deployer
m
Yup
We're not the target there
c
Which is shame, because I'm pretty sure there is no other target in this partnership
true 1
o
So it seems like this a move to make contributors pay on top of their contribution instead of making the high-volume consumers of such contributions pay.
d
Agreed - this is NOT supporting small open source teams to be able to monetise/support their work
Actually, the more I think about it, the angrier I'm getting. 😡
m
I wouldn't read too much into the why of this partnership. One potential reason is just that scarf has a UI and sonatype outsources to them because it's less work for them.
It's weird that we (potentially) pay scarf though.
TBH I would happily pay some $ to support Sonatype hosting fees. But 15k to a marketing company probably not
Maybe some of the money goes back to Sonatype, no one knows
o
I'd guess so. Why should Sonatype provide a free lunch to another company selling that lunch? > 83% of the total bandwidth of Maven Central is being consumed by just 1% of the IP addresses. Further, many of those IPs originate from some of the world's largest companies. This needs to be addressed, but definitely in a fair fashion and not by further weakening those whose balance is already negative.
💯 3
m
Agreed
c
> I wouldn't read too much into the why of this partnership. One potential reason is just that scarf has a UI and sonatype outsources to them because it's less work for them. Oh I would not be surprised to learn that Scarf is paying Sonatype a lot for exclusivity on this data, and Sonatype has decided that it's an acceptable tradeoff to getting funds for Central
👍 1
d
The people doing that 83% of the downloads are NOT the ones who are producing the software. If I'm a megacorp who doesn't want to pay for a caching layer, why the hell do I care who is downloading all the software that I leach?
💯 1
1
o
getting funds for Central
That's not how it works. They have no incentive to stop there, and a lot of incentive to extract whatever they can from whoever they can. So we should be prepared if this goes south. It doesn't have to stay that way if a sufficient number of maintainers agree.
m
Everyone is free to self host. The trust that Maven Central provides is hard to replicate
c
Sure. I'm just not going to be paying for Scarf, no matter the price. I now have analytics on the docs website, and I think these are much more useful than download numbers (which will be dominated by CI anyway)
o
It's not just trust. It's also gatekeepers like Gradle making access to some repos easier than others.
m
Yea, it's always the same thing with centralized internet. There is some convenience to it.
Time to start taht P2P jar distribution company 😉
🎉 1
c
I mean, I geniunely don't see a reason why MavenCentral couldn't be torrent-based
m
Yea, probably some integrity reason. We need to add the checksum to the coordinates
c
Main issues I see: • Maybe it's too slow • Maybe some people don't want to publicly say what they're downloading, but I'm sure there's a fix for that (e.g. local-net default)
We need to add the checksum to the coordinates
We have them already, Central already makes the .sha256 etc mandatory, and GPG signatures too
m
Yea, just no one is using them 😅
(myself included, this has been on my TODO list for years)
c
For example, I know that 80%+ of my usage of Central is from my CI servers, which is completely pointless, but I don't have an easy way to avoid it
I do have a Gradle Build Cache server but it doesn't include dependencies
o
I think these are already good ideas. Centralized infra would also be OK if it were governed in a democratic way by those who contribute. Once there are network effects and a natural monopoly, we cannot afford to yield control to a small group, whatever their initial motivation might have been.
c
Sure, but none of us have the money for that. Even JB decided it wasn't worth it
m
governed in a democratic way by those who contribute
this is NP hard
c
IMO decentralized/IPFS-based/whatever is the only way this can be sustainable long term. Imagine if all the CI servers on earth were seeding Central, we'd have unlimited resources But that requires Gradle/Maven/etc changes, which won't happen
m
Governance is harder than naming and caching 🙃
Decentralized sounds appealing though
o
First, there's always the chicken and egg problem (funding). But who says crowdfunding could not be a way to produce the initial spark? And yes, maybe decentralized would be the way to go. P2P music "sharing" did that once illegally. Here, we have all the legitimacy we could ask for.
d
Governance is harder than naming and caching
Yes - the hosting needs to be split from the attestation of the assets.
the only reason that Maven Central is trusted by default is because they control the attestation.
o
the only reason that Maven Central is trusted by default is because they control the attestation.
I don't know. Maybe they were the first to provide stable download performance?
d
in banks etc, they couldn't give 2 shits about the download performance. They block everything else not -MC primarily because anyone and their dog can publish
o
Let banks do what banks do. Would they ever pay or contribute?
m
We could have a per-domain repo.
com.example.foo:foo:0.0.0
at
<http://example.com/m2|example.com/m2>
would be trusted by default.
But that requires to add a lot of repos
o
Why should anyone trust me, just because I can publish on MC?
m
your groupId matches your domain
o
OK, so I can buy a domain...
👍 1
d
yep - because you have purchased a domain. and that's the low bar!
c
That's ATProto-central eheh
🚀 1
❤️ 1
n
All of this would also require changing the way maven/gradle is downloading dependencies on client side right?
o
I need to jump through more hoops just to get a bank account.
d
it's just another artifact resolver
m
That's ATProto-central eheh
Let's do this!
d
I need to jump through more hoops just to get a bank account.
domains aren't free- you also need a payment source! 🙃
o
Domains are cheap!
Some folks invest way more if they can rip others off later...
d
the money doesn't matter - it's the chain of "trust" which does - note you can't buy a domain with BTC
(that I know of anyway!)
m
(that I know of anyway!)
another business opportunity 😂
o
But seriously: Never underestimate the power of maintainers. Take out a small number of widely used projects which would be difficult to maintain for others. If folks would just stop to keep them fresh on MC, and maybe even re-license their products to exclude central mirroring, that once powerful central repo would quickly become a desert and consumers would get scared about possible vulnerabilities or their world breaking apart at the next dependency update cycle.
c
All of this would also require changing the way maven/gradle is downloading dependencies on client side right?
Not sure. If each node exposes a central-like file structure and processes requests by transmitting to the network, you could add one node as a regular maven repo and that's it
n
I mean the safe part (validating domain); you can always configure the repo to only include some group ids on the client side 🤷‍♂️
☝️ 1
d
you'd need to do discovery - but you could probably just 302 that and let the (hopefully correctly configured) HTTP clients in gradle/maven handle the redirect
o
The problem with Gradle is: You'd have to add another repo, which has to be done per project. That's what made Sonatype introduce rate limiting as system-level repo redirection was hard to implement even for the big tech high-volume consumers.
c
Alternatively: download the POM from Central and the hash files, and only download the actual contents from the mirrors. Not fully decentralized, but I'd bet that would help Central a lot already
JB has their own mirror btw, the Kotlin project pulls from it. I wonder how they handle access rights on it, or if any of us could just use it instead of Central
n
Really curious to know more about how JB does it
I got an access to scarf. After struggling to understand how the dashboard works, I was able to see “events” per artifact for my two main libraries (i took the multiplatform artifact which is always downloaded before platform specific ones)
a
JB has their own mirror btw, the Kotlin project pulls from it. I wonder how they handle access rights on it, or if any of us could just use it instead of Central
@CLOVIS cache-redirector shouldn't be used externally, it's just to help JetBrain's CI stability and speed
👍 1
is Sigstore supposed to help with artifact verification? So the artifacts can be hosted anywhere, and just need to be verified. https://docs.sigstore.dev/
n
It could. We’ll have to add an extra step on client side for verification though.
310 Views