clojars

http://clojars.org discussion and “support”, see http://status.clojars.org for status.
micha 2016-01-07T15:52:24.000148Z

hi everyone!

micha 2016-01-07T15:52:47.000149Z

need help with the transactional deploys still?

2016-01-07T17:43:55.000151Z

micha: yes indeed! https://github.com/clojars/clojars-web/issues/226

2016-01-07T17:44:13.000153Z

and I'm willing to pay a bounty on that one, just not sure how much yet

micha 2016-01-07T17:44:54.000154Z

well i can do some work this weekend

micha 2016-01-07T17:44:57.000155Z

pro bono :simple_smile:

2016-01-07T17:46:26.000156Z

thanks! let me know if you have any questions

2016-01-07T17:47:09.000157Z

one issue is we need to fix any broken maven-metadata files, as they will prevent a deploy from working at all once they are atomic

2016-01-07T17:47:31.000158Z

so we need a tool to scan the repo and find/fix them

2016-01-07T17:47:37.000159Z

I'll file an issue for that

micha 2016-01-07T17:47:56.000160Z

sounds like a plan

2016-01-07T17:48:32.000161Z

assuming we signal on the maven-metadata.xml being uploaded to know when a deployment is complete

micha 2016-01-07T17:48:36.000162Z

perhaps we can scan on deploy, too

micha 2016-01-07T17:48:47.000163Z

and then whitelist known good repos

2016-01-07T17:48:48.000164Z

and I don't know how else to signal

2016-01-07T17:49:51.000165Z

well, aether won't even give us a maven-metadata.xml if it is invalid, since it will pull the existing, see that its checksum is wrong, and bail

2016-01-07T17:50:15.000166Z

that's really what I mean by "invalid"

micha 2016-01-07T17:50:37.000167Z

i see

2016-01-07T17:50:44.000168Z

though the checksums could be correct, it just doesn't list all the versions (or extra versions if there has been a deletion)

2016-01-07T17:50:57.000169Z

since our deletion process doesn't currently fix the metadata

micha 2016-01-07T17:51:04.000170Z

yeah tests cases will help here

2016-01-07T17:51:42.000171Z

who do I talk to to get the github plugin running in this channel?

micha 2016-01-07T17:51:58.000172Z

we could, in theory, automate metadata.xml fixing, right?

2016-01-07T17:52:12.000173Z

yes

micha 2016-01-07T17:52:19.000174Z

like given a repo with poms we can generate a good metadata file

micha 2016-01-07T17:52:51.000175Z

so maybe that's the first step

2016-01-07T17:53:08.000176Z

right, I see it as a fn that we run as part of a scan now, then right after deploying the atomic deploys feature, then on specific repos when we delete a version

2016-01-07T17:53:23.000177Z

once atomic deploys are there, we shouldn't need to scan again

2016-01-07T17:53:25.000178Z

in theory

2016-01-07T17:53:30.000179Z

filing an issue now

micha 2016-01-07T17:53:38.000180Z

i imagine it could happen when a transactional deploy completes (i.e. just generate our own metadata file instead of using the uploaded one)?

2016-01-07T17:55:21.000181Z

we could do that, but the one that was uploaded should be the same as what we generate

micha 2016-01-07T17:55:31.000182Z

yeah

micha 2016-01-07T17:55:53.000183Z

cool, that seems like a good weekend hackathon

micha 2016-01-07T17:56:03.000184Z

the scan tool

micha 2016-01-07T18:03:23.000187Z

awesome

micha 2016-01-07T18:05:45.000188Z

this tool will also ideally do its job atomically

micha 2016-01-07T18:06:06.000189Z

lol it would be ironic if a race condition causes the tool to corrupt metadata

micha 2016-01-07T18:06:30.000190Z

so i'll look and try to see what the best way to do that will be

micha 2016-01-07T18:07:07.000191Z

maybe it has to run during a deploy, the update part where it molests the metadata file

2016-01-07T18:08:34.000192Z

we currently don't mutate the metadata at all, aether does that

2016-01-07T18:08:55.000193Z

if aether doesn't download the metadata until after it has started the deploy, we could fix this on the fly

micha 2016-01-07T18:08:56.000194Z

yeah but someone could be deploying while we're fixing their metadata

2016-01-07T18:09:00.000195Z

ah, true

2016-01-07T18:10:21.000196Z

if we detect a deploy is happening, we could fix the metadata as soon as we see the first artifact (before sending a response to that request)

micha 2016-01-07T18:10:29.000197Z

yep

2016-01-07T18:10:30.000198Z

but only if aether doesn't download it first

micha 2016-01-07T18:10:56.000199Z

i haven't looked at the details of the server code yet

micha 2016-01-07T18:11:05.000200Z

but maybe we could do it when the meta is downloaded

micha 2016-01-07T18:11:12.000201Z

like fix and whitelist

micha 2016-01-07T18:11:43.000202Z

i guess that's not a real solution either

micha 2016-01-07T18:12:04.000203Z

because then you have a race between pulling metadata and deploying

2016-01-07T18:12:19.000204Z

the repo is all served via nginx as static files, so we don't know in the app when they download, only when they upload

micha 2016-01-07T18:15:03.000206Z

we could lock the repo while we fix it

micha 2016-01-07T18:15:14.000207Z

and reject uploading new artifacts to it with a 503

micha 2016-01-07T18:15:28.000208Z

or just let the connection wait

micha 2016-01-07T18:16:04.000209Z

i'll see if i can come up with some options

2016-01-07T18:16:40.000210Z

cool, thanks

2016-01-07T18:18:42.000212Z

anyone know a simple way to align those logos vertically?

micha 2016-01-07T18:19:09.000214Z

ssh... tables

2016-01-07T18:19:32.000215Z

I considered a table, but figured I would be burned at the stake by someone

micha 2016-01-07T18:19:43.000216Z

you can sneak one in there

2016-01-07T18:20:15.000217Z

we've secretly replaced their divs with tables, let's see if they notice

micha 2016-01-07T18:20:31.000218Z

yeah maybe it will break their semantic web AI tools

micha 2016-01-07T18:20:33.000219Z

oh wait

micha 2016-01-07T18:20:36.000220Z

those never existed

2016-01-07T18:31:18.000222Z

@micha: a table did the trick, thanks!

micha 2016-01-07T18:31:33.000223Z

🍻