/srv/irclogs.ubuntu.com/2010/03/20/#launchpad-dev.txt

wgrantmaxb: It doesn't depend on -backports?00:16
cody-somervilleUgh. Soyuz, how I want to refractor thou.00:20
wgrantWhich bit in particular?00:20
cody-somervilleummm... pretty much all of it.00:21
wgrantHeh.00:22
cody-somervilleFirst I'd refractor publishing00:22
jpdsJust make the archive publisher run faster, kthx.00:22
cody-somervilleThe archive publisher isn't really that slow TBH.00:22
jpds20 minutes... unacceptable. ;)00:23
cody-somervilleIts 5 minutes00:23
jpdsNo.00:23
wgrantNot for the primary archive.00:23
cody-somervilleThe primary archive doesn't count.00:23
wgrantWhat do you see as wrong with the current publisher design?00:25
wgrantApart from the code being foul and the names sucking and blah blah blurgggh.00:25
cody-somervilleHave you looked at a graph of publishing tables?00:25
wgrantHeh. Yes.00:25
* wgrant quickly extends http://people.ubuntu.com/~wgrant/launchpad/buildfarm/current-build-model.png with them and cries.00:26
cody-somervilleI'm implementing the ability to delete PPAs.00:27
cody-somervilleThe relationship between SourcePackagePublishingHistory and SourcePackageRelease is a mess.00:28
wgrantTo what level are you implementing it?00:28
wgrantI presume the DB structures will stay.00:28
cody-somervilleYes, unfortunately.00:28
cody-somervilleSourcePackageRelease is attached to an archive (ie. upload_archive) when you copy a package to another archive it just creates a new SourcePackagePublishingHistory record that points to the SourcePackageRelease for the source archive.00:29
wgrantYes.00:30
wgrantBut if you're leaving the actual Archive around, i don't see a problem with this.00:30
wgrantupload_archive is only used when saying 'Copied from Some Archive'00:30
cody-somervilleI suggested that bug bigjools doesn't want to keep it around, we really want to delete the archive.00:30
wgrantThat's deleting incriminating history, though.00:31
wgrantI don't like deleting history, particularly when it contains records of what arbitrary code people have been executing.00:31
cody-somervillewgrant, If you copy a copied package then it'll say you copied it from original archive the package was uploaded to, not the archive you actually copied the package from.00:31
wgrantcody-somerville: Yes. That is a stupid bug.00:32
wgrantIt will be fixed along with recording who did the copy and when.00:32
cody-somervilleIts not a stupid bug, its a critical design flaw. lol.00:32
wgrantIt's not that much of a problem, is it?00:32
cody-somerville(or more like a lazy hack)00:32
wgrantLazy hack that is easily removed, right.00:32
cody-somervillewgrant, It is because we have to keep an archive's SourcePackageRelease around if there are SourcePackagePublishingHistory records for other archives that reference it.00:33
wgrantcody-somerville: You're actually considering deleting the SourcePackageRelease? Why?00:33
wgrantAnd we already have logic for determining this, in the PPA file expirer.00:33
wgrantPlease reuse it, or somebody is again going to get very close to inadvertently deleting a few hundred gigabytes of packages that needed to be kept.00:34
cody-somervillebigjools said he wants it all deleted. I don't see any reason for keeping it around either myself since it'll have no references to it.00:34
cody-somervillewgrant, file?00:35
wgrantcody-somerville: The script that expires PPA librarian files has queries to determine whether an SPR is currently in use elsewhere.00:36
wgrantAlthough I guess you really just care about whether it's been used outside that archive.00:36
wgrantwhich makes the query trivial00:36
cody-somervilleheh, I wouldn't call the query in expire_archive_files trivial.00:39
wgrantNo, that one isn't.00:39
wgrantBut your search needs to be more restrictive, so it is.00:39
cody-somervillewgrant, Maybe you're more familiar with Storm and can recommend a more efficient storm query: http://pastebin.ubuntu.com/398085/00:40
maxbActually I quite like the feature that if you copy a copied package, it still references the original upload archive00:41
cody-somervillewgrant, oops, extra line in there.00:41
cody-somervilleforget line 3 exists00:42
wgrantcody-somerville: So you /are/ actually removing the Archive?00:42
cody-somervillewgrant, Thats the current plan, yes.00:43
wgrantEw.00:43
* maxb seconds that00:44
wgrantApart from the impossibility of setting upload_archive = None, and my revulsion at history deletion, that looks OK.00:44
maxbWhy is it so important to delete the history?00:44
cody-somervilleWe're patching SourcePackageRelease to drop the NOT NULL constraint.00:44
wgrantAs long as you also remove everything else associated with the SPR.00:44
wgrant(SPRFs, that sort of thing)00:44
cody-somervilleYes, we're deleting everything.00:45
wgrantThis is making it very easy to remove a complex hierarchy of important data and accountability.00:45
cody-somervilleIf the archive is gone, its gone.00:45
cody-somervilleSometimes deleting something means really deleting something.00:46
maxbAnd why is this desirable !??!00:46
cody-somervillewhy is it not?00:46
cody-somervilleWe don't want to keep records in the database for a deleted archive.00:46
cody-somervilleWe have the ability to disable archives when we want to do that.00:47
cody-somervilleFor example, copy archives and rebuild archives would be very nice to be able to delete.00:48
wgrantWhy?00:48
wgrantI want to be able to look at the rebuild history.00:48
wgrantWhat benefit does deleting the records provide, besides allowing a single malicious or mistaken click to delete a vast amount of irreplaceable data, and saving a tiny bit of DB space?00:49
cody-somervilleDo you really care about rebuild history for a rebuild that occurred for a 5 year old release?00:49
cody-somervilleand the launchpad database is like terabytes so I think the latter is valid, yes.00:50
cody-somervilleAlso, I don't think this feature will be used primarily to delete archives which actually history but instead ones without.00:51
cody-somervillefor example, if someone wants to rename their account00:51
cody-somervillean empty PPA unfortunately blocks that00:52
wgrantIf they want to rename their account, then we "delete" the PPA.00:52
wgrantWe hide it and remove it from disk.00:52
wgrantWe probably even remove the librarian files.00:52
cody-somervillemanually00:52
maxbIncidentally, why don't we just rename the PPA on disk too?00:52
wgrantmaxb: The indices need regeneration.00:53
wgrantcody-somerville: The use of present tense there was perhaps a mistake.00:53
maxbok, delete and republish from scratch then00:53
wgrantmaxb: Right.00:53
wgrantThe publisher could just say "oh look, there's no directory there, but there is stuff to publish. Let me take a few more seconds and carefully publish it from scratch"00:53
maxbI get that discouraging PPA owners from breaking people's sources.lists is good, but an "are you sure?" would be good enough, I would think00:54
wgrantOne would think so.00:54
wgrantWe allow users to break their OpenIDs after such a warning, for example.00:55
maxbHeh, icon positioning fail on https://edge.launchpad.net/builders00:57
wgrantYeah, I reported that a couple of days ago.00:57
wgrantA somewhat intermediate step in the generalisation refactoring landed.00:57
wgrantBug 54081900:58
mupBug #540819: BuildFarmBuildJob icons on /builders misplaced <trivial> <ui> <Soyuz:Triaged by jtv> <https://launchpad.net/bugs/540819>00:58
maxbThe PPA publisher seems to take an abnormally long time these days01:03
wgrantmaxb: Howso?01:03
maxbIt feels like sometime I'm waiting for multiple 5-minute intervals to happen for a publication01:06
wgrantHmmm.01:06
wgrantUnless the publisher oversteps its 5 minute window, that should be impossible.01:07
maxb*right* launchpad-developer-dependencies is installable again01:08
magciusWhere is the vhost config file?02:55
wgrantmagcius: The same file as the rest of the config.02:55
magciuswgrant: which is where?02:56
magciuswgrant: I'm looking in /configs, nope, /canonical/config, nope02:56
wgrantIn the [launchpad] section of your config file.02:56
wgrantWhich is probably in configs/.02:56
magciushttp://bazaar.launchpad.net/~launchpad-pqm/launchpad/db-devel/annotate/head%3A/configs/development/launchpad.conf02:57
magciusnothing useful there02:57
wgrantlaunchpad-lazr.conf is the important one.02:57
wgrantlaunchpad.conf is deprecated.02:57
magciuswhat is "lazr"02:57
wgrantIn that filename it refers to lazr.config, the configuration file parser used by Launchpad.02:58
wgrantWhich is part of the LAZR suite of libraries.02:58
magciusIn general, what does it stand for?02:58
wgrantAll developed for use in Canonical's web applications.02:58
wgrantIt stands for nothing.02:58
magciusWas LAZR opened when LP was opened?02:58
wgrantMost of it started embedded in various webapps (mostly Launchpad).02:59
wgrantit was progressively split out with the first bits released about a year before LP's source.02:59
magciuswould you mind explaining "traversal"?02:59
magciusI looked at doc/navigation.txt, but I didn't understand it02:59
wgrantIt's how our URLs work.03:00
magciusOkay.03:00
wgrant/ubuntu/karmic/i386 will traverse to first Ubuntu, then its Karmic release, then its i386 architecture.03:00
magciusSo it's going down a tree of possible endpoints?03:00
wgrantIt's taking a path form a URL, applying it to a tree of objects, and ending up with a sequence of objects between the root and the target.03:01
wgrants/form/from/03:01
magciusalright03:01
wgrantIt's not too dissimilar from normal Zope traversal.03:02
magciusdo things like "+bug" mean anything special in terms of this navigation?03:02
wgrantUgh.03:02
wgrantThose are sort of magical and ugly.03:02
magciusWonderful.03:02
wgrantSince there's +bugs but also +bug/1234, which doens't really make much sense.03:02
wgrantSay you've got /ubuntu/+bug/123403:02
mupBug #1234: Gina is an unmaintainable mess of command line options, environment variables and shell scripts <Launchpad Foundations:Fix Released by debonzi> <https://launchpad.net/bugs/1234>03:02
magciusthat URL works? (responding to the bot)03:03
wgrantThat URL does work, yes.03:03
wgrant+bug doesn't represent an actual object.03:03
wgrantIt purely represents a URL namespace.03:03
magciusI've never used Zope. It lost me at the webapp configuration and object database based on pickle.03:03
wgrantWell, Launchpad is a Zope application, but it doesn't use ZODB at all (the object database of which you speak).03:04
magciusI understand.03:04
maxbThe thing which really really confuses me about launchpad urls is where special pages like /builders overlap with the namespace of distros/projects03:04
wgrantmaxb: That's why we have the name blacklist.03:05
magciusso does it mean anything to the traversal?03:05
wgrant'+whatever' has historically been used to avoid that namespace issue.03:05
wgrantBut that has been abandoned in the root lately, IIRC because it stuffs up breadcrumbs.03:06
magciusi.e. does "+bug" mean "return this special Bug object for the next lookup"03:06
wgrantAnd is a tad ugly.03:06
magciusalso, I officially hate Loggerhead.03:06
magcius1) the annotate/files distinction for the only purpose of pissing URL editors off03:07
magcius2) the %3A in every goddamn URL03:07
wgrantloggerhead isn't really part of LP.03:07
magcius3) no left-margin marker, the sans-serif revision marker, especially painful to identify indentation levels with long stretches of code03:07
wgrantmagcius: To see how the +bug traversal works, see lp.bugs.browser.bugtask.BugTargetTraversalMixin03:07
magciuswgrant: does that class go from ubuntu to +bug or +bug to 123403:08
wgrant'@stepthrough("+something")' lets the method handle paths of the form '+something/foo', and it will take 'foo' as an argument.03:08
wgrantmagcius: It handles ubuntu to +bug/123403:08
wgrantThere is no intermediate class in this case.03:08
magciusalright03:08
magciushow/where are the DNS entries for bugs.launchpad.dev and such on development machines?03:09
magcius(I never understood DNS)03:09
wgrant/etc/hosts03:09
magciusI've seen in the "Getting Started" guide that you don't need to modify that, and "launchpad.dev" will work03:10
magciusWhich is what baffled me.03:10
wgrantThe installation script (rocketfuel-setup) modifies /etc/hosts itself.03:10
magciusdoes it also do that for bugs.launchpad.dev and the rest?03:10
wgrantYes.03:10
magciusalright. Does Zope/LP just determine how to dispatch from the request sent, or are there separate locations?03:11
wgrantSeparate locations?03:12
magciusseparate servers03:12
magciuson separate ports03:12
wgrantThere is a wildcard Apache vhost which dispatches to a single LP server process.03:12
wgrantThat checks the Host header.03:12
magciusIs that true in the production cluster as well?03:12
wgrantOn production I believe there are multiple Squids in front of multiple Apaches in front of multiple appservers each running multiple LP processes.03:13
wgrantEr, there's haproxy in there somewhere too -- probably between Squid and Apache.03:13
magciusAre some LP servers designated to "Bugs" or "Code Hosting" or something?03:14
wgrantOr maybe Apache and the appservers.03:14
maxbWasn't Pound mentioned at one point?03:14
wgrantmaxb: It was replaced with haproxy.03:14
maxbah03:14
wgrantmagcius: The main webapp is all hosted by one set of machines that do not discriminate.03:14
wgrantbazaar.launchpad.net is served by the Codehosting machine, which stores all of the Bazaar branches.03:15
wgrantIt might also run Loggerhead, but that could be delegated to another machine. I forget.03:15
wgrantwin 1603:20
wgrantArgh.03:20
maxbAh well, that's the first time I've seen you do that :-)03:25
maxbWe have someone at work who does it so often we've written a plugin for our IRC bot to automatically mock him03:25
wgrantHeh03:26
=== StevenK_ is now known as StevenK
=== lionel_ is now known as lionel
=== james_w` is now known as james_w
NCommanderIf I'm storing changelogs in librarian, should I give it a more descriptive file name beside "changelog"?22:39
wgrantNCommander: I don't think so.22:40
wgrantThankyou for using the librarian, though!22:40
wgrantAlthough maybe NAME_VERSION_changelog could be nice. i don't know.22:40
NCommanderwgrant: well, I talked it over iwth bigjools once I got a moment to breath22:49
NCommanderwgrant: I'll submit it as a second branch proposal, and then let BjornT and stub decide what version they want, and kill the one they don't :-)22:50
NCommanderwgrant: I'm open to suggests on this one :-)22:51
NCommanderwgrant: also, how do I get stuff OUT of librarian?22:55
* NCommander isn't so sure on tha tbit22:55
wgrantNCommander: Call .read() on the LFA, IIRC.22:55
wgrantMerge proposals do it to get the diff.22:55
wgrantI can't think of anywhere else in the webapp that does.22:55
NCommanderwgrant: as long as its possible, I'm happy. Once changelogs land and are migrated (I have to write the migration utility next), I'd like to do the same for copyright files22:59
NCommanderand get those out of the database22:59
NCommander  Ran 5 tests with 0 failures and 0 errors in 0.061 seconds.23:00
NCommanderwoo23:00
NCommanderdual screens also woo23:02
NCommanderwgrant: is changelog_id a good name for the column?23:03
NCommanderor should it be something more decsriptive?23:03
wgrant'changelog' in the DB.23:03
NCommanderwgrant: ah, ok23:04
* NCommander notes that greatly reduces the number of edits I have to make then <g>23:04
wgrantWhy?23:04
wgrantApart from the comments.sql change.23:04
NCommanderwgrant: I was going to call the column changelog_id23:05
NCommandernow I don't need to do that23:05
* NCommander just updates a few comments23:05
wgrantAh.23:05
NCommanderwgrant: how does ForgienKey() work when updating the model23:10
* NCommander is a bit confused23:10
NCommanderwgrant: for instance, the model code to get section in the database is:23:11
NCommander    section = ForeignKey(foreignKey='Section', dbName='section')23:11
wgrantSo, that's deprecated.23:11
NCommanderI'm not sure how to do one for libraryfilealias23:11
NCommanderwgrant: oh23:11
wgrantBut if the class you're using uses it, I guess you should follow.23:11
NCommanderwgrant: is this a zope thing?23:12
wgrantchangelog = ForeignKey(foreignKey='LibraryFileAlias', dbName='changelog')23:12
wgrantNo.23:12
* NCommander is still kinda iffy on Zope23:12
wgrantThis is SQLObject.23:12
wgrantWhich is deprecated by Storm.23:12
NCommanderwgrant: ah, I see23:14
NCommanderwgrant: so, for the attribute, how's this for a description:     changelog = Attribute("LibraryFileAlias for the changelog of this SourcePackageRelease.")23:14
wgrantI think I'd prefer 'LibraryFileAlias containing debian/changelog'23:15
wgrantBut I don't really know. There is no consistency.23:16
NCommanderwgrant: fair enough23:16
* NCommander runs the soyuz and archiveuploader tests to make sure nothing else has broke23:17
* NCommander lets the soyuz and archiveuploader test suites run23:29
NCommanderwgrant: ugh, I'm getting a *ton* of test failures on my branch :-/23:38
NCommanderwgrant: http://paste.ubuntu.com/398521/ - like that, which seems odd23:39
wgrantNCommander: There was an error before that that you broke.23:40
NCommanderwgrant: no, I'm getting a massive stream of these23:41
NCommanderlike hundres23:41
NCommanderI don't think I could have broken it that badly23:41
wgrantYou broke one and it cascaded.23:42
wgrantWait until the run has finished, then rerun the failing tests with -1.23:42
wgrant-1 will stop on the first failure in each doctest.23:42
wgrantLetting you see what actually caused it all.23:42
NCommanderwgrant: k23:47

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