/srv/irclogs.ubuntu.com/2017/11/08/#launchpad.txt

=== blahdeblah_ is now known as blahdeblah
=== maclin1 is now known as maclin
=== ePierre-afk is now known as ePierre
=== pbek_ is now known as pbek
=== tacocat is now known as e[_]
rbasakIf we want to store the launchpadlib self_link in a git commit log message as metadata in the usual git RFC822-style header style (eg. "Signed-off-by: ..."), what would be an appropriate name to use for the key?05:44
rbasakEg. Launchpad-API-URL? Launchpad-URL? Launchpadlib-URL?05:44
wgrantrbasak: The self link for what sort of object?05:45
wgrantA commit doesn't have a launchpadlib URL -- let alone a commit that doesn't exist yet.05:45
rbasakThis is where we want to link our "imported" git commit to the Launchpad object it came from05:46
rbasakSo Launchpad -> our importer -> git commit05:46
rbasakWhere we'd like to track what Launchpad object our git commit came from.05:46
rbasakAlso...I didn't expect a reply for a few hours at least! :)05:47
wgrantrbasak: It's not quite EOD for me :)05:56
wgrantrbasak: But presumably it's some type of object05:56
wgranteg. Launchpad-Source-Package-Release05:56
naccwgrant: source pacakge publishing history record06:06
naccwgrant: rbasak: I think (per the web reference) we should store str(spph_object)06:08
nacchttps://help.launchpad.net/API/launchpadlib "Persistent referencnes to Launchpad objects"06:08
naccso I think we could do Launchpad-Source-Package-Publishing-Record:06:09
nacci'm not fussed on URL, as it's really just storing a persistent identifier of an object, which happens to be a URL right nnow06:09
naccwgrant: for context, LP: #1730734, if you want to read06:09
ubot5Launchpad bug 1730734 in usd-importer "importer: having only one import record for every publish means the commit date is no longer identical to the publishing date" [Critical,Confirmed] https://launchpad.net/bugs/173073406:09
* nacc is past EOD, just checking in06:10
* rbasak is at BOD :)06:10
wgrantnacc: That seems weird, since what happens when the package gets copied?06:10
wgrantThat probably won't create a new commit.06:10
rbasakYeah that's what I was pondering06:10
rbasakI had intended to discuss that with nacc later :)06:11
rbasakI'm still pondering the general problem.06:11
wgrantIt is complicated.06:11
wgrantThe SPPH in theory has no impact on the commits06:11
wgrantJust the refs06:11
wgrantWhich is messy since refs don't really have history06:11
rbasakOTOH, we watch the SPPH to drive the imports06:12
wgrantSure, it clearly triggers the imports06:12
wgrantBut the commit can't be the only place you record that, since it can change without the commit changing.06:12
rbasakCurrently we don't record the SPPH, but that's where the problem is AIUI.06:13
rbasakThe first time we see a particular version, we add it into our commit graph.06:13
rbasakAnd the SPPH entries drive our refs moving around.06:13
rbasakBut we don't know where to pick up from next time, and we'd prefer to not store any additional state.06:14
rbasakI think nacc was suggesting that the commit store the _first_ SPPH that originally drove the first import adding the version to our commit graph.06:14
rbasakRecurrences of the same version in SPPH would lead to some fairly small inefficiency as we walk over the same records again.06:14
rbasakSo the algorithm would be:06:16
rbasak1) Walk the SPPH in reverse chronological order06:16
rbasak2) Look for a matching commit (we can do this as we look for a tag import/<version> which will take us immediately to the commit if it exists)06:17
rbasak3) If the matching commit has metadata pointing to the same SPPH record, then stop06:17
wgrantWhat will happen when the commit lists an SPPH in warty, and you have to walk back 27 series?06:17
rbasak4) Work backwards from where over what we have already gone over, backwards, and import those, which will now be in chronological order.06:18
wgrantAn alternative would be to use a ref for each SPPH06:18
wgrantI think06:18
wgrantHmmm06:18
rbasakI'm not sure I understand your question.06:18
wgrantIf you store no other state, you're going to end up walking the entire publication for packages that don't change very often06:19
wgrants/entire publication/entire publication history/06:19
rbasakAh. Because of all the copy forwards and no other uploads?06:20
rbasakYeah I see. That would require us to walk all the way back to warty.06:20
wgrantExactly.06:20
rbasakOne iteration per series max I think?06:20
wgrantMost likely.06:20
* rbasak wonders what would happen if we used a git note for each SPPH record against the commit06:21
rbasakThat could be optional. A present git note would optimise your pathological case.06:22
rbasakA missing git note and the previous algorithm applies.06:22
rbasakSo it'd be fairly robust to missing notes.06:22
rbasakAnd if we see an SPPH record without a corresponding note, we could add it later.06:23
wgrantThat sounds like a possible alternative to ref per SPPH, yeah06:23
wgrantEffective caching, but in the repo and mutably.06:23
rbasakIf we used ref per SPPH, what would you call the refs?06:23
rbasakCaching is the right way to think about it I think, thanks.06:25
wgrantrefs/go-away/no-really/this-is-pretty-internal/nothing-to-see-here/spph-123406:25
rbasakI'm less averse to storing state if it is just a cache06:25
rbasakAnd the cache is semantically a (SPPH identifier -> commit id) mapping I think.06:26
wgrantI guess if you already identify the commit first by (name, version) ref, the fact that notes aren't indexed by content isn't a problem.06:26
wgrantRight, which was I was going for a ref rather than a note -- notes are structured the other way, so you can't efficiently look up by SPPH ID06:26
rbasakYou'd have to look up the SPPH record package version string, then look for the tag.06:26
rbasakWhich is still O(1) for our purposes I think.06:27
rbasakI'm pondering just using an out-of-repo cache.06:28
wgrantOut-of-repo cache is certainly the approach I'd start with.06:28
rbasakThough that won't be shared, so a third party person wanting to manually catch up on a package will have to regenerate the cache.06:28
rbasakLet's see what nacc thinks.06:28
rbasakwgrant: thank you for the discussion06:31
=== maclin1 is now known as maclin
* cjwatson comments on the bug before reading the above discussion, although it sounds like I reached a similar conclusion independently07:42
rbasakThanks08:01
=== JanC is now known as Guest4348
=== Ionic_ is now known as Ionic
VG12Hello everyone, I have a pressing question if someone would be so kind as to help me.10:32
rbasakVG12: just ask your question. Otherwise nobody knows if they can help you, so can't answer.10:33
=== ePierre is now known as ePierre-afk
VG12A work colleague of mine is targeted by a hainous website, the WHOIS is privacy protected but the registrar is launchpad. I have never used launchpad, I don't get how thats possible : is launchpad a webhosting service ?10:34
VG12Registrar WHOIS Server: www.launchpad.com Registrar URL: www.launchpad.com10:34
rbasakThis channel is about launchpad.net.10:35
cjwatsonVG12: That's not us.10:35
cjwatsonSimilar name, but no relation.10:36
cjwatson(From time to time we get misdirected queries from people who've registered domains with launchpad.com, and the best we can do is point them in the right direction.)10:37
VG12Oh yes indeed. Thank you folks, sorry the answer was before my eyes.10:37
VG12Have a great day10:37
cjwatsonGood luck tracking down the problem.10:37
rbasakI need a list of all source packages (that we might need to import). nacc is parsing http://archive.ubuntu.com/ubuntu/dists/devel/main/source/Sources.xz. Any opinion?10:38
cjwatsonrbasak: I believe I suggested that.10:38
rbasakAh, OK :)10:38
cjwatsonExcept obviously more components etc.10:38
rbasakTrouble is that also excludes older series. If we care.10:38
cjwatsonWell, I didn't specifically suggest only devel.10:39
cjwatsonI'd check all series and all pockets.10:39
cjwatsonThe thing I suggested was using published Sources files rather than (probably very slow) API queries.10:39
rbasakGetting the series from the API presumably10:39
cjwatsonYep10:39
* rbasak wonders if a list of pockets is similarly available10:39
cjwatsonAfraid not, but it hasn't changed in over a decade10:40
rbasakLooks like the API defines the set10:40
cjwatsonIt's in lp.registry.interfaces.pocket10:41
rbasakWhile you're here (I'm review nacc's MP), any opinion on the actual parsing, as implemented in Python? nacc is doing some Python-based parsing of the Sources file. Which feels ugly, but shelling out to grep-dctrl would also be ugly.10:42
rbasakWhat would you do?10:42
cjwatsonrbasak: I'd use python-debian10:42
cjwatsonThe stuff in debian.deb822 is generally fine for this10:42
rbasakThanks!10:43
cjwatsonrbasak: (python-apt is also fine; python-debian sometimes makes use of that for speed.  Use whichever interface is more comfortable.)10:43
cjwatsonrbasak: germinate uses python-apt, so possibly I preferred that at one point.  I think when I wrote that python-debian was significantly less good.10:44
=== signed8bit is now known as signed8bit_Zzz
=== Guest29637 is now known as Vorpal
kamahi!19:17
kamais it possible/am I allowed to use a launchpad PPA to make packages for Debian?19:18
=== e[_] is now known as tacocat
nacccjwatson: i just had a lightbulb moment thanks to your responses in the bug, thank you very much!21:50
nacccjwatson: and you are right about the algorithm rework, and i think we have more to do in that space21:50
cjwatsoncool, glad to help21:57
nacccjwatson: sorry for my density :)21:59

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!