Team Chat Logs

July 31, 2009

2009 6
Mo Tu We Th Fr Sa Su
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

[03:32:59]<osimons>morning, people
[03:35:03]<rblank>Morning osimons!
[04:07:23]<davidfraser>Three cheers for osimons
[04:07:38]<osimons>heh :-)
[05:54:12]<thm>btw, and OT: what's is the current best source for an irclogs plugin with search functionality? there are multiple versions floating around
[06:14:17]*davidfraser wants one for ejabberd muc_log logs
[08:01:08]<doki_pen>thm: the 0.11 irclogs plugin has search
[08:01:25]<doki_pen>thm: I'm working on a much improved version, but haven't gotten around to fixing search yet
[08:01:37]<doki_pen>but it's next on the list
[08:13:01]<osimons>request for input: is adding ${name} for slave name to recipe substitution useful? i see we use it in target rules, but it is not available for recipes
[08:13:18]<osimons>(i'm adding ${basedir} for where an absolute path is needed (#325))
[08:19:01]<davidfraser>osimons: definitely useful
[08:19:06]<osimons>unlike ${basedir}, the need for ${name} can easily be done using slave config as ${slave.host} or something, but as we already display 'name' it would make sense to make it fully supported, or?
[08:19:33]<osimons>davidfraser: yeah, can't see why not either - and it won't hurt :-)
[08:20:15]<osimons>use ${name} based on current target platform rules, or use something more explicit like ${slave}?
[08:20:37]<osimons>${name} it is. goodie :-)
[08:23:29]<davidfraser>or maybe we should change the target platform rules to slave as well though
[08:28:55]<osimons>davidfraser: nah - that would mean a db upgrade as these all gets stored - ${name} is fine...
[08:29:48]<davidfraser>Indeed, very wise
[08:31:40]<osimons>btw, i've seen some discussion about schema changes and upgrades - it was suggested at some stage to collect them and make some change. i now have 2 that i think are needed - how about you, davidfraser?
[08:32:06]<osimons>(outside of the upgrade for logs from db => dir of course)
[08:35:24]<osimons>I have: 1) storing Build.path (tying a build to a path at some point in time, #302), and 2) store BuildStep.line (keep step execution ordered in db even for steps finishing same second, #262)
[08:40:00]<davidfraser>I have forgotten the ones we were discussing ...
[08:40:06]<davidfraser>those sound good though
[14:11:02]<pacopablo>er, so is there a way to notice if a slave has contacted the master?
[14:12:55]<osimons>pacopablo: like this? http://bitten.edgewall.org/ticket/179
[14:14:33]<pacopablo>yup
[14:16:18]<pacopablo>ok, so, next question, is there a way to force a build?
[14:16:49]<pacopablo>I don't really want to have to make a commit in order to test my bitten changes
[14:17:08]<pacopablo>additionally, forcing a build would be helpful when setting up a build configuration
[14:33:59]<osimons>pacopablo: when viewing a build, you can invalidate it and thereby building it again - but you need valid config at some location with a repos commit in the first place
[14:34:19]<pacopablo>grr :(
[14:34:37]<pacopablo>guess it makes sense
[14:35:05]<osimons>however, this is also possible: http://bitten.edgewall.org/wiki/BittenRunSlaveLocally
[14:37:47]<pacopablo>good for testing a recipe
[14:37:54]<pacopablo>thanks for the link
[14:39:17]<pacopablo>also, when specifying the URL for the slave, is just the base of the trac site enough, or does /builds/login need to be specified?
[14:45:39]<pacopablo>mmm, looks like auth isn't working ;(
[14:59:47]<osimons>pacopablo: just /builds as it stands noe (before #208 gets fixed at least)
[15:01:59]<pacopablo>I applied #208
[15:02:22]<pacopablo>turned out that I was specifying the worng path to my slave.ini file ;)
[15:02:33]<pacopablo>of course bitten-slave didn't make any mention of it
[15:03:53]<pacopablo>I'll create a patch that at least warns the user that the config path specified doesn't exist
[15:23:36]<osimons>pacopablo: nice - that should really be exit reason, i think
[15:35:24]<pacopablo>k
[15:35:45]<pacopablo>I'll add an extra special DIE DIE DIE message in there
[15:41:12]<CIA-7>r682 by osimons in bitten/build/pythontools.py: 0.6dev: Minor issue with `python:trace` where percentage was calculated based on covered lines as read from .cover file divided by code line count as ...
[15:41:28]<pacopablo>so, how often does the build slave check for available builds?
[15:42:52]<osimons>pacopablo: see -i option to set interval yourself
[15:44:37]<pacopablo>k
[15:48:17]<pacopablo>do you know what method is called when the build slave connects?
[15:51:48]<pacopablo>oh, yummy!
[15:51:59]<pacopablo>looks like I've gotten my checkout all screewd up with patches ;(
[16:04:09]<pacopablo>er, ok, BuildQueue.populate() looks like it grabs the repos and then loops through nodes
[16:04:30]<pacopablo>in the web_ui.py we're using req.authname to make sure the user can even grab the repos
[16:04:43]<pacopablo>but in BuildQueue.populate() we don't
[16:04:50]<pacopablo>shouldn't be be passing the athname?
[16:05:07]<pacopablo>er, we
[16:12:19]<pacopablo>haha
[16:12:25]<pacopablo>well, it kind of works ;)
[16:12:46]<pacopablo>managed to get it into what appeared to be an infinite loop of builds ;)
[16:17:21]<osimons>pacopablo: it will only populate from the list already passed from collect_changes (and thereby approved)
[16:17:46]<pacopablo>populate call collect_chagnes
[16:18:02]<pacopablo>er, populate calls collect_changes
[16:18:16]<osimons>oh - i see
[16:20:16]<pacopablo>so, right now I got it to do a build
[16:20:24]<pacopablo>but then it seems to keep on doing the build
[16:20:51]<pacopablo>then the subsequent builds are for the root
[16:20:51]<pacopablo>the semi weird thing is that the first build appers to be for the path I specify
[16:20:52]<pacopablo>make any sense?
[16:21:04]<osimons>well, all it does is populate the db with builds in pending status - it does not retrieve any info or pass any out
[16:21:34]<osimons>that depends on the actual client (slave) accessing the build and the authname then used
[16:21:37]<pacopablo>BuildQueue.populate?
[16:22:33]<pacopablo>hmm, well for multirepos, the call I'm using: get_repository_by_path, requires the authname
[16:22:36]<pacopablo>http://trac.edgewall.org/browser/sandbox/multirepos/trac/versioncontrol/api.py#L455
[16:23:06]<pacopablo>hmm, maybe passing None as the authname will be sufficient
[16:23:17]<osimons>yeah - get get_build_for_slave() on the other hand should match, but if not all it gets is Forbidden when it tries to check out
[16:24:38]<osimons>it bitten is set to create builds for all revisions and platforms, it does so. but it does not really deal with repos other than populating builds and reporting - all repos access is directly from client anyway
[16:24:55]<pacopablo>k
[16:25:32]<osimons>pacopablo: however, only looked at this for a couple of weeks - and certainly not with a view from the repos side... make notes, and do say if things look wrong
[16:26:16]<pacopablo>hehe, thanks, will do
[16:26:26]<pacopablo>still trying to feel my way around
[16:26:45]<pacopablo>I dont' really have a good idea of what bitten is trying to do, so some things do seem a bit confusing
[16:27:59]<pacopablo>how does the slave report that it finished?
[16:28:46]<osimons>well, in essence it collects changes and creates a build (pending) for each platform of each active config matching repos path. slave does all the work and reports xml using regular requests. master just stores on build
[16:28:55]<pacopablo>warning minro flood:
[16:28:56]<pacopablo>009-07-31 16:14:52,810 Trac[main] DEBUG: Dispatching <Request "DELETE u'/builds/2'">
[16:28:59]<pacopablo>2009-07-31 16:14:52,812 Trac[api] INFO: Synchronized default repository in 0.00 seconds
[16:29:02]<pacopablo>2009-07-31 16:14:52,813 Trac[perm] DEBUG: No policy allowed anonymous performing BUILD_EXEC on None
[16:29:12]<pacopablo>I wonder if it's related to the auth patch
[16:29:24]<pacopablo>perhaps it's pulling the build, but can't report that it's done
[16:29:30]<pacopablo>and so pulls it again?
[16:29:55]<osimons>does anonymous have BUILD_EXEC?
[16:30:01]<pacopablo>no
[16:30:08]<pacopablo>I created a user
[16:30:16]<pacopablo>and the slave shoudl be authing as said user
[16:30:41]<osimons>so you are not authorized from the slave making the request - turn on -v for verbose (debug) logging on slave, it should say how it authorizes
[16:30:53]<pacopablo>k
[16:31:39]<osimons>all slave logic is contained in slave.py - at least how it polls for jobs, starts builds, builds and reports each step etc.
[16:33:19]<osimons>even "setup-slave.py install" works now, and all it does is slave.py + recipe/config/xml stuff it needs with no dependencies on trac etc -- all the rest is just for the master (trac)
[16:33:48]<osimons>(basically build/, recipe and util/)
[16:33:54]<pacopablo>ok, so somethign iw srong with the slave login
[16:34:13]<osimons>not surprising... :-)
[16:34:27]<pacopablo>[DEBUG ] Enabling authentication with username 'bittenslave'
[16:34:27]<pacopablo>[DEBUG ] Authentication not provided. Attempting to execute build anonymously.
[16:34:41]<pacopablo>yet it manages to login to get teh build
[16:35:41]<pacopablo>looks like I'v got more code to dig into ;)
[17:43:26]<pacopablo>ok, so, found issue
[17:43:34]<pacopablo>you latest patch to #208
[17:43:40]<pacopablo>has at least two problems
[17:44:03]<pacopablo>first, it doesn't same the username from the config.ini to the BuildSlave object
[17:44:40]<pacopablo>so when it goes to check to see if it needs to do the HEAD, then it fails an saysit's going to do it without auth
[17:49:34]<CIA-7>r683 by osimons in bitten/admin.py: 0.6dev: Removing whitespace from target platform rules admin. Fixes #336.
[18:19:21]<pacopablo>ahh, you hadn't updated your patch for the username/auth_cookie issue
[18:35:04]<pacopablo>appearantly account manager has issues with HEAD requests :)
[18:35:17]<pacopablo>'doh!
[18:44:44]<CIA-7>r684 by osimons in bitten/slave.py: 0.6dev: Logging start + stop time for the slave. Closes #268.
[18:45:41]<pacopablo>ahh, it's the HTTPAuthPlugin that doesn't allow HEAD requests
[18:47:17]<pacopablo>er, maybe it's not
[18:47:21]*pacopablo is really confused right now
[18:47:37]<osimons>i don't know - i use basic auth + digest auth only, no accountmanager...
[18:47:56]<pacopablo>yeah, I'm using account manager
[18:48:00]<pacopablo>+ HTTPAuthPlugin
[18:48:09]<pacopablo>to rpovide basic auth on /login/builds
[18:48:21]<pacopablo>but it's not working properly
[18:48:33]<pacopablo>if I give a HEAD request, then it complains that Authentication isn't configured
[18:49:11]<pacopablo>if I git a GET, then it bombs with a 405: Method Not Allowed
[18:51:34]<pacopablo>hmm, but I also use the permredirect plugin
[18:51:41]<pacopablo>I wonder if that's also messing with it
[18:51:54]<pacopablo>wow, what a quagmire
[18:54:31]<pacopablo>2009-07-31 18:53:42,657 Trac[filter] DEBUG: HTTPAuthFilter: Authentication okay for bittenslave
[18:54:34]<pacopablo>2009-07-31 18:53:42,659 Trac[main] WARNING: HTTPInternalError: 500 Trac Error (Authentication information not available. Please refer to the <a href="/support/wiki/TracInstall#ConfiguringAuthentication" title="Configuring Authentication">installation documentation</a>.)
[18:54:38]<pacopablo>grr
[18:57:02]<CIA-7>r685 by osimons in (5 files in 3 dirs): 0.6dev: Adding `${name}` and `${basedir}` (#325) for recipe substitution. Updated docs + new test.
[18:59:42]<osimons>pacopablo: another vote for getting #208 fixed once and for all, perhaps...? :-)
[19:00:02]<osimons>and the new count of open tickets is... wait for it.... 99!
[19:00:12]<pacopablo>woowoo!
[19:00:23]<pacopablo>osimons: well, I'm working on #208 :)
[19:00:27]<pacopablo>as well as #342
[19:00:48]<osimons>goodie :-)
[19:01:12]<osimons>i have quite a bit still remaining in my hg mq patch queue...
[19:06:44]<pacopablo>hehe, that's goign to be the fun part for me
[19:06:56]<pacopablo>I'm old skool and am developing on a patch svn checkout ;)
[19:07:27]<pacopablo>should really use git svn to do the development
[19:07:30]<pacopablo>oh well
[19:24:54]<CIA-7>r686 by osimons in bitten/tests/master.py: 0.6dev: Follow-up to [685] - fix 1 failing test.
[19:25:28]<pacopablo>I think it would be great if bitten had no tests itself :)
[19:27:28]<osimons>such a pain, indeed - although i've added ~20 in the last weeks...
[19:28:23]<osimons>that's what i'm doing now for another patch - i've made it work, it looks good and works well. but does the doc test pass now? nooooo....
[19:36:13]<pacopablo>hehe
[19:37:43]<CIA-7>r687 by osimons in bitten/ (2 files in 2 dirs): 0.6dev: Fixing browse source coverage annotation. Also fixes tests (source paths starts with '/', reduces log amount, and tones down the red and green ...
[19:37:55]<osimons>well, now it does :-)
[20:04:55]*osimons sleeps. night.
[21:04:00]<pacopablo>wb retracile