logs | stats
   July 23, 2009  
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

[00:11:42] *** khmarbaise has quit IRC
[00:12:16] *** rromanchuk has quit IRC
[00:12:35] *** rromanchuk has joined #hudson
[00:18:55] *** admc_ has quit IRC
[00:22:08] *** BigAllan has joined #hudson
[00:35:37] *** mindless has quit IRC
[00:45:11] *** gits has quit IRC
[00:52:18] *** tanuki has quit IRC
[01:10:26] *** tanuki has joined #hudson
[01:10:39] *** alexlod has quit IRC
[01:25:20] *** abayer has quit IRC
[01:37:28] *** rromanchuk has quit IRC
[01:41:39] *** brunomlopes_ has quit IRC
[01:43:15] *** BigAllan has left #hudson
[01:45:28] *** alexlod has joined #hudson
[01:52:15] *** rromanchuk has joined #hudson
[01:52:36] *** rromanchuk has quit IRC
[02:25:54] <jieryn> is there any way to prevent hudson from doing parallel thread start up?
[02:26:11] <jieryn> initialization is definitely borked on 1.316 and back a few releases
[02:26:26] * rtyler initialized just fine on 316
[02:26:31] <rtyler> perhaps plugin related?
[02:26:32] <jieryn> many of my jobs are not loaded at start up due to class not found exceptions for antlr, and other
[02:26:44] <jieryn> however, if i simiply Manage Hudson, then Reload Configuration from Disk
[02:26:46] <jieryn> all the jobs show up
[02:27:48] <jieryn> may be plugin related, i run many -- but seems odd that a reload would solve things, yah?
[02:40:09] *** Lewisham_ has quit IRC
[02:45:12] *** abayer has joined #hudson
[02:59:19] *** alexlod has quit IRC
[03:03:23] *** abayer__ has joined #hudson
[03:12:22] *** abayer has quit IRC
[03:26:04] *** tanuki has quit IRC
[03:35:36] *** mrooney1 has joined #hudson
[03:35:45] *** mrooney has quit IRC
[04:16:43] *** Lewisham has joined #hudson
[04:22:17] *** alexlod has joined #hudson
[04:38:19] *** abayer__ is now known as abayer
[07:02:29] *** glass-eye has quit IRC
[07:43:58] *** slide_ has joined #hudson
[07:44:26] *** slide_ is now known as Guest24005
[07:44:44] *** Guest24005 is now known as glass-eye
[07:54:13] *** khmarbaise has joined #hudson
[07:56:44] *** khmarbaise has quit IRC
[07:56:52] *** brunomlopes has joined #hudson
[07:57:58] *** khmarbaise has joined #hudson
[08:16:20] *** khmarbaise has quit IRC
[08:24:18] *** glass-eye has quit IRC
[08:24:55] *** glass-eye has joined #hudson
[08:27:53] *** glass-eye has quit IRC
[08:28:11] *** glass-eye has joined #hudson
[08:35:43] *** brunomlopes has quit IRC
[08:38:13] *** Lewisham has quit IRC
[08:44:20] *** brunomlopes has joined #hudson
[09:49:42] *** gits has joined #hudson
[09:57:15] *** dvrzalik has joined #hudson
[10:25:36] *** timp_ has joined #hudson
[10:35:43] *** gits has quit IRC
[11:09:22] *** BigAllan has joined #hudson
[12:34:17] *** BigAllan has quit IRC
[12:37:17] <bobo_> hm, is there any plugin that lets you set status depending on the change in code coverage?
[12:37:32] <bobo_> im using emma and it seems i can only set limits on total values
[12:37:56] <bobo_> i want to try to make the build unstable if code coverage goes down
[13:08:00] *** timp_ has quit IRC
[13:32:10] *** ed_mann has quit IRC
[13:38:43] *** ed_mann has joined #hudson
[13:46:42] *** timp_ has joined #hudson
[13:48:42] *** ed_mann has quit IRC
[13:54:43] *** ed_mann has joined #hudson
[14:01:20] *** ed_mann has quit IRC
[14:14:06] *** akostadinov has joined #hudson
[14:24:34] *** velo has joined #hudson
[14:24:58] *** mdelaney has joined #hudson
[14:26:48] <mdelaney>      /msg nickserv set hidemail on
[14:28:19] <Maior> smooth
[14:29:30] <mdelaney> Thanks. I'm good like that (when it's early)
[14:43:36] <Guest96258> hi folks - the promoted builds plugin seems broken nowadays, it makes the configure screen stop rendering when the promoted builds block is about to be pushed
[14:43:51] *** Guest96258 is now known as davidk
[14:44:20] *** davidk is now known as Guest62875
[14:57:33] *** wdk_ has quit IRC
[15:23:37] *** j2sentient has joined #hudson
[15:25:39] *** jdolan has joined #hudson
[15:28:57] <mdelaney> Anyone know the best way to diagnose why a plug-in config isn't showing up while editing a job?
[15:33:02] *** zeljko has joined #hudson
[15:33:37] <zeljko> hi
[15:33:51] <zeljko> I am trying to checkout git repository with hudson
[15:34:42] <zeljko> I have hudson 1.316, git 1.6.3.2.1299.gee46c, hudson git plugin 0.7.3
[15:34:48] <zeljko> OS is windows
[15:35:15] <zeljko> error message is: Could not clone from a repository
[15:35:28] <reto_> does it work on the console?
[15:35:40] <zeljko> I guess hudson does not have credentials for repository
[15:35:50] <zeljko> but I do not see where to enter credentials
[15:36:10] <zeljko> reto_: yes, it works from command prompt
[15:36:25] <reto_> with or without password?
[15:37:55] <zeljko> I have just executed the same command hudson runs (git clone -o origin [repository])
[15:38:09] <zeljko> and it cloned it
[15:38:23] <reto_> hmm
[15:38:25] <zeljko> I do not have to enter credentials from command prompt
[15:38:37] <reto_> are you sure it uses the same git binary as you do?
[15:38:41] <zeljko> but repository has username/passworkd
[15:38:47] <zeljko> not sure
[15:38:50] <zeljko> how to check it?
[15:38:59] <reto_> can you specify a path ? in the hudson gui?
[15:39:02] <reto_> im not sure
[15:39:02] <Maior> get it to "which git"
[15:39:37] <reto_> Maior: is there a wich on windows?
[15:39:38] <zeljko> Maior: I did not understand you
[15:39:45] <zeljko> oh, I see
[15:39:48] <zeljko> let me try
[15:40:06] <zeljko> no
[15:40:09] <zeljko> 'which' is not recognized...
[15:41:07] <Maior> or whatever is appropriate for your OS
[15:41:12] <Maior> s/OS/platform/
[15:41:30] <zeljko> I will try to run `git version` in hudson (execute windows batch command)
[15:42:49] *** akostadinov has quit IRC
[15:43:06] <zeljko> well, hudson says it has the same version as command prompt said
[15:43:10] <zeljko> git version 1.6.3.2.1299.gee46c
[15:44:49] *** akostadinov has joined #hudson
[15:45:10] *** akostadinov has quit IRC
[15:48:46] *** akostadinov has joined #hudson
[15:51:43] <reto_> no idea
[15:51:46] <reto_> not my OS
[15:55:05] <zeljko> I will try to see which git binary hudson runs
[15:57:44] <reto_> not my OS
[15:57:46] <reto_> hmm
[15:57:47] <reto_> sorry
[15:57:47] <reto_>  :)
[15:58:00] <zeljko> windows... :)
[15:58:33] <reto_> the second time was an accident :) (up-enter)
[15:58:45] <reto_> could the path be worng?
[15:58:53] <reto_> afaik hudson creates the necessarry folder by itself
[15:59:00] <reto_> but that could be a reason why it isnt able toclone
[16:01:11] <zeljko> path to git?
[16:01:22] <reto_> na
[16:01:27] <reto_> path to working folder
[16:01:31] <zeljko> hm
[16:01:34] <zeljko> how could it be wrong?
[16:01:39] <reto_> not existing?
[16:01:42] <reto_> wroong permissions?
[16:01:50] <reto_> whitespaces in foldername?
[16:01:51] <reto_> dunno
[16:02:03] <zeljko> not existing for sure, but hudson creates it
[16:02:18] <reto_> thats what I assumed yeah
[16:02:22] <reto_> hmm
[16:02:23] <zeljko> and I have another job in the same hudson instance
[16:02:30] <zeljko> but with svn repo
[16:02:34] <zeljko> and it works fine
[16:02:45] <zeljko> creates folders, checkout from svn
[16:02:46] <reto_> have you tried it with a new job?
[16:03:02] <zeljko> to clone git repo in another job?
[16:03:12] <reto_> jap
[16:03:19] <zeljko> will try right now
[16:03:34] <reto_> perhaps some svn remains are blocking the path to the bright world of git
[16:03:36] <reto_> :D
[16:03:54] <zeljko> :)
[16:04:12] <zeljko> I use svn and git in that machine all the time
[16:04:16] <zeljko> no problem so far
[16:04:43] <reto_> na, I mean i the work folder
[16:04:44] <reto_> of hduson
[16:06:52] <zeljko> hm
[16:07:07] <zeljko> does not want to clone in another job and another git repo
[16:07:17] <zeljko> will try with public git repo, just to see
[16:08:20] <reto_>  good idea
[16:08:30] <reto_> sory, I have no idea
[16:08:39] <reto_> sory, I have no idea
[16:08:41] <reto_> fck
[16:08:59] <reto_> you are in the wrong tab order zeljko  :)
[16:09:10] <reto_> zeljko: are you by any chance from .ch?
[16:09:47] <zeljko> reto_: no
[16:09:52] <zeljko> why?
[16:10:00] <reto_> I know a zeljko here :)
[16:10:07] <reto_> not really a common name in switzerland :)
[16:10:14] <zeljko> for sure :)
[16:10:19] <zeljko> I am from .hr
[16:10:25] <zeljko> a common name here
[16:10:48] <reto_> hr is croatia right?
[16:10:54] <reto_> yap it is .)
[16:12:11] <zeljko> yes
[16:12:23] <zeljko> local name hrvatska, hence .hr
[16:13:37] <reto_> gonna visit your nice country again in september.. (looking forward to it)
[16:13:52] <Maior> zeljko: ah, wondered why the hr
[16:14:15] <reto_> Maior: like the .ch for switzerland :) they picked the worst possible combination ;)
[16:14:20] <zeljko> yes, .hr is strange for people
[16:14:56] <zeljko> my boss is in .ch, I just recently found out why it is their domain
[16:15:13] *** akostadinov has quit IRC
[16:15:27] *** mindless has joined #hudson
[16:15:30] <reto_> the ch comes from the 'Confoederatio Helvetica'
[16:15:50] <reto_> which itself comes from the Helvetii :)
[16:15:55] <reto_> a Celtic tribe :)
[16:16:29] *** akostadinov has joined #hudson
[16:17:12] *** akostadinov has quit IRC
[16:19:14] <zeljko> a tribal culture, looks like :)
[16:19:56] <reto_> yap
[16:20:11] <reto_> your boss lives in switzerland :) ?
[16:20:25] <zeljko> yes
[16:21:01] *** j2sentient has quit IRC
[16:22:31] *** akostadinov has joined #hudson
[16:36:28] *** akostadinov has quit IRC
[16:36:46] *** ppawel has joined #hudson
[16:48:33] <mart> imagine having a tribe named after a butt-ugly font.  that's somewhere between unfortunate and downright embarrassing.
[16:51:13] <reto_> what butt ugly!?
[16:51:22] <reto_> ah, butt-ugly font, not tribe .)
[16:51:35] <reto_> I like helvetica :)
[16:51:54] <mart> :)
[16:52:13] <reto_> do you like frutiger? afaik from the same guy (but not sure)
[16:52:14] <reto_> http://upload.wikimedia.org/wikipedia/en/a/ab/FrutigerSpec.svg
[16:54:13] <mart> does look similar.
[16:54:49] *** abayer has quit IRC
[16:56:02] *** Lewisham has joined #hudson
[16:59:15] *** zeljko has quit IRC
[17:03:52] *** mart_ has joined #hudson
[17:04:39] *** mart has quit IRC
[17:04:39] *** bobo_ has quit IRC
[17:07:31] *** mindless has quit IRC
[17:22:56] *** bobo_ has joined #hudson
[17:25:31] *** khmarbaise has joined #hudson
[17:38:44] *** Lewisham has quit IRC
[17:44:21] *** mdelaney has quit IRC
[17:45:59] *** abayer has joined #hudson
[17:47:05] *** Lewisham has joined #hudson
[17:49:36] *** Lewisham has quit IRC
[18:12:36] *** mindless has joined #hudson
[18:13:49] *** mart_ is now known as mart
[18:16:22] *** dvrzalik has quit IRC
[18:19:27] *** kstreith has joined #hudson
[18:22:10] <abayer> Woo. I've modified (on the update-center-experiments branch) the update-center generator to use an abstract VersionedFile - now I just need to add flat directory and possibly Maven repository implementations.
[18:24:19] <AgentIcarus> what does that do?
[18:24:29] <AgentIcarus> (pardon the noobishness :) )
[18:26:15] <abayer> Working towards a few things with the update center - the ability to use a source other than the canonical java.net downlaod area for plugin downloads (for situations where your Hudson box is blocked from the net, etc), multiple update center sources getting merged together, and some improvements in reporting on version incompatibilties with upgradable plugins, or plugins vs. Hudson core, etc...
[18:26:38] <abayer> Not something almost anyone but me and kohsuke will care about off the bat, but I'm having fun. =)
[18:27:06] <AgentIcarus> ahhh
[18:27:48] <AgentIcarus> something that my team members have been asking me today is "why doesn't hudson realise that when I change a file ..../ down there in the hierarchy in a maven project, why can't it just build that module"
[18:27:57] <abayer> Ah, yeah, incremental builds.
[18:29:16] <abayer> Obviously, if you're not running mvn clean, and you're not nuking your workspace before every build, you'll get some approximation of that (at least in terms of compilation), but in terms of straight-up not running modules without changes? Yeah, that's not there currently.
[18:29:37] <abayer> And I'm not entirely sure whether it's something we can realistically aim for - but? I'll take a look, 'cos my guys would appreciate it too.
[18:30:00] <AgentIcarus> cool
[18:30:12] *** j2sentient has joined #hudson
[18:30:32] <Maior> yeah we've had a similar situation here
[18:30:37] <AgentIcarus> really Maior
[18:30:38] <AgentIcarus> I wonder why
[18:30:43] * AgentIcarus waves
[18:30:50] <Maior> oh! you're you
[18:30:52] <abayer> One option that you could do right now would be to just make each module its own job - you'd lose out on anything aggregate, though.
[18:31:04] <AgentIcarus> yup
[18:31:27] <abayer> Mind you, I still haven't really even played with the parallelized builds and aggregation - I need to do that.
[18:31:48] <AgentIcarus> one other thing I'm seeing with parallelized builds is that my test results aren't appearing in the nice graph on the project home page
[18:31:59] <AgentIcarus> (it does when I untick "Build modules in parallel")
[18:32:11] <abayer> Yeah, there are a good number of things that don't work quite right with parallelized builds.
[18:32:32] <AgentIcarus> fair enough :)
[18:32:52] * AgentIcarus was considering looking at that bit of the hudson code this weekend
[18:33:17] <abayer> It's a nifty concept, but given that Maven itself has no support for the idea of running modules in parallel, it's not a shocker that a bunch of features don't quite work right.
[18:33:23] <AgentIcarus> true I guess :)
[18:33:48] <abayer> I think it may make more sense to go with job-per-module and then a separate job to handle aggregate issues, but I'd like to play with that more.
[18:33:53] <bobo_> one thing i would like is to be able to "mark" sections in svn and map changes only there to different projects
[18:33:53] <AgentIcarus> yeah
[18:33:57] <abayer> Ack, and now I've got a doctor's appointment. back later. =)
[18:34:01] <AgentIcarus> thanks abayer
[18:34:09] <bobo_> does that sound like something hard to do?
[18:35:14] <bobo_> (using ant)
[18:45:12] <jieryn> can i get commit access?
[18:51:10] *** j2sentient has quit IRC
[18:51:45] <jieryn> something has been irritating me for quite a while <http://dpaste.com/70510/>
[18:55:32] <kohsuke> jieryn: sure, what's your java.net ID?
[18:55:44] <jieryn> wow, what a great question..
[18:56:25] <jieryn> kohsuke: name is jieryn
[18:58:15] <kohsuke> your commit access should be set in 15 secs or so
[19:01:05] <jieryn> <3
[19:08:32] <jieryn> that worked, thank you :)
[19:08:43] <kohsuke> Thanks for the change
[19:09:08] <jieryn> anyone working on the IRC plugin?
[19:09:22] <kohsuke> svn log is usually a better way to tell
[19:09:35] * jieryn runs it
[19:10:31] <jieryn> nope
[19:10:53] <kohsuke> If you are interested in taking over, a lot of people would be happy, I think.
[19:19:29] *** statlor has joined #hudson
[19:23:30] <statlor> bleh had to pull an all nighter last night for work
[19:23:37] <statlor> that is totally cutting into my hudson dev time!
[19:28:05] *** j2sentient has joined #hudson
[19:36:17] *** j2sentient has quit IRC
[19:36:20] *** j2sentient has joined #hudson
[19:59:53] *** gits has joined #hudson
[20:03:56] *** josh_k has joined #hudson
[20:04:14] <josh_k> anyone here got any experience with the Selenium Plugin?
[20:04:22] <josh_k> trying to figure out how to specify $DISPLAY
[20:04:35] <josh_k> setting it for the slave user is a no go it seems
[20:06:22] <josh_k> aha
[20:06:29] <josh_k> setting in profile.d does work though
[20:06:33] <josh_k> and re-launching the slave agent
[20:06:38] <josh_k> will document that piece
[20:07:19] <bobo_> :-)
[20:07:50] <bobo_> the selenium grid plugin is awezome otherwise, dont think i had to  do anything
[20:08:15] <josh_k> bobo_: yeah, I am converting a homebrewed selenium setup to Hudson
[20:08:20] <josh_k> loving all that it does
[20:08:23] <bobo_> :-)
[20:08:31] <josh_k> but I'm used to having total control over every little piece
[20:08:38] <josh_k> like, just today realized to look at the slave log
[20:08:41] <bobo_> yeh thats never a bad thing
[20:08:47] <josh_k> that answered like 10 questions right away ;)
[20:09:18] <josh_k> hm
[20:11:36] <ppawel> josh_k, but what do you run selenium tests against? do you deploy your app in another job or something?
[20:11:50] <ppawel> I have selenium in my Maven build and it does everything
[20:12:00] <josh_k> ppawel: I'm doing contnuous integration on a web-based project
[20:12:04] <ppawel> ie. deploys the app on tomcat, runs selenium etc.
[20:12:26] <josh_k> so our app is Drupal on Apache
[20:12:49] <ppawel> ah ok so app deployment is not part of your selenium build ?
[20:12:51] <josh_k> and unfortunately we don't have the benefit of Maven or a similar framework
[20:12:57] <josh_k> right
[20:13:03] <ppawel> ok that makes sense
[20:13:05] <josh_k> we are just running continuous testing and integration
[20:13:23] <josh_k> deployment is another separate task once hudson is reporting all clear
[20:13:25] <josh_k> ;)
[20:13:28] <ppawel> hmm wait
[20:13:50] <josh_k> basically we re-run a battery of tests after every SVN commit to the project
[20:14:08] <ppawel> so once your unit/integration (programmatic) tests are clear then you deploy the app and *then* you run selenium job against it?
[20:14:18] <josh_k> right
[20:14:22] <ppawel> ok
[20:14:46] <josh_k> simpletest runs, then selenium (or as soon as I get this all working again), and then some performanece/scalability stuff
[20:14:51] <josh_k> which is jmeter-based
[20:15:07] <josh_k> also need to work in some automatic code-cleanliness and style checks
[20:15:27] <josh_k> and run the whole sequence on every SVN commit
[20:15:49] <ppawel> how do you synchronize deploy job and selenium job?
[20:16:42] <josh_k> ppawel: well, deploy is pretty simple; just an svn update and a quick update script and cache/clear
[20:16:52] <josh_k> since we don't compile anything
[20:17:28] *** statlor has quit IRC
[20:17:28] <ppawel> ah ok, because it's php
[20:17:54] <josh_k> right
[20:18:02] <bobo_> ppawel: otherwise you can just let the selenium job be a downstream job form the deploy job?
[20:19:06] <josh_k> that's what we do with our simpletest suite
[20:19:10] <ppawel> bobo_, yes but I'm thinking about how to be sure that your app is deployed.. in maven there is cargo pllugin that deploys stuff to app servers and I'm not sure howwhen it finishes
[20:19:28] <josh_k> ahhhh
[20:19:28] <ppawel> if my app takes few minutes to start up for example
[20:19:50] <bobo_> ah, well, you can always use quiet period
[20:19:53] <josh_k> ppawel: yeah, you could do a remote trigger rather than downstream build
[20:19:59] <josh_k> or quiet period
[20:20:27] <ppawel> hmm ok, will explore that
[20:21:33] <ppawel> gtg, thanks for the chat
[20:21:38] *** ppawel has quit IRC
[20:23:28] <josh_k> well, maybe I should start idling here too then
[20:23:30] <josh_k> :)
[20:23:33] <bobo_> :-p
[20:37:58] *** rromanchuk has joined #hudson
[20:56:23] *** Guest62875 has left #hudson
[20:57:37] *** davidka has joined #hudson
[20:57:52] *** cowmix has joined #hudson
[21:00:42] *** dvrzalik has joined #hudson
[21:00:56] <cowmix> trying to get proxypass working.. and I'm getting a 404 error
[21:01:13] <cowmix> here's my apache config, hudson options:  http://hudson.pastebin.com/d6a6428a6
[21:06:48] <davidka> hmm - have you tried with http instead?
[21:06:57] <davidka> works for me
[21:08:17] <davidka> like this:      ProxyPass /proximity http://192.168.3.50:8080/proximity
[21:08:18] <davidka>         ProxyPassReverse /proximity http://192.168.3.50:8080/proximity
[21:13:31] <cowmix> i figured it out
[21:13:44] <cowmix> my start / stop script was working correctly to restart hudson
[21:13:52] <cowmix> I had a ton of instances running..
[21:14:10] <cowmix> so.. I fixed it.. but didn't know it.. :)
[21:24:05] *** admc has joined #hudson
[21:29:56] <davidka> nice
[21:43:30] *** statlor has joined #hudson
[21:43:54] <statlor> 44 people! nice
[21:45:38] *** j2sentient has quit IRC
[21:47:27] *** gits has quit IRC
[21:49:16] <mrooney1> statlor: that comment cost us 5%!
[21:50:24] *** brunomlopes has quit IRC
[21:59:16] <rtyler> NOOOOoooo
[21:59:33] <rtyler> we're hemhorraging users!
[22:02:40] <Maior> lol
[22:07:53] *** jbriguet has joined #hudson
[22:08:22] <statlor> wow sorry heh
[22:13:46] *** khmarbaise has quit IRC
[22:26:38] *** jbriguet- has quit IRC
[22:28:39] *** kstreith has quit IRC
[22:31:56] *** velo has quit IRC
[22:34:06] *** brunomlopes has joined #hudson
[22:44:23] *** admc has quit IRC
[22:46:39] *** j2sentient has joined #hudson
[22:52:47] *** Lewisham has joined #hudson
[22:53:36] *** admc has joined #hudson
[23:12:07] *** dvrzalik has quit IRC
[23:15:01] *** j2sentient has quit IRC
[23:18:03] <mrooney1> hey, I see at http://github.com/stephenh/git-central/blob/master/server/post-receive-hudson there is an example of, I think, updating a project XML
[23:18:18] <mrooney1> how might I create a NEW project from a config.xml?
[23:18:36] <mrooney1> I tried just posting to where I want it to be but that gives me a 404
[23:20:29] <AgentIcarus> Maior: ^^ that could be handy if you want to automate svn stuffs (with appropriate mods obv.)
[23:21:01] <AgentIcarus> mrooney1: you've seen line 60? That seems to be creating a new project
[23:21:05] <AgentIcarus> unless I'm misreading it
[23:21:33] <mrooney1> oh yes, a facepalm is appropriate, thanks!
[23:21:56] <mrooney1> yeah I am using it with subversion
[23:23:24] *** BigAllan has joined #hudson
[23:23:26] <mrooney1> oh no error 500
[23:25:26] <mrooney1> ah yes escaping quotes is useful
[23:25:45] <mrooney1> how slick, thanks AgentIcarus
[23:29:01] <Maior> AgentIcarus: cheers

top