/srv/irclogs.ubuntu.com/2015/06/09/#launchpad-dev.txt

wgrantblr: What're you working on atm? Did you sort out the big branch's test failures?00:11
=== jamesh_ is now known as jamesh
blrwgrant: I did yep, I'm looking at https://bugs.launchpad.net/launchpad/+bug/676769 atm00:18
mupBug #676769: resubmitting a merge proposal should reuse the old commit message <code-review> <confusing-ui> <lp-code> <Launchpad itself:Triaged by blr> <https://launchpad.net/bugs/676769>00:18
wgrantblr: That should be quick, but don't put too much effort into it -- the resubmit workflow needs to be entirely redesigned.00:19
blrwgrant: sure. Anything I should be thinking about today prior to the stakeholder meeting?00:21
wgrantblr: Not really, I don't think.00:23
wgrantblr: Is the big branch ready for review?00:23
blrwgrant: yes if you could have a look again thanks.00:30
blrwgrant: oh one omission that I fogot to ask you about regarding the licensing for the git icons - does the entire text of the creative commons license need to be in LICENSE?00:39
blrforgot even00:39
blror is it sufficient to state that the images are licensed CCv3 and provide a link00:39
wgrantblr: It needs to include the entire text if we're including the icon.00:43
wgrantWhere's the icon used atm?00:43
blrpush instructions00:43
blrwgrant: updated the license00:49
wgrantblr: Did you explore splitting the page into a bzr half and a git half? You could then hide the non-default half behind an expander or something by default, making the page less awkward for projects that don't care about the other VCS.00:54
wgrantI've just selected Bazaar, so why is the next thing on the page a Git command?00:55
blrwgrant: err that's weird00:56
blryou aren't seeing the push instructions update on changing the radio?00:57
wgrantHrm, I have JS issues, apparently.00:58
wgrantRecreated the container over the weekend, must have broken something.00:58
blryou should see the form toggling from the bzr|git radio00:59
blrDidn't consider the expander, do you think that would work better?01:00
blrwould usually consider using an accordion when there are more than 2 sections, but here it seemed fairly binary01:01
wgrantOh, my container was too well secured.01:05
blrheh01:05
wgrantblr: That's working much better. We probably still want to provide the ability to set the other side's options, though.01:07
wgrant(splitting the page into sections by VCS would make that easier, and also improve the non-JS case)01:08
blrwgrant: oh, I suppose in that case we really will need a split.01:08
blrfrankly, I didn't consider the case of needing to set both. :|01:09
wgrantIt's not common, but it isn't very difficult, and it makes the path for migration much less unclear.01:10
blrthat's true. So I suppose we need a +setbranch/git and +setbranch/bzr01:10
wgrantI want to set up my new Git trunk so I can test that my CI systems build against it, but I can't do that without changing my project's main VCS away from Bazaar :(01:11
blrright01:11
wgrantI think they can be on the same page.01:11
wgrantHidden like now.01:11
wgrantBut there's a $something that'll show the non-default one.01:11
blrok a link stating [Configure non-default (git|bzr)] ... something like that?01:12
blrcould we use the horizontal space?01:12
blrwould be a bit of a break from convention for LP forms, but I'd imagine most people have the resolution (would be nice to see those stats, did we ever get GA access?)01:13
beunowhere default is just something expressed in the UI?  does it have other consequences?01:13
beunoalso, hi!01:13
wgrantEvening beuno.01:13
wgrantbeuno: It just selects which VCS is preferred when showing listings, push/clone instructions, etc. at the moment.01:14
* beuno nods01:15
wgrantIn the UI it's not referred to as the "default VCS", just the "VCS", but the other one can be used as well if it exists, if you click the relevant link.01:15
blrhi beuno01:15
wgranteg. LP's default VCS is Bazaar, but because it has a Git repo too there's a Git link on https://code.launchpad.net/launchpad01:16
wgrantMost projects won't be doing that long-term.01:16
wgrantBut it's important for migration and some weird projects that are really several codebases in one project.01:16
wgrant(eg. lots of PES things)01:16
beunoand I guess the rationale for splitting them into parallel universes is because you can't merge between them01:17
wgrantAnd they're very difficult (and usually not interesting) to list together.01:17
wgrantDue to the repo vs. branch differences.01:17
beunoah yes01:17
beunothat thing01:17
wgrantHaving them as separate worlds is fine for most cases and adequate for all, but we need to make the other world accessible.01:18
* beuno nods01:20
blrwgrant: any thoughts on how to best approach the layout?01:20
blrare there are existing UI patterns for that sort of thing (i.e. 1. Configure this, but 2. optionally configure this) in LP? Would be best to follow existing convention, but I can't think of anything01:22
wgrantblr: It need not be obvious. Just a widget somewhere that says something about "$VCS settings" and causes the rest of the widgets to appear. You already have something sort of along those lines in the description of the default VCS widget, where it mentions the other one is still available.01:23
wgrantThat could potentially be replaced with a single link somewhere that says "let me poke the other one too"01:23
wgrantI don't know of anything similar.01:23
wgrantIt's very rare that we have two alternate worlds that sometimes need to exist in parallel.01:23
blryep, nothing springs to mind. Ok, I'll re-work it, and if it seems cludgy we can try a different layout I guess.01:24
blrhaving 2 distinct forms will make the doctests happier at least.01:25
wgrantblr: They're probably still the same form, but I guess see how it turns out.01:26
=== Spads_ is now known as Spads
cjwatsonI've got various mostly UI branches up for review from the tail end of last week, in case they got missed09:01
cjwatsonCurrently working on merge detection09:01
wgrantWhoops, forgot about those, sorry.09:02
cjwatsonExcept I need like four times as much coffee to do the turnip side of merge detection. :-P09:04
wgrantcjwatson: Just an API call that takes a commit ID and a collection of other commit IDs and calls merge_base on each of them?09:14
cjwatsonThat bit's easy, but I think it's also useful to determine the commit at which it was merged into the left-hand history, analogous to bzr09:16
wgranthahaha left-hand history09:16
cjwatsonI'm forever being annoyed at other sites for making it hard to find when something was merged09:17
wgrantI've a feeling we're not in Bazaar any more.09:17
cjwatsonYeah I know but it's actually useful :P09:17
wgrantBut https://git.launchpad.net/launchpad/log/?h=db-devel makes SO MUCH SENSE.09:18
wgrantWho needs topology :)09:18
wgrantcjwatson: Do you have a strategy for determining the merge point?09:18
wgrantYou'd basically need to rewrite merge_base in Python.09:18
wgrantI think.09:18
cjwatsonWe can use merge_base to speed up the common case of unmerged MPs.09:19
wgrantTrue.09:19
cjwatsonSo first, exclude all MPs where merge_base(source, target) != source09:19
cjwatsonBut then it's graph theory in Python09:20
cjwatsonHence coffee09:20
wgrantAt least it should only have to be done once per MP, I suppose.09:20
wgrantHm.09:20
cjwatsonI think a lot of that work can be amortised across all MPs09:20
wgrantYou can't actually terminate it early, even.09:20
wgrantOh, unless you use GIT_SORT_TOPOLOGICAL, I suppose.09:21
wgrantThen I think the merge point is just the last one you see.09:21
cjwatsonIf I can't do it reasonably I'll just leave merged_revision_id empty09:21
cjwatsonor null or whatever it is09:21
wgrantI guess we could possibly also store the last point we've closed up to.09:22
wgrantThen you can .hide(previous_commit) to limit the search sapce.09:22
wgrantBut not much point if it performs adequately anyway.09:23
cjwatsonGoing for a walk to think about the algorithm.  Whatever I come up with I'll test on everything in LP's bzr-personal repo to see how it performs.09:37
cjwatsonIf it can do that it can probably take more or less anything.09:37
cjwatsonLooks like the optimisation of running merge_base on everything first to test if it's merged at all isn't actually an optimisation.  merge_base isn't that quick on large histories, and git_merge_base_many isn't exported.  So we'd have to roll our own logic there even if we left aside the mergepoint detection.13:12
cjwatsonI have an algorithm which roughly works based on merge_base for the first pass, but it took nearly two minutes to run over all the LP bzr-personal branches.13:13
cjwatsonAlso, repo.walk(oid, GIT_SORT_TOPOLOGICAL) takes time equivalent to walking the entire history before it returns any results at all.13:13
wgrantYep13:14
cjwatsonThat's a little under two seconds for LP.13:14
cjwatsonI think it may be best to roll our own rev walker for this; we can order topologically without having to walk the whole history first.13:16
wgrantHow?13:17
cjwatsonDepth-first traversal until we hit a node not all of whose children we've seen yet, at which point we push that onto a queue and look at it later.13:17
cjwatsonMemory requirements should be no worse than libgit2's topological sort must already be doing.13:18
wgrantChildren or parents?13:19
wgrantTraverse from which end?13:19
cjwatsonSeems like a bug that libgit2's toposort is behaving this way, though.  If you haven't asked for time or reverse as well, there's no reason it needs to walk the whole graph first.13:19
cjwatsonOh, right, we don't know the children yet13:19
cjwatsonHm, OK, that is actually hard.13:20
wgrantYup :)13:20
wgrantlibgit2 isn't wrong here.13:20
cjwatsonIt's also possible that it will be more efficient to just enumerate all the left-hand IDs up front.13:21
cjwatsonAnyway, meeting first ...13:21
cjwatson(I have tests for this algorithm which pass, so shouldn't be too hard to refactor once I work something better out)13:21
cjwatsonFetching a complete list of left-hand parents for LP is about six times as fast as starting a topological walk and fetching the first commit from it15:16
bigjoolswgrant: hey there - is there any published documentation on handling of PPA keys and how they are used / secured? Basically, something that convinces a layman of the security.22:59
wgrantbigjools: You wrote it :P23:00
wgrantThere's no documentation that I know of, though.23:00
bigjoolswgrant: I may have written it but now I am a customer ;)23:00
bigjoolslooking for something official23:00

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