/srv/irclogs.ubuntu.com/2014/05/23/#juju-dev.txt

hazmatwallyworld_, looking at the file dan uploaded .. there's  a wierd 5 minute gap http://paste.ubuntu.com/7502559/00:10
hazmatwhere the agent restarts itself00:10
hazmatoh.. right after it reconfigures logging to WARN.. hence no log00:11
sinzuiIs anyone about to help me diagnose a local kvm issue on a ppc64 machine in the lab?00:25
sinzuihttp://pastebin.ubuntu.com/7503638/00:25
davecheneysinzui: my gut says you are missing a package00:28
davecheneyjuju-local does not depend on the entire set of packages required to boot ubuntu images00:29
sinzuithank you davecheney I will investigate00:29
davecheney(based on my experiences 6 weeks ago)00:29
davecheneysomething like ubuntu-cloud-template00:29
davecheneyhang on00:29
davecheneyi'll stop guessing00:29
sinzuidavecheney, I did install the list of packages it suggested when I tried it first, but I understand the list might no be accurate00:29
davecheneypossibly you need lxc-templates00:29
sinzuidavecheney, lcv works fine. CI now tests lxc on ppc64el for every rev we change00:33
davecheneyok, i don't know jack about kvm00:34
davecheneyit didn't even work on ppc when I was using it00:34
davecheneyas all the machines i had access to were themselves inside kvm00:34
davecheneywhich might be the problem00:34
sinzuidavecheney, yeah. I know kvm in kvm works. This is my last hope to get this working. I can see no cloud images were downloaded. Maybe there aren't ppc64el cloud-images suitable for this case00:38
davecheneywallyworld_: axw http://paste.ubuntu.com/7503679/00:50
davecheneygetting closer every day00:50
wallyworld_farking awesome00:50
axwdavecheney: nice00:51
axwhmm, what's that replicaset one00:51
davecheneyreplica set stuff is always busted00:51
davecheneysorry to whoever wrote it00:51
davecheneyits really unreliable00:51
axwyeah I know, I've been working on making it more reliable00:51
wallyworld_also on golang go :-(00:51
axwapparently still not00:51
axwdavecheney: I have a fix for the utils one00:51
wallyworld_davecheney: TestSecureClientNoAccess failure - that's because we're trying to connect to a non local address00:52
axwjust about to approve00:52
axwwallyworld_: it's cos of $http_proxy00:52
wallyworld_ah right00:52
davecheneyhttps://bugs.launchpad.net/juju-core/+bug/132239200:52
axwI've got a CL to clear it00:52
_mup_Bug #1322392: utils: test failure due to proxy <ppc64el> <juju-core:New> <https://launchpad.net/bugs/1322392>00:52
wallyworld_great00:52
davecheney^ sorry, just raised this, it's probably a due00:52
davecheneydup00:52
axwyeah I opened one yesterday00:53
wallyworld_do we have a bug for TestConstraintsValidator?00:53
sinzuiwallyworld_, no00:54
wallyworld_ok, that's an easy fix anyway00:54
axwwallyworld_: can you please take a look at https://codereview.appspot.com/100730043/ to make sure I haven't buggered up the intent of the test00:55
wallyworld_sure00:55
axwdavecheney: seen this yet? https://code.google.com/p/gosmith/00:57
wallyworld_axw: looks fine00:57
axwwallyworld_: thanks00:57
davecheneyaxw: yeah, dmitry has been ripping the compiler a new one with that00:58
davecheneyit's great00:58
axwnow it's llgo's turn00:58
sinzuiaxw, Do you have any insights into this? http://pastebin.ubuntu.com/7503710/01:00
axwsinzui: 'fraid not01:01
sinzuithank you axw01:01
axwabout to get on a meeting, I will take a look at the kvm code later to see if there's somethign else you can run01:02
sinzuiaxw: I found the issue.01:14
sinzui uvt-kvm: error: no images found that match filters ['release=trusty', 'arc01:14
sinzuih=ppc64'].01:14
davecheneywap, wap, wah01:16
davecheneyhang on01:18
davecheneyis that 'cos the arch is wrong01:18
davecheneyit should be ppc64el, or ppc64le01:18
sinzuidavecheney, exactly what I suspect.01:19
sinzuiI see ppc64el release01:20
sinzuihttp://cloud-images.ubuntu.com/releases/streams/v1/com.ubuntu.cloud:released:download.json01:20
sinzuidavecheney, but lxc works so WTF01:20
davecheneysinzui: we have several functions inside juju that translate btween the various aliases01:20
davecheneyit is possible lxc knows more than kvm01:20
davecheneyor even that the lxc images have a different naming scheme01:21
sinzuiI could test this by creating an alternate stream, but my weekend has started. I am not keen to start a project at this hour01:21
sinzuidavecheney, before the ports were opened of for stilson-06, I hacked up a https server and the hosts file on the machine to help juju find the tools01:23
axwsinzui: any chance I could get direct access to the trusty CI machine that runs the unit tests? there's one in particular that I cannot reproduce anywhere else01:28
sinzuiaxw, absolutely. one moment while I install your key into one of them01:29
sinzuiaxw, who else is in tanzanite?01:31
axwsinzui: wallyworld_ and mgz01:31
wallyworld_yes please01:32
axwdavecheney: should be a couple less test failures on trunk now01:38
davecheneyaxw: i'm working on a mega patch that will remove 90% of the uses of DeepEquals in our tests01:40
davecheneyIMO they are almost all wrong01:41
axwmmkay01:41
davecheneyfor example01:41
davecheneyc.Assert(manifest, jc.DeepEquals, set.NewStrings(dummyManifest...))01:41
davecheneythis is a set01:41
davecheneyorder is unimportant01:41
axwset is a map underneath I think01:42
axwso DeepEquals will work anyway?01:42
davecheneylogically your testing for set equality01:42
davecheneynot ordering01:42
sinzuiwallyworld_, axw, and mgz: I sent an email about accessing all the ppc64 env I manage01:48
wallyworld_thanks01:48
sinzuiwallyworld_, axw. I reported bug 1322401 about the issue. I will work on other tests next week01:57
_mup_Bug #1322401: kvm on ppc64el cannot fine images <ci> <kvm> <local-provider> <ppc64el> <juju-core:Triaged> <https://launchpad.net/bugs/1322401>01:57
axw_sinzui: sorry if you've been talking to me, my client didn't realise it was disconnected01:58
=== axw_ is now known as axw
sinzuiaxw, I wasn't all is fine. and I didn't say the bug had to be fixed this week01:58
axwokey dokey01:59
sinzuioh, axw, or wallyworld_ I was supposed to rebuild 1.19.2 to make ppc64el and arm64 tools. Since ppc64el has so many names, should I always make the tool with a specific name? when the script sees "ppc64el" debs, make a "ppc64" tools?02:01
axwppc64 is the arch name we use in the juju code02:01
sinzuiaxw, to restate your brief remark. Juju knows about ppc64. It will look for tools by that name. when the assemble script sees ppc64el, ppc64le, or power8, it will make a ppc64 tools from the first one, and ignore the rest.02:10
axwah right. sounds reasonable to me02:11
sinzuiaxw, I think that is right since that is the rule I hacked together to deploy the jenkins slave to stilson-06. I didn't want to put it in production without a dev having a chance to say It was dangerously wrong02:13
axwsinzui: davecheney would probably know better, but AFAIK ppc64el is the right dpkg arch to match against02:15
sinzuiaxw, that is the common one.02:15
sinzuiaxw, http://ports.ubuntu.com/pool/universe/j/juju-core/02:16
sinzui^ powerpc is still there, there was a ppc64le for a few weeks02:16
axwpowerpc eh... fairly sure we don't care about that02:18
sinzuiThe assembly script makes a tool for each one. There are not tools for ppc6402:20
sinzuimaybe I should make an extra tool each time a ppc64el is found02:23
sinzuidavecheney, I /think/ juju is looking for ppc64 tools, not ppc64el tools. Should I be making I make tools named arm64 each time I find a new ppc64el deb?02:26
sinzuidavecheney, I think I need to do that because the streams I made to deploy jenkins-slave to stilson-06 didn't work with ppc64el02:27
davecheneyaxw: I think you've fixed it https://bugs.launchpad.net/juju-core/+bug/132239202:29
_mup_Bug #1322392: utils: test failure due to proxy <ppc64el> <juju-core:New> <https://launchpad.net/bugs/1322392>02:29
davecheneysinzui:  I don't know02:29
davecheneythis keeps changing02:29
axwdavecheney: excellente02:29
davecheneyafaik when you use --upload-tools the name of those tools were -ppc64el.tar.gz02:30
sinzuidavecheney, users aren't supposes to use it02:31
davecheneysure02:31
sinzuidavecheney, since I have an env with tools that were never published, and my computer is amd64, upload-tools is usless02:31
davecheneybut that leads me to think that the the published name of the tools should also have the same exension02:31
sinzuiso02:31
sinzuihttps://juju-ci.s3.amazonaws.com/tools/streams/v1/com.ubuntu.juju:released:tools.json02:31
sinzui^ I created a stream of just the tools we run ci on, including a tools for ppc64. I chose that label because ppc64el didn't work02:32
davecheneysinzui: https://bugs.launchpad.net/juju-core/+bug/129065402:34
_mup_Bug #1290654: juju must not rely on the output of uname -m <ppc64el> <juju-core:Triaged> <https://launchpad.net/bugs/1290654>02:34
davecheneypossibly related02:34
sinzuidavecheney, yep, suffered that bug with i386 too02:35
sinzuiI have a hack in the run-unit-tests jobs to ensure i386 is matched correctly02:35
sinzuiI think the safest thing to do is to make two tools for each ppc64el02:36
axwsinzui: do you have a fixed ec2 instance for running the amd64/trusty unit tests? or do you start/stop instances each time?02:41
sinzuiaxw, neither, we start an instance with an ami, then run apt-get update (and possibly add ctools)02:41
axwsinzui: each run?02:42
sinzuiyes02:42
axwk02:42
axwwhich AMI? I want to try to reproduce this EnsureAdminUser test failure02:42
axwcannot repro anywhere02:43
sinzuiaxw, http://bazaar.launchpad.net/~juju-qa/juju-ci-tools/trunk/files < run-unit-test is for amd64 and i38602:43
axwthanks02:43
sinzuiaxw, run-unit-tests m1.xlarge ami-018c956802:44
sinzuiaxw, some of the tests now have ami's embedded in them. It was a problem when many bit rotten while we were in vega02:45
axwalright, will give that a shot...02:45
* sinzui updates each test in http://juju-ci.vapour.ws:8080/ to show what AMIs are used02:46
sinzuiaxw, This is the whole test script http://pastebin.ubuntu.com/7503961/02:52
axwsinzui: thanks02:52
wallyworld_davecheney: i'm about to fix the TestConstraintsValidator test failure for gccgo in the joyent tests03:45
wallyworld_are you alreayd doing that one?03:45
axwwallyworld_: can you please take a look at https://codereview.appspot.com/96540047/03:47
wallyworld_sure03:47
wallyworld_axw: take my +1 with a grain of salt since i got it wrong the first time03:48
axwsure :)03:48
wallyworld_axw: so it seems like you've changed it to how it should have been done first time round when it ws originally written - take use tomb03:49
axwyep03:49
axwnfi why it wasn't to start with03:49
wallyworld_nate wrote it originlly and roger +1ed :-)03:49
wallyworld_i think03:49
axwit was fine, but only on gc03:49
wallyworld_yeah :-(03:50
=== Ursinha is now known as Ursinha-afk
wallyworld_axw: remind me - we reduced the mgo dial timeout to 30 seconds because it used to be 10 minutes and sometimes tests wouldn't notice a connection had disappeared and so waited 10 minutes for the timeout to expire, right?04:23
axwwallyworld_: hey sorry, otp04:30
axwjust a mo04:30
=== Ursinha-afk is now known as Ursinha
axwwallyworld_: it was reduced to 30s because it shouldn't need to be any longer than that; other connections should time out and retry. Yes, some tests were failing to connect for 10m and then the test got killed04:32
axwso we wouldn't get useful output04:32
wallyworld_axw: so i might have to add a retry look around it because of the bug where a user's slow machine can't start mongo fast enough and bootstrap dies04:55
axwwallyworld_: around what?04:56
wallyworld_MaybeInitiateMongoServer04:56
wallyworld_or an upstream caller04:56
axwwallyworld_: ahh.. right, in bootstrap it doesn't retstart04:56
axwrestart*04:56
axwbugger, sorry I missed that detail04:56
wallyworld_in bootstrap if it can't connect after 30s yeah it dies04:56
wallyworld_np, simple enough fix04:57
axwwallyworld_: you could just set the timeout explicitly in bootstrap04:57
axwrather than use the default04:57
wallyworld_could do04:57
wallyworld_i think a loop and smaller timeouts are perhaps better04:58
wallyworld_maybe not, doesn't really matter for this situation i don't think04:58
axwI don't think it matters. whatever works and is elegant04:59
axwwith preference to the former :)04:59
wallyworld_sure04:59
axwI have nfi about this EnsureAdminUser thing. I can't reproduce on the same instance type as used in CI05:00
axwalso trying a faster instance type on ec205:00
axwno luck05:00
axwI'm going to try crafting up a separate program soon to cut down the time initialising mongo, speed up the test cycle05:01
=== vladk|offline is now known as vladk
wallyworld_davecheney: have you done a recent gccgo test run? on my machine, i get compiler errors and seg faults05:29
wallyworld_lots of tests pass though05:29
wallyworld_davecheney: when you get a chance could you do another test run and pastebin the results?05:33
menn0review please (fairly easy one): https://codereview.appspot.com/9471004605:49
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
axwwallyworld_: I may go back on what I said before about longer timeout vs. retry06:23
axwwallyworld_: if we use a retry loop, it may help with these i/o timeout errors06:24
wallyworld_that's sorta what i was thinking06:24
wallyworld_i'll add a loop06:24
wallyworld_bbiab, gotta go get kid from train station06:25
axwk06:25
axwwallyworld_: interesting thing- on CI, the agent and agent/mongo package tests take a long time to run (>15s). on my machine, they take ~1s each06:35
axwon another run, they took closer to 40s each06:36
axwon CI06:36
axwjust a guess, but maybe the machine is still busy initialising when the tests start up06:37
wallyworld_could be07:00
wallyworld_maybe we delay starting the tests07:01
wallyworld_axw: do you know how dave has been running his tests? on amd64 using -compiler=gccgo or on ppc?07:09
axwon ppc I think07:11
rogpeppehi all,07:17
axwhey rogpeppe07:18
rogpeppeaxw: yo!07:18
rogpeppeaxw: how's tricks?07:18
axwnot too shabby07:18
axwhow are you? have a good break?07:18
TheMuemorning07:18
axwmorning TheMue07:18
rogpeppeTheMue: hiya07:18
axwwallyworld_: I don't think it's worth expending any more effort on these i/o timeout bugs until we try adding a delay at the beginning of CI07:24
wallyworld_agreed07:24
axwwallyworld_: I can extend timeouts and so on, but I think it'll be neverending07:24
axwI'll pick something else up for now07:25
wallyworld_1305014?07:25
axwyep07:26
wallyworld_or 132228107:26
wallyworld_we are sort of expecting more info on those top 2 cards to come in07:26
wallyworld_the cloud init logs07:26
wallyworld_davecheney: you around per chance?07:27
rogpeppeaxw: yeah, had a great break thanks07:29
rogpeppeaxw: two weeks on cyprus07:30
axwnice07:31
wallyworld_fwereade: hiya, i've done another pass over that doc if you have a chance to look, no rush07:50
fwereadewallyworld_, cheers07:51
wallyworld_fwereade: i have standup soon and then will be back from soccer in about 4 hours if you needed to chat or whatever07:52
fwereadewallyworld_, nothing hugely springs to mind, but I'm here if you want me :)07:53
voidspacemorning all07:53
wallyworld_fwereade: i meant about the doc07:53
wallyworld_once you read it07:53
fwereadewallyworld_, I have lots of other stuff I have to figure out today so I might not get there in time, but yu never know your luck07:54
wallyworld_np, let's tak monday07:54
wallyworld_mgz: you around for standup?09:01
mgzjoining09:01
perrito666morning09:20
mgzmornin' perrito66609:20
TheMuemgz, perrito666: morning09:21
wwitzel3hello09:39
=== vladk is now known as vladk|offline
voidspacemy connection is ropey today09:52
rogpeppeanyone know if the bot automatically pulls new deps? i *thought* it did now, but this seems to indicate otherwise: https://code.launchpad.net/~frankban/juju-core/update-testing-package/+merge/22077209:57
mgzrogpeppe: it doesn't10:05
frankbanmgz: what's the process for updating a git repo in tarmac? should we ask Curtis?10:07
mgzfrankban: I'll do it10:08
frankbanmgz: thanks10:08
frankbanmgz: since we want to migrate some packages to github, we will need to update the dependencies file several times. I am also taking notes about the migration process. It would be nice to have the bot to pull changes automatically, but for the time being, is it ok if I include something like "ask mgz or sinzui to pull the last revision of the updated package in the tarmac machine before landing the dependencies.tsv c10:13
frankbanhange"?10:13
mgzfrankban: this is all changing, this week10:14
frankbanmgz: as part of the git migration?10:15
mgzyeah10:16
mgzfrankban: for now, bugging me is fine10:17
frankbanmgz: cool thanks, please ping me when I can re-submit the branch10:24
rogpeppeanyone have strong feelings about breaking the utils.Apt* functions into a separate package?10:27
natefinchI'm a big fan of small, focused package, so seems like a good idea to me10:27
rogpeppealso potentially moving the proxy-specific functions in osenv into their own package too10:28
rogpeppefwereade: ^10:28
wwitzel3+1 to small, focused packages10:29
rogpeppei'm focusing more on dependency hygiene than small packages per se10:29
rogpeppei don't mind larger packages if they're coherent10:30
TheMuecoherent packages, small files10:30
TheMuee.g. focussing on individual types10:31
rogpeppei don't mind large files either, if the contents of each file makes sense as whole10:31
rogpeppes/as whole/as a whole/10:31
wwitzel3I find it tought to build large packages with large files if I am making things coherent10:31
fwereaderogpeppe, +1 to dependency hygiene, small files, and small packages10:33
rogpeppei think the most important thing is that for every exported thing, it's easy to say "that thing definitely *belongs* in this package"10:33
fwereaderogpeppe, I think you have a greater tolerance for the latter two than many of us10:33
rogpeppefwereade: possibly. i like to follow the examples demonstrated by the go stdlib10:33
rogpeppepwd10:35
fwereaderogpeppe, I get antsy past a few hundred lines in a file, and past a few files in a package, tbh10:35
fwereaderogpeppe, mybrain has to start swapping things out at around that point10:36
rogpeppefwereade: i think there's a lot to be said for intra-package hygiene too.10:36
rogpeppefwereade: (for avoiding that situation)10:37
fwereaderogpeppe, definitely, but it's *really* hard to get that right in a large team -- package boundaries don't get violated accidentally, but it's easy to miss those sorts of screwups within a package10:37
wwitzel3rogpeppe: I'm hesitant using the stdlib (of any language) as a guide for how you should craft packages that aren't part of the stdlib.10:38
fwereaderogpeppe, sometimes they still get violated deliberately because someone doesn't understand the situation, but it's usually more obvious that the exposed surface has just changed significantly10:38
rogpeppefwereade: with too many packages, it's very easy to have packages with no proper raison d'etre - they tend to have fuzzy boundaries and end up having random collections of not-really-related functionality in them10:39
voidspaceaxw: ping, you still around10:39
fwereaderogpeppe, IME that's more a problem with large packages -- if the bias is to create small packages at the drop of a hat, existing packages keep their focus10:41
fwereaderogpeppe, and if two packages really are so closely related as to be better as one, it's an awful lot easier to merge than to split10:41
rogpeppefwereade: it's all trade offs as usual :-)10:42
fwereaderogpeppe, yeah :)10:42
rogpeppelc10:42
rogpeppefwereade: tbh i've found it pretty easy to split packages in the past10:44
=== vladk|offline is now known as vladk
dimiternTheMue, standup?10:45
natefinchwwitzel3: the standard library for Go is pretty good standard to go by for coding standards.  Occasionally there are functions which are hard for mere mortals to follow, but in general, it's a pretty good template.10:49
voidspacenatefinch: morning10:50
natefinchvoidspace: morning10:51
wwitzel3natefinch: I guess I've just found that things done for the sake of the "stdlib" are not always the best conventions to be used in your own packages.10:52
wwitzel3natefinch: that said, my exposure to the Go stdlib at this point is still limited, so I'm still open to the idea10:53
wwitzel3natefinch: and I've always pissed and moaned that the stdlib for a language wasn't the defacto go to place to learn good practices for building packages, so hopefully as I get more exposure to the Go stdlib, it will be able to promote it as the language that does just that.10:55
natefinchwwitzel3: I hope so :)10:57
wwitzel3fwereade: you have a moment for a hangout?11:05
fwereadewwitzel3, sure11:05
fwereadewwitzel3, moonstone?11:05
wwitzel3fwereade: yep11:06
=== vladk is now known as vladk|offline
rogpeppetrivial automatically-made change to review anyone? https://codereview.appspot.com/9767004411:29
rogpeppenatefinch, fwereade, wwitzel3, voidspace: ^11:30
rogpeppe(it just sorts all imports standardly)11:30
axwvoidspace: sorta here11:31
=== vladk|offline is now known as vladk
natefinchrogpeppe: LGTM11:33
rogpeppenatefinch: ta11:33
axwvoidspace: (re rsyslog review) that's why I suggested to remove the upgrade step; the immutability of syslog-port will cause the upgrade-step to fail now11:33
axwvoidspace: although... there is a way to open a state connection that doesn't validate environ config changes11:33
voidspaceaxw: so, when an upgrade is done is the code upgraded first - or the upgrade steps run *then* the code update11:35
voidspaceaxw: hmmm... the upgrade must be run with the current codebase11:35
voidspaceaxw: so it can't work11:35
axwvoidspace: it runs with the new code11:35
voidspaceaxw: do we want to *aim* to allow a 1.16 -> 1.20 upgrade11:35
voidspaceif so we need to bypass validation11:35
voidspaceif not we need to remove those upgrade steps11:35
axwvoidspace: I think that was the aim, yeah. so I guess we should leave it in but reopen state without the policy11:35
voidspaceaxw: how do I do that? :-)11:36
fwereadevoidspace, axw: we certainly aim for that to work, yes11:36
voidspaceso yes, with my current mp the upgrade tests fail11:36
axwfwereade voidspace: can we just leave a TODO for that for now?11:36
voidspacefor the obvious reason11:36
axwah11:36
voidspaceI should have run that before proposing of course11:36
fwereadeaxw, voidspace: well, we want 1.20 relatively soon, so I'm not sure how good an idea that it11:37
voidspaceaxw: how hard is it to bypass validation for an upgrade step?11:37
axwvoidspace: not sure, just taking a look now11:37
voidspaceaxw: thanks, I appreciate it11:37
axwvoidspace: the upgrade steps get an agent.Config, so can do state.Open11:39
axwvoidspace: state.Open has an optional policy argument, which you'd want to pass in as nil11:39
axwvoidspace: hrm, but I'm not sure if it'll work, because syslog-port is provider-independent11:40
rogpeppewow11:41
rogpeppeok  launchpad.net/juju-core/provider/joyent388.185s11:41
axwvoidspace: I don't think it's going to work11:41
axwrogpeppe: yeah, wallyworld_ has a pull request to the joyent packages to fix that11:41
voidspaceaxw: hmm11:42
axwapparently it's due to repeated crypto calls11:42
rogpeppeaxw: it wouldn't be the first time...11:42
axwvoidspace: so I don't see an easy fix here. it's possible to modify the settings docs in mongo directly, which is a little bit horrible11:43
voidspaceaxw: instead of adding it to the immutableAttributes, can we have custom validation?11:44
voidspaceaxw: which will allow setting it to the default but disallow all other values11:44
voidspaceaxw: so the upgrade will work11:44
axwvoidspace: actually I may be wrong, I think it *does* skip all config validation. I'll investigate a bit more...11:45
voidspaceaxw: let me look at the failing test, it may be failing when it tries to set the value *before* running the upgrade11:46
axwehh, could do that, but I'd rather not have super special case things11:46
voidspaceaxw: sure11:46
voidspacenope, it's running UpdateRsyslogPorts that fails11:48
rogpeppefwereade, natefinch, wwitzel3, voidspace: another fairly trivial review. just a code move. please ignore the dubious import formatting - i wanted to avoid extra diffs from merging the above CL before it landed. https://codereview.appspot.com/10073004411:49
rogpeppethis is just a code move (plus some associated renaming)11:49
voidspacenatefinch: where is your tool for stripping log output from test runs?11:50
axwvoidspace: opening without the policy allows you to bypass the validation altogether11:50
axwprovider-specific or not11:50
axwjust tested it in the state package11:51
natefinchvoidspace: go get github.com/natefinch/nolog11:51
voidspacenatefinch: thanks11:51
axwvoidspace: so, in the upgrade step- state.Open(agentConfig.StateInfo(), state.DefaultDialOpts(), nil)11:52
voidspaceawesome11:52
voidspaceI was just wondering how to get the Info11:52
natefinchrogpeppe: lgtm11:56
rogpeppenatefinch: thanks!11:56
natefinchI love the way Go namespacing means you don't have to put "Apt" in the name of all the types and functions11:56
rogpeppefwereade, dimitern, natefinch: ISTM that we should probably allow a single `import "foo"` statement in a file so that we can work nicely with goimports, which will format things that way if it adds a single import.11:57
rogpeppefwereade, dimitern, natefinch: it would make life easier for ourselves, and it seems a fairly trivial thing11:58
natefinchrogpeppe: yeah, that seems fine.  not wrestling with standards that conflict with goimports seems like a good idea in case anyone wants to use it.11:58
rogpeppenatefinch: lots of people run goimports on save11:59
natefinchrogpeppe: yep.  Certainly for things like this where it doesn't really matter either way, if one makes goimports happy, that seems a reasonable standard.12:00
voidspacemy lunch date is here12:02
* voidspace lunches12:02
dimiternrogpeppe, goimports leaves it alone if you reformat it12:08
dimiternrogpeppe, but i'm fine either way for a single import, as long as it's consistent across the code base12:09
rogpeppedimitern: yeah, but if it adds a new import when there was none already, it doesn't add the ()12:09
rogpeppedimitern: i'm happy allowing either form, tbh12:09
rogpeppedimitern: i don't think total consistency matters that much here12:09
jcw4fwereade, mgz - any chance of getting https://codereview.appspot.com/98260043/ reviewed and landed?13:22
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
fwereadejcw4, approved, keep half an eye on it to make sure it lands13:51
perrito666fwereade: go bot will publicly shame him if it doesnt :p13:52
jcw4lol... tx fwereade13:57
voidspacenatefinch: this is my fix https://codereview.appspot.com/91660043/patch/20001/3001014:14
* perrito666 sees the noise in the standup was generated by a trunk pumping an overflowed sewer... thanks cthulu my nose is a bit clogged today14:16
voidspaceheh14:16
mgzjcw4: sorry, I thought we'd said yesterday to just land it,14:22
mgzjcw4: branch seems to have a text conflict with trunk which will need fixing14:23
mgzjcw4: then it needs a commit message, which the bot should then pick up and merge14:23
natefinchbodie_: you around?14:30
bodie_hullo14:30
natefinchI was looking at the json schema package14:30
bodie_aye14:30
natefinchI have some concerns14:31
bodie_all ears!14:31
natefinchit looks like it could be ok if it were fixed up14:31
bodie_I was wondering what Dave Cheney meant about 66% coverage -- the author claims 246/248 tests passing on json-schema14:32
bodie_that's the only reason I thought it would be acceptable14:32
natefinchI think he means code coverage, so like 33% of the code doesn't get touched by the tests14:32
bodie_ah, is there a way to check that that I'm not aware of?14:33
natefinchbodie_: go test -cover :)14:34
jcw4mgz: thanks... I saw the text conflict message, I'll try to figure out how to resolve it... should I just merge trunk into my branch?14:34
natefinchlooks like 80.6% coverage when I run it right now14:34
natefinchalso, failing tests is pretty bad14:35
natefinchbodie_: more concerning for me is when I see stuff like this function: https://github.com/xeipuuv/gojsonreference/blob/master/reference.go#L8414:36
natefinchbodie_: which says it returns an error, but actually always returns nil14:36
bodie_oooo14:36
bodie_hmm14:36
bodie_okay, I think those concerns make sense14:36
bodie_... obviously they do, I mean I agree and understand :)14:36
natefinchbodie_: the last one is the most important....  that's a function that is obviously encountering errors and throwing them away for some reason.  That's pretty bad.  Who knows what other problems exist.14:37
natefinchThe code has a lot of test cases which is great, and it might be a good starting point to make it into something production ready... but it's not production ready as-is, IMO.14:38
bodie_I'm not sure why I didn't think to look through it -- I think my understanding was that we went with JSON-Schema because there were solid Go implementations already in place, so I made an assumption there14:39
bodie_Do you think we need to stop and dig in to get this thing shipshape before we continue the Actions implementation, or do you think it makes more sense to chain things together from beginning to end and then attack the pain points?14:40
bodie_I mean, my original implementation of an Actions spec from YAML was a little clumsy, but conformed the spec to a basic static schema14:42
bodie_something like actions: {description: ..., params: {name: {description: ..., type: ..., default: ...}, name: ...}14:43
bodie_oops, insert multiple names of actions as keys to the params values14:44
bodie_or, we could use the code I have now which validates via gojsonschema, but instead use a generic "Validate" function that, for now, just ensures the spec conforms to the basic actions.yaml format I laid out there ^14:46
mgzjcw4: yeah, just merge in trunk and resolve/commit14:46
bodie_then as we move forward, put work into gojsonschema, and once it's in shape, it'll be a drop-in replacement for the Validate we use14:46
bodie_I'm not trying to be lazy, just expeditious14:46
natefinchI would not feel comfortable using that package, and I think fixing it up is going to take more time than value we'll actually get out of it, in my opinion.... but other people might have differing opinions.  fwereade might want to chime in14:47
bodie_would agree there14:48
bodie_another option in that case is that we simply Validate against a tiny subset of json-schema, something like the actions.yaml schema I specified14:49
fwereadenatefinch, bodie_: heh, yes, I should probably not have taken its quality on trust myself :/14:49
fwereadenatefinch, bodie_: yeah, that method alone is a big ol' WTF-do-not-touch-this-with-a-bargepole14:52
* fwereade sighs heavily14:52
bodie_lol, fair enough14:52
fwereadebodie_, can you reasonably estimate the effort to get a sane gojsonschema library written? even if it's just a conformant but useful subset?14:52
jcw4mgz: I committed my merge fix, but I'm afraid I can't see how to update the commit message and land without proposing a new review?14:53
fwereadebodie_, at least we can probably copy the test cases ;p14:53
mgzjcw4: you can just edit the launchpad page14:53
mgzjcw4: copy in the description to the commit message14:54
voidspacejcw4: the commit message you normally set directly on launchpad14:54
fwereadejcw4, I just did your commit message, I should have done that when I approved in the first place :/14:54
jcw4I see14:54
jcw4thx mgz, voidspace, and fwereade14:54
jcw4fwereade: go bot kicked it back into needs review14:56
bodie_fwereade, I can't say with any realism right now.  do you think the first step should be to think about what our needs are from it, first?  it seems very reasonable to me to implement a subset, or even a validator similar to the one in Config.  we could pass a json-schema rendering to the frontend14:57
* jcw4 will be back in 15 minutes... dropping kids off at school14:57
bodie_right now I'm thinking very much in terms of "what could and would work" rather than "what would be best" so forgive me for being less than rigorous14:58
bodie_just ideating, I expect you to knock these down14:58
mgzsinzui: do you have some time to talk git?15:00
natefinchwhy can't people just say brainstorming anymore?  Why is it ideating now?15:00
bodie_haha15:00
sinzuimgz, I and going into a meeting. I can talk in about 30 minutes15:01
bodie_at least I didn't say incepting15:01
mgzsinzui: sounds good15:01
perrito666natefinch: what does ideating mean?15:02
bodie_making ideas15:02
natefinchperrito666: brainstorming15:02
perrito666natefinch: meh, why replace a perfectly working buzzword for another15:02
natefinchsee?15:02
natefinchsounds more hip, I guess.15:03
bodie_that's certainly not the intention... I just like the way it sounds :)15:03
* natefinch likes the image of a storm of brains swirling in the dark clouds15:04
perrito666sinzui: where can I find the ha b&r test?15:04
bodie_cleaning up after a brainstorm is the worst.15:04
perrito666natefinch: http://slurmed.com/fanfics/coldangel_1/blame-it-to-the-brain-part-2/003.jpg15:05
natefinchlol nice15:05
bodie_let's see here.  gojsonschema relies on gojsonpointer and gojsonreference....15:06
bodie_gojsonpointer is about 400 lines in total15:07
bodie_as is gojsonreference15:07
bodie_gojsonschema itself is probably around 3000 lines, in about 8-12 files15:08
bodie_that's really not so bad15:08
sinzuiperrito666, http://pastebin.ubuntu.com/7505941/15:09
bodie_as dave mentioned, the test coverage is low15:09
perrito666sinzui: tx15:09
bodie_the question is, how much bad code is there, how much extra is needed to pull it apart into the good bits / organizational concepts, grind out the rot, and how much complexity was the bad stuff glossing over15:10
perrito666sinzui: just fyi, along with the HA backup/restore patch I added doc on what was the expected behavior15:11
natefinchbodie_: the other option is to take a well-regarded implementation in another language and port it to go.   That might be easier15:12
natefinchbodie_: https://github.com/JamesNK/Newtonsoft.Json/tree/master/Src/Newtonsoft.Json/Schema15:13
bodie_perhaps it would be intelligent simply to harness an existing implementation externally to our code15:14
bodie_I know it's an ugly option, but it's an option15:15
bodie_for an obvious example, we didn't implement our own database15:16
tasdomasfwereade, I'm working on separating juju-core/cmd from juju-core. The package cmd depends on loggo - do you think that dependency should be broken (making logging something command implementers need to set up themselves)?15:19
jcw4woo hoo, branch landed ... yay15:20
voidspacenatefinch: ping15:21
* bodie_ buys jcw4 a beer15:22
* jcw4 downs it and burps15:23
hazmatanybody know where the cloudsigma provider stuff lives?15:25
perrito666brb lunch15:25
natefinchvoidspace: how goes?15:31
voidspacenatefinch: cool, I need a new task15:32
voidspacenatefinch: I've started to look at HA: generate/update StateServingInfo in mongo.EnsureServer15:32
voidspacenatefinch: as that sounds plausible that I can do it :-)15:32
voidspacenatefinch: would you prefer I work on something else?15:33
natefinchvoidspace: haha... I'm not sure exactly what that's buying us... it's an old card.  rogpeppe - what was that task about generating StateServingInfo in EnsureMongoServer doing for us?15:34
rogpeppenatefinch: in a call - be with you in a bit15:35
voidspacenatefinch: ah, ok15:35
natefinchrogpeppe: sure thing, thanks15:35
voidspacenatefinch: which card you prefer I look at15:35
natefinchvoidspace:  you can do the change mongo to write majority one.  I had started on that, but it was causing problems for some reason.  The code change is simple,  but figuring out why it breaks things may be tricky15:36
voidspacenatefinch: ok15:36
voidspacenatefinch: do you have a branch you've started on?15:37
natefinchvoidspace: lp:~natefinch/juju-core/052-write-majority15:38
voidspacenatefinch: ok, I'll take a look15:39
voidspacenatefinch: ooh, lots of test failures15:41
voidspaceI wonder if it's even an mgo issue15:42
=== vladk is now known as vladk|offline
bodie_sigh15:47
rogpeppeanyone know what the current status of network routing to containers under ec2 is?15:50
rogpeppenatefinch: hmm, i can't remember about that card. will have a look now.15:54
rogpeppenatefinch, voidspace: i *think* the point is that the StateServingInfo in the agent.conf should not be generated by environs/cloudinit16:11
voidspacenatefinch: do we *always* have a replicaset?16:19
perrito666voidspace: yup16:19
perrito666learn to love it16:19
voidspaceperrito666: thought so16:19
voidspacedamn16:19
voidspaceI thought maybe write-majority was failing when we didn't16:20
voidspaceas the error message says "cannot create database index: norepl"16:21
voidspaceand indeed, google confirms that this is possibly the case16:25
voidspacefor "norepl"16:25
voidspaceThis error happens when you try to use the w option without replication enabled.16:25
perrito666mm, replicaset should be enabled always,that is what broke restore last time16:26
voidspaceperrito666: well, except maybe in tests16:26
perrito666ah16:26
natefinchsorry, was away for lunch.   Yes, we always run with a replicaset, except for localhost (which we actually want to fix)16:26
voidspacenatefinch: "except for localhost"16:26
voidspacenatefinch: I suspect that's what's breaking all the tests16:26
perrito666breaking is the word of the day >p16:26
voidspacenatefinch: setting WMode without replicasets being enabled causes mongo to throw "norepl" errors16:26
voidspacenatefinch: and that's what I'm seeing in the tests16:27
voidspacenatefinch: using mgo session can we check for this? so we don't unconditionally set WMode?16:27
voidspacesession.SetSafe doesn't return anything, so we can't check there for error16:29
natefinchvoidspace: I wonder if we shouldn't run the test mongo instances with replicasets, to better replicate our running environments, rather than making them special16:29
perrito666+116:30
voidspacenatefinch: that sounds better - are they only used for tests? Or by "localhost" do you mean local provider too.16:30
natefinchvoidspace:  there's a special testing framework that we use to spin up mongo instances for testing16:31
voidspacenatefinch: JuJuConnSuite ?16:31
natefinchvoidspace: we do want to fix the local provider too, but that's a separate issue16:31
voidspacenatefinch: does the local provider currently *not* use replicasets?16:31
natefinchvoidspace: correct16:31
voidspacenatefinch: in which case setting WMode in state.Open will be broken for that too16:32
voidspaceso we either need to fix *both*, or not set WMode unless we have a replicaset16:32
natefinchvoidspace: correct16:32
voidspacedo you think fixing both is plausible within the scope of this card?16:32
natefinchvoidspace: I can make another card to fix local provider16:33
perrito666voidspace: you cant fix one and make wmode not set when there is no replicaset?16:33
natefinchwe're supposed to do both, so might as well do the prerequisite first16:33
voidspaceperrito666: well, the fix is either "always use replicaset" or "don't use WMode when not using a replicaset"16:33
voidspaceperrito666: so saying "fix one and don't use WMode sometimes" is like the worst of both worlds :-)16:33
voidspacenatefinch: ok, so if you create the card I'll switch to that16:34
voidspaceor I can create the card16:35
perrito666speaking of which can I create a card for what I am working now?, since I split the HA restore story in 216:35
perrito666or should I wait for you to create it?16:35
natefinchvoidspace: https://canonical.leankit.com/Boards/View/103148069/10998084716:35
natefinchperrito666: you can do it16:35
voidspacenatefinch: thanks16:35
perrito666natefinch: going to16:36
natefinchvoidspace: there's stuff in agent/mongo/    there's a withHA flag to remove16:36
voidspacenatefinch: ok16:36
voidspaceso there's a function "shouldEnableHA", that returns literally "providerType != provider.Local"16:45
voidspaceI've tried changing that to "true" and am running tests...16:45
voidspacenatefinch: *why* didn't we use replicasets for local - for perf reasons?16:45
voidspacerogpeppe: ^^16:45
natefinchvoidspace: a couple people experienced problems16:45
voidspaceah16:46
voidspacenatefinch: do you recall the nature of those problems?16:46
* perrito666 did some clean up of his cards16:46
natefinchvoidspace: nope.  There's a bug somewhere I think.16:47
natefinchvoidspace: I believe ian was one of the people who reported having problems16:47
voidspaceno failures on my machine so far16:47
voidspacejob done ;-)16:47
natefinchvoidspace: I believe the nature of the problem was long the lines of "bootstrap never completes" or something critical like that16:47
natefinchvoidspace: nothing too subtle16:48
voidspacewell, so long as it's only for Ian I'm not too worried16:48
voidspaceheh, I'll talk to him on Tuesday16:48
voidspaceand look for the bug16:48
natefinchcool16:48
voidspaceso, apiserver/client tests fail16:49
voidspacedigging in16:49
voidspaceah, but pass on their own16:50
natefinchvoidspace: I think it was less of a tests problem and more of a production problem.  But most of us could run it without a problem.16:50
voidspacesure, but getting the code right is the *first* step - then I can try and *find* the production problems16:50
voidspaceit's ten to six on Friday night before a bank holiday though16:52
voidspacegonna look for this bug then call it a night I think16:52
rogpeppevoidspace: try looking in the bugs that were closed by the change that made juju not used replicaset on the local provider16:52
bodie_separately from the issue of code quality, gojsonschema's deps are prepended with Apache2, but there's no LICENSE in their root directories16:52
voidspacerogpeppe: ok, thanks16:52
bodie_I'm not sure where that puts us16:53
bodie_any input welcome16:53
rogpeppebodie_: hi16:53
natefinchbodie_: I think licenses in the code is fine even if there's no license file.16:53
rogpeppebodie_: you pinged me last night, but i wasn't around16:53
bodie_hullo, just was going to ask about the gojsonschema code quality and what my next steps ought to be.16:53
rogpeppebodie_: at first glance, it's not great at all16:54
rogpeppebodie_: i could see lots of opportunities for simplification and making the code more Go-idiomatic16:54
bodie_yeah, my mistake there -- I completely assumed we'd vetted it for some reason, since I was under the impression we chose JSON-Schema for use with Juju due to the existence of a quality implementation for Go16:55
bodie_since xeipuuv's implementation appears to be the go-to for Go, I wrongly made that connection16:55
rogpeppebodie_: i expect it was chosen because people know about it16:55
bodie_i'll be back in a minute, kid is melting down16:56
rogpeppebodie_: personally, i think the standard is much more complex than it needs to be, but that's just me reacting to most of the modern computing world probably :-)16:56
rick_h_bodie_: it was mainly chosen due to the JS side and the idea it could be supported in Go16:56
rick_h_bodie_: and that it's got a definition that's standard16:56
rogpepperick_h_: that's definitely a plus point16:57
rick_h_jeremy has written a very good JS side of it and making it work down to Go is part of the work in making this work out16:57
rogpepperick_h_: jeremy's written the JS schema verification engine?16:59
rick_h_rogpeppe: yes, it generates UI and does validatio on it and such. mark S found it and brought him into the project because of it. https://github.com/jdorn/json-editor/17:00
rogpepperick_h_: cool17:00
rogpepperick_h_: i think it would be worth moving towards having our own high quality Go implementation, whether that entails from-scratch or mutating gojsonschema17:01
rick_h_rogpeppe: yea, I think there was hope there was some good starting points out there for Go17:02
rogpepperick_h_: i'd probably be tempted to start from scratch but with some close contemplation of existing implementations. it's very useful that there's an existing comprehensive test suite.17:03
bodie_and back --17:04
natefinchrogpeppe: yeah, the test suite was what I was most interested from that package.17:05
rogpeppenatefinch: i was thinking mostly of the set of examples provided by json schema itself17:05
natefinchrogpeppe: ahh17:06
natefinchrogpeppe: my thought was to port an implementation from another language, since that's generally pretty easy, and gets us ahead of the game, rather than having to sit down and start from scratch.   Maybe we could fix up that go repo, but I honestly haven't given its approach any thought after I looked at some specific code samples17:07
bodie_I'm hesitating to move forward in a specific direction since I already made a bad call here, but I chatted with fwereade and I think my next step is to start digging through the existing implementation to see whether it can be salvaged and how much rot there is to it17:07
rogpeppenatefinch: the actual test suite in gojsonschema looks as if it could easily be more driven by the data inside json_schema_test_suote17:08
rogpeppebodie_: that's a good idea17:08
rogpeppebodie_: also perhaps study the standard and see if you can think of a nice obvious way to implement it simply and efficienctly.17:09
rogpeppebodie_: BTW i wouldn't say you made a bad call - grabbing the only json schema implementation is the obvious thing to do. it's a pity there's not a really nice implementation already out there.17:11
bodie_I did some digging through the standard last night and I think "simple" and "efficient" are not the choicest words I would select to describe it17:12
rick_h_lol17:12
bodie_rogpeppe, thanks for that -- definitely feeling pretty embarrassed here17:12
bodie_I wonder --17:12
bodie_a functional implementation might actually make it much simpler.17:13
rogpeppebodie_: yeah, it's the usual completely bloated web standard17:13
perrito666bodie_: cmon, there is no reason to feel embarrassed17:13
rogpeppebodie_: and fairly impenetrable, also as usual17:13
bodie_I'm reading an article about how a J-schema validator was implemented in Clojure (my pet language) and it's really quite beautifully done17:13
bodie_perhaps could rip off -- er, find inspiration in some of the ways this deals with it17:14
bodie_me likey fp17:14
rogpeppebodie_: yeah, that might work nicely17:14
bodie_rick_h_, rogpeppe -- I think there's a lot to be said for the value of a high quality json schema utility in Go17:15
bodie_brb again --17:15
rogpeppebodie_: one thing i'd like to know is if it might be possible to define the actual json schema syntax as go structs17:15
voidspaceEOD, g'night all17:25
perrito666voidspace: gnight17:25
natefinchnight voidspace17:25
voidspacethanks all17:26
voidspacesee you on Tuesday17:26
wwitzel3voidspace: have a good weekend17:26
perrito666why tue?17:26
natefinchperrito666: UK has one of their poorly named bank holidays on monday17:27
natefinchperrito666: where the name of the holiday is "Bank Holiday"17:28
perrito666according to wp is "Spring Bank Holiday"17:28
perrito666lol and its determined by Last Monday in May17:29
natefinchperrito666: btw, I and presumably wwitzel3 will also be out monday, since it's a holiday for the US, too - Memorial Day17:29
perrito666well Ill then be a bit late since sunday its my birthday and I presume I might get a zip or two of wine17:29
natefinchperrito666: happy birthday, and you can be as late as you want, because the rest of us will be not working :)17:30
perrito666lol17:30
perrito666tx17:30
bodie_back, sorry.  michelle is sick and i'm watching the babe -- she's down for a nap now17:32
bodie_rogpeppe, thinking about what you said17:32
bodie_rogpeppe, right now we're parsing it out into a map[string]interface{}17:35
rogpeppebodie_: going down some of the schema document, it *might* be possible to parse into something like: http://paste.ubuntu.com/7506473/17:36
bodie_then dumping that into a JsonSchemaDoc17:36
bodie_if it complains, we reject it as invalid jsonschema17:36
rogpeppebodie_: obviously i've omitted most of the properties there17:36
bodie_so, in the state, our schema will be defined as a nested map17:36
rogpeppebodie_: and there might be some kind of meta-attribute thing going on which makes the approach infeasible17:37
bodie_to validate a json argument map from the frontend, they'll just GetJsonSchema or whatever17:37
bodie_taking a look17:37
bodie_ah, I see what you mean17:37
bodie_interesting17:37
bodie_an actual Go implementation of JSON-Schema, basically, rather than a parser / validator17:38
rogpeppeomg, there's the whole email address syntax in there17:38
natefinchlol17:38
bodie_lol17:38
bodie_and much more!17:38
bodie_yours today for only 19.99 man-months...17:38
rogpeppebodie_: the point that we *might* be able to leverage encoding/json to do a lot of the initial verification for us17:39
natefinchrogpeppe, bodie_:  A struct that might look like this (if you don't know C#  bool?  is a nullable bool, sorta like *bool in Go)17:39
natefinch^^^  https://github.com/JamesNK/Newtonsoft.Json/blob/master/Src/Newtonsoft.Json/Schema/JsonSchema.cs#L4317:39
rogpeppebodie_: then you wouldn't need to do nearly so much dynamic-value mangling to parse the schema17:41
bodie_my eyes!!!17:41
* rogpeppe needs to go17:41
natefinchhaha... C# is pretty good.  And it's easy to translate to Go.17:41
sinzuiperrito666, I am not really at work today, but I have good news for you. http://juju-ci.vapour.ws:8080/view/Functions/17:41
natefinchsee ya rogpeppe17:41
rogpeppenatefinch, bodie_: see ya17:41
bodie_have a good weekend!17:42
sinzuiC# is nicer than java17:42
bodie_fair enough17:42
bodie_I don't personally find either very pleasant :)17:42
bodie_but maybe I just haven't had enough exposure to C#17:42
perrito666sinzui: sweet, pretty good for not your best day off17:43
perrito666sinzui: why are there several runs for the same r?17:43
sinzuiperrito666, The failed test runs related to resource contention with other tests I adjusted the envs they run it.17:43
sinzuiperrito666, CI will run tests up to 5 times before cursing them. While juju might be at fault, clouds, network, and resource contention by be the real cause17:44
natefinchbodie_: the reason I went with C# is that people generally don't try to do too much magicky stuff in it, which means it might have a valid implementation that would port well to Go.  It might be a little class-heavy, but probably a lot less so than a java implementation17:44
sinzuiperrito666, and in the case that azure is just dead to juju and cloud-init, its not juju's fault that azure tests fail17:45
perrito666sinzui: well It would have made a pretty heavy weekend for me if I was responsible for the testing cursing after my commit17:45
sinzuiperrito666, I named the new test -devel, telling CI that the test does not get a vote to curse. The test certainly was at fault for the first few runs17:46
jcw4I like the idea of patterning a Go json schema after NewtonSoft's implementation17:46
sinzuiperrito666, If the test reliably runs over the next few days, I will promote it by removing the -devel17:46
natefinchbodie_: I've used the Newtonsoft stuff in C#, it's basically the go-to implementation for Json, since there isn't built-in support in the .net framework (or at least there wasn't as of about a year ago)17:46
jcw4I believe that library has become the standard JSON impl in .NET vNext17:47
natefinchjcw4: oh, cool17:47
jcw4natefinch: looking for the link I read recently...17:48
=== vladk|offline is now known as vladk
jcw4natefinch: https://twitter.com/JamesNK/status/46637548285096345817:55
jcw4asp.net v next17:55
bodie_lol17:55
natefinchnice chart17:56
jcw4:)17:56
=== vladk is now known as vladk|offline
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
bodie_I need to have a look over this jsonschema stuff over the weekend.  my family is sick and I got very little sleep.  I hope to have something better to show for my investigation over the next couple of days.20:34
bodie_enjoy your weekends :)20:35
natefinchbodie_: good luck20:36
=== Ursinha is now known as Ursinha-afk

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