clojars

http://clojars.org discussion and “support”, see http://status.clojars.org for status.
2020-10-07T05:09:46.001300Z

Realized after the fact there is a Clojars channel

2020-10-07T07:49:10.008300Z

Okay, my best idea to move forward with something of that sort would be that when someone pushes to Clojars and the groupId doesn't already exists, Clojars would: If groupId is a reverse domain like org.foo Check that the domain http://foo.org has TXT DNS header for http://_clojars.foo.org with value equal to org.foo. If check fails, refuse to create the group. Else if it has a groupId like github-foo Check that the github user foo has a public repo called _clojars with a readme file that contains the value github-foo. If check fails, refuse to create the group. Else proceed to create the group as current assuming other validation pass.

2020-10-07T07:49:36.009Z

Similar things could be added for gitlab-foo and bitbucket-foo etc.

2020-10-07T07:50:41.010900Z

Now that way, going forward, I know that if I depend on a lib with a groupId that is a reverse domain or a github-foo like format, that the origin was verified and I can trust it comes from the real domain owner or the real repo owner on GitHub.

alexmiller 2020-10-07T12:37:34.013200Z

Just as a point of comparison, with maven central a human is involved in granting access to new groupids (but I have no idea what level of rigor is involved)

2020-10-07T12:40:05.013600Z

You can see an example of the maven central verification process here: https://issues.sonatype.org/browse/OSSRH-60335

2020-10-07T12:40:41.014300Z

It is similar to what is proposed above, but with human verification

2020-10-07T12:42:37.016500Z

Clojars came about in part as push back to the maven central verification requirements (though, at the time, I think central didn't support com.github.username groups). If we want to move towards verified groups, I think we should push folks to deploy to maven central instead of modifying Clojars to do the same thing

2020-10-07T12:44:40.018100Z

Releasing to central is a bit more painful, given that deploys go to a staging repo then have to be released manually. But there is mvn tooling to to that automatically, and it wouldn't be difficult to build a lein/`boot` /whatever plugin to do that (if they don't already exist)

alexmiller 2020-10-07T12:48:04.018800Z

Actually, it is fairly difficult due to gpg signing

2020-10-07T12:48:26.019Z

Ah, good point

2020-10-07T12:49:38.021300Z

Since gpg signing isn't that useful, let's just generate a new gpg key automatically for every deploy :)

2020-10-07T17:20:05.023100Z

Hum, the manual process is also painful. If the above is automated, I can in 5min have a new groupId for my open source project pushed to Clojars. But with Maven Central it takes a few days of turnaround

2020-10-07T17:20:58.023800Z

That's definitely true.

2020-10-07T17:21:26.024400Z

I'm also considering the effort to build & maintain that system in Clojars

2020-10-07T17:22:16.024800Z

Ya that's a very fair consideration.

alexmiller 2020-10-07T17:23:24.025300Z

a) you should ideally only have 1 (or small number of) groupIDs

alexmiller 2020-10-07T17:23:52.025700Z

b) and if a, ~day turnaround is no big deal

alexmiller 2020-10-07T17:24:52.026400Z

but I do think the automated path via dns is a reasonable automated check and certainly in line with what others things do

2020-10-07T17:31:15.032400Z

It seems Maven established a different convention for github? And they do com.github.user where as right now in the Clojure community I think I saw recommendation for github-user. I think I like the latter better because of the possibility for github to want to own the com.github groupId for their own projects. But I can see an argument for both

alexmiller 2020-10-07T17:43:00.032900Z

I'm not familiar with the Maven convention if there is one

alexmiller 2020-10-07T17:43:25.033300Z

the latter recommendation was due to not wanting to stomp on github's own "space"

alexmiller 2020-10-07T17:49:19.034100Z

and to suggest ways to use other identities as a means of borrowing ownership: twitter-puredanger, gitlab-foo, etc

2020-10-07T20:39:09.036600Z

I'm just going off from that link, seems they approved the creation of groupId com.github.user once the person proved they owned the repo under that user in GitHub. But I like the identityprovider-user approach personally for the same reason that you can't think that's a github published repo

alexmiller 2020-10-07T20:42:20.036800Z

ah I see they do have an example at https://central.sonatype.org/pages/choosing-your-coordinates.html

alexmiller 2020-10-07T20:42:32.037100Z

I never saw that before

alexmiller 2020-10-07T20:43:34.037300Z

seems like there are a lot of those out there https://repo1.maven.org/maven2/io/github/

alexmiller 2020-10-07T20:44:21.037800Z

seems good to me :)