[02:36] <robert_ancell> I'm trying to land https://requests.ci-train.ubuntu.com/#/ticket/405 into the overlay PPA. Do I click publish myself or do I need someone to do that?
[02:38] <bregma> robru^
[03:00] <robru> robert_ancell: you can probably do it
[03:04] <robert_ancell> robru, ok, trying. Thanks.
[03:08] <robert_ancell> robru, do I need to do anything to close that silo now?
[03:10] <robru> robert_ancell: nope, it's done
[03:10] <robru> unless the merge fails for some reason
[03:11] <robru> oh there's no merge
[03:11] <robru> so it's fine then
[03:12] <robru> robert_ancell: wait why did you put xorg through a silo? I don't understand a) why that's needed in overlay and b) why you published without QA.
[03:14] <robert_ancell> robru, it's XMir for the libertine work. They needed it in the overlay PPA - the only process is through silos right? As it's not used anywhere else I just asked the libertine guys to confirm if this version was better than what they had.
[03:22] <robru> robert_ancell: oh ok, as long as it's not seeded in the phone (yet) I guess that's fine
[03:23] <robert_ancell> robru, cool. Thought I'd done something wrong there!
[03:23] <robru> robert_ancell: technically you could just dput directly to the overlay PPA, I don't think using a silo actually did anything meaningful for you here
[03:23] <robert_ancell> robru, we wanted the silo so people could test before we committed to putting it in there
[03:23] <robert_ancell> I guess we were just using the CI train as a PPA provider
[03:24] <robert_ancell> But good practise when this becomes a supported feature.
[03:24] <robru> robert_ancell: ok no worries then. I just find it strange when people use silos without MPs, in my mind the whole value of the silo is the auto-merging of MPs.
[03:24] <robert_ancell> Yeah, understood.
[04:44] <robru> oh god
[04:44] <robru> I thought I fixed it so it wouldn't spam the channel at startup
[05:00] <robru> Mirv: watch out for diffs today, i redid the diffing logic from scratch. Should fix the bug where oxide-qt couldn't be diffed but everything else should behave identically, please ping me if anything is different or unusual.
[05:03] <Mirv> robru: ok
[05:04] <Mirv> robru: do you think someone still actually uses https://launchpad.net/~phablet-team/+archive/ubuntu/tools ? the phablet-tools is at https://launchpad.net/~ubuntu-sdk-team/+archive/ppa for vivid + trusty which all devs probably use
[05:06] <Mirv> robru: but no cost either, so I copied from the SDK PPA
[05:06] <robru> Mirv: tools ppa is the one i use and the only one i ever updated ;-)
[05:06] <robru> Mirv: am i the only one using it? Yikes
[05:08] <robru> Mirv: people must be using tools ppa because there were bugs in citrain tool that i fixed and only copied there, nowhere else.
[05:08] <Mirv> robru: hehe, so many PPA:s :) well at least anyone doing apps would have SDK PPA in use.
[05:09] <Mirv> robru: I know, many do have the phablet tools PPA in use from the old times too, and not all of them use our SDK so...
[05:09] <robru> Mirv: yeah citrain tool used more by Canonical people, it's not really relevant for community app devs
[05:14] <robru> Mirv: oh apparently there is an oxide in silo 21 ^ so I'm just regenerating diffs to be sure
[05:19] <Mirv> robru: ok!
[05:20] <robru> Good god it takes forever to diff
[05:20] <robru> Damn! Still didn't work
[05:21] <robru> At this point i wonder if debdiff itself is the problem
[05:55] <robru> Mirv: actually I lied to you, there is a difference in the new diffs. You'll no longer see Makefiles/CMakelists in the "packaging diffs". I ok'd this with steve, as that info is contained in the full diff anyway. so now "packaging diffs" are really just debian/*
[06:00] <Mirv> robru: thanks, makes sense.
[06:01] <robru> Mirv: yeah a few people have complained about that, so diffs should be less noisy now.
[06:01] <robru> just trying to reproduce this oxide issue outside the train, bah
[06:14] <Mirv> "ok now finally I'll just rebuild... oh crap, oxide-qt has started using private symbols again"
[06:14] <Mirv> -> repacking 4GB + uploading 400MB + waiting 12h
[06:15] <Mirv> life of a Qt maintainer
[06:34] <robru> fun times
[08:43] <alf_> sil2100: Hi! For ci train request 423, we have know top-approved the MP. Please publish it again (or should I just hit the publish button myself?).
[08:56] <sil2100> alf_: publishing :)
[08:56] <alf_> sil2100: thanks!
[08:57] <sil2100> alf_: published o/
[09:28] <Saviq> rvr, hey, I'm confirming on a mako now, but I really wouldn't block on the "failure" on silo 38, OOM kills is not an exact science, and you were testing on a device least likely to do it
[09:29] <Saviq> qtmir in that silo is just a packaging change anyway
[09:30] <rvr> Saviq: Yeah, I was surprised that the silo had something to do, but I tested without it in the same device, and webbrowser-app was killed. Installed the silo again, and webbrowser (as well as the other apps) weren't killed.
[09:31] <Saviq> rvr, if *no* apps are killed means we're doing better on memory usage
[09:31] <Saviq> just launch more of them, open more tabs in the browser, monitor the free memory, it must happen at some point
[09:31] <Saviq> any case, I'm just trying on mako that's more likely to hit memory limits
[09:32] <rvr> Saviq: http://paste.ubuntu.com/12610164/
[09:32] <rvr> Oh, shit, it was cut
[09:33] <Saviq> rvr, so yeah, unity8 is at 3.2%, dash at 4.1%, apps barely cross the 1% barrier, arale just has plenty of memory is all
[09:33] <Saviq> `free -m` would say a bit more about how much memory's left
[09:35] <rvr>              total       used       free     shared    buffers     cached
[09:35] <rvr> Mem:          1892       1850         42         24         42        106
[09:35] <Saviq> rvr, yeah, you've still 42 megs available, launch more apps! :)
[09:36] <Saviq> and actually, IIRC caches will get freed before OOM kicks in
[09:38] <Saviq> rvr, there was quite a bit of static code fixes in one of our unity8 MPs, that could actually reduce memory usage enough to cause what you're seeing
[09:38] <rvr> Saviq: Finally, webbrowser-app was killed
[09:38] <Saviq> \o/
[09:38] <Saviq> :D
[09:38] <rvr> lol
[09:42] <rvr> Saviq: Ok, approving the silo :)
[09:43] <Saviq> rvr, great, thanks
[09:47] <Saviq> trainguards, Icanhaspublish here https://requests.ci-train.ubuntu.com/#/ticket/410 please?
[09:50] <Mirv> Saviq: ok, let's see
[09:51] <Mirv> Saviq: I wonder why it says on trello both passed and still has "blocked" tag too
[09:51] <Mirv> rvr: should the tag be removed?
[09:51] <rvr> Mirv: Yup
[09:51] <Mirv> yup
[09:51] <Mirv> thanks
[09:52] <rvr> jgdx: ping
[09:55] <Mirv> (just gles)
[10:15] <Saviq> Mirv, thanks
[10:25] <oSoMoN> trainguards: can the amd64 and i386 builds of webbrowser-app be retried in silo 16 (for both series), please?
[10:26] <Mirv> oSoMoN: okay, at it again
[10:30] <oSoMoN> Mirv, thanks!
[10:58] <jgdx> rvr, pong
[10:58] <rvr> jgdx: Hey
[10:59] <rvr> jgdx: Is there any way to manually check fix in silo 53?
[11:00] <jgdx> rvr, yeah, it's in the test plan
[11:01] <jgdx> rvr, step 3
[11:01] <rvr> jgdx: Oh, cool
[11:06] <Mirv> oSoMoN: ^
[11:07] <oSoMoN> Mirv, thanks! out of curiosity, how many attempts did it take to get it to build successfully on all arches?
[11:09] <Mirv> oSoMoN: well two were fine with the next rebuild, the third after the second and the last one took one more
[11:10] <Mirv> oSoMoN: so in general it feels roughly 50% change of success
[11:10] <Mirv> chance
[11:14] <oSoMoN> Mirv, thanks! I haven’t given up on actually fixing the unit test yet, but there are more urgent things for now, unfortunately, so until it’s properly fixed I’ll abuse your patience to retry failed builds…
[11:16] <Mirv> oSoMoN: yeah, I can see from the amount of landings you're doing! no problem. the new patch is the way of things in 5.4.3/5.5.1/5.6 so it's useful to look at it eventually, but it seems non-critical enough.
[11:38] <ChrisTownsend> trainguards: Could you please assign https://requests.ci-train.ubuntu.com/#/ticket/436 ?
[11:39] <sil2100> ChrisTownsend: on it, bu
[11:39] <sil2100> s/bu//
[11:39] <ChrisTownsend> sil2100: Thank you!
[11:40] <sil2100> ChrisTownsend: done :)
[11:41] <ChrisTownsend> sil2100: ta!
[14:26] <mterry> robru, got a few questions for ya.  1) one of silo 51's uploads is in the UNAPPROVED queue.  How can I find out why?
[14:28] <robru> mterry: if there not a freeze on? Check with #ubuntu-release
[14:29] <mterry> robru, I thought beta freeze is over once beta is done  :)
[14:29] <mterry> final freeze doesn't start until oct
[14:29] <mterry> will ask
[14:30] <mterry> robru, 2) I would like to squeeze silo 41 in today if possible, to make ota7.  I have specific qa testing steps for the patch that's landing.  I can't edit the silo.  But can you point me at who might be doing QA and I can tell them?  (or let me edit silo somehow)
[14:30] <mterry> (to add the QA steps)
[14:31] <robru> mterry: why can't you edit the silo?
[14:32] <robru> mterry: I'm in a meeting with jibel, in half an hour he should be free to discuss that
[14:33] <robru> mterry: there's no acl for editing silos just sign in and edit
[14:33] <mterry> hmm
[14:33] <mterry> robru, haha, yup.  Wasn't logged in.  :(  I want a big blinking <marquee> at the top for that  :P
[14:34] <robru> mterry: the "create new request" form is hidden when you're logged out
[14:34] <mterry> robru, yeah, it's obvious enough if you've had coffee
[15:07] <rvr> jgdx: Approving silo 53
[15:26] <sil2100> ~/.~.
[15:27] <sil2100> uh oh
[15:27] <ogra_> snakes left and right of walls ?
[15:31] <sil2100> ~
[15:32] <sil2100> Darn cat
[15:32] <ogra_> oh, no morew walls !
[15:32]  * ogra_ runs from the snake 
[15:32]  * kenvandine stress tests citrain :)
[17:28] <alesage> robru, renato adding cmake-extras to his indicator-transfer-buteo project, cmake-extras is in universe, he's wanting to know if that's kosher for a package entering main
[17:29] <alesage> robru or please redirect my q :)
[17:29] <renatu> robru, network-indicator already uses that
[17:32] <alesage> renatu, robru nm, appearing in main IIUC http://pastebin.ubuntu.com/12614769/
[17:32] <robru> alesage: Projects in main cannot depend on projects in universe, will need a MIR filed
[17:33] <robru> alesage: note that is universe. PPAs don't count
[17:34] <alesage> robru ack
[17:34] <renatu> alecu, should we revert the change in transfer-indicator?
[17:34] <renatu> alesage, ^^
[17:34] <renatu> alecu, wrong nick, sorry
[17:35] <alesage> renatu, up to you, I'll pursue the MIR
[19:16] <barry> robru: this is quicker than email :)
[19:16] <barry> robru: your fix-filterdiff-tests branch fails with a ton of pep8 failures
[19:16] <robru> barry: hey ;-)
[19:16] <robru> way
[19:16] <robru> wat
[19:17] <robru> barry: did pep8 get way stricter in wily?
[19:17] <barry> robru: it's possible some of the defaults got changed.  you should just suppress E402 (but verify the tons of E402 failures).  most E402 is bogus
[19:17] <robru> barry: wait but that means that the tests passed, it only runs pep8 if tests pass ;-)
[19:18] <barry> robru: Ran 408 tests in 7.762s
[19:18] <barry> so, yes!
[19:19] <robru> barry: sweet, I'll approve the branch then. I'll have to pull out my wily schroot to check all this pep8 stuff.
[19:19] <barry> robru: have fun with that :)
[19:22] <robru> barry: thanks for all your help!
[19:23] <barry> robru: sure thing!
[20:00] <slangasek> robru: I'm trying to recall where the latest changes to the train left us as far as being able to see who signed off on a given change; as, for instance, https://launchpad.net/ubuntu/+source/mediascanner2/0.107+15.10.20150922.1-0ubuntu1 which introduces an soname change for a library in wily but is not accompanied by a rebuild of its reverse-dependencies
[20:01] <slangasek> robru: I understood we were passing the sponsor's name as an argument to copy-package now, so it should be recorded on this page?
[20:02] <slangasek> robru: but it only lists jamesh, who is not an Ubuntu dev; so either the train didn't properly generate a packaging diff, or it didn't enforce the uploader check correctly
[20:02] <slangasek> or it didn't put the right name in the field
[20:04] <robru> slangasek: train has always passed the sponsor name to copyPackage, what changed was that we now enforce checkUpload to allow somebody to be a sponsor at all
[20:04] <robru> slangasek: if you tell me what silo it published from I'll find the logs and tell you who published
[20:05] <slangasek> robru: please compare https://launchpad.net/ubuntu/+source/mediascanner2/0.106+15.10.20150917-0ubuntu1 and https://launchpad.net/ubuntu/+source/mediascanner2/0.107+15.10.20150922.1-0ubuntu1 - the first (before the recent changes) doesn't list that this is a sponsored upload at all.  The second does list it as a sponsored upload, but is *not* listing the name in the "sponsored" field that I'm expec
[20:05] <slangasek> ting to see
[20:06] <slangasek> launchpad should show me who approved the upload that ci-train-bot sponsored, not who the lander was
[20:06] <slangasek> (unless the lander is an ubuntu-dev)
[20:06] <slangasek> (and is also the one who approved the upload)
[20:08] <slangasek> robru: this appears to be silo 019
[20:09] <robru> slangasek: published and ACKed by kenvandine https://ci-train.ubuntu.com/view/2.%20Publish/job/ubuntu-landing-019-2-publish/101/console
[20:09] <slangasek> robru: ok, thanks
[20:09] <robru> slangasek: also packaging diff looks sensible: https://ci-train.ubuntu.com/view/2.%20Publish/job/ubuntu-landing-019-2-publish/lastSuccessfulBuild/artifact/mediascanner2_packaging_changes.diff/*view*/
[20:09] <slangasek> robru: that means kenvandine is the one whose launchpad id I want passed to copy-package :)
[20:09] <robru> slangasek: it should have been. was it not?
[20:10] <slangasek> robru: what I see on that launchpad page I linked you above was 'jamesh', not 'kenvandine'
[20:12] <robru> slangasek: dunno what to tell you. copyPackage sets sponsored: http://bazaar.launchpad.net/~cupstream2distro-maintainers/cupstream2distro/trunk/view/head:/copy2distro#L116 and sponsored comes from the rsyncfile here:
[20:12] <robru> https://ci-train.ubuntu.com/view/2.%20Publish/job/ubuntu-landing-019-2-publish/lastSuccessfulBuild/artifact/packagelist_rsync_ubuntu-landing-019/*view*/ where it clearly says ken-vandine. must be a bug in launchpad not displaying the right thing.
[20:14] <slangasek> robru: ok; I'll open a bug on this against cupstream2distro, and we can figure out if it needs to be reassigned to launchpad
[20:14] <slangasek> robru: btw you actually call syncpackage rather than copy-package, right?
[20:15] <slangasek> since that's the one that has the "--sponsor=" option
[20:15] <robru> slangasek: we use lplib not ubuntu-archive-tools
[20:15] <slangasek> ok
[20:16] <robru> although I'm starting to wonder if it wouldn't make more sense to convert copy2distro from python to shell, considering that snakefruit doesn't have python3 and this is a frequent source of problems in the train.
[20:16] <slangasek> robru: bug #1501036
[20:16] <ubot5`> bug 1501036 in CI Train [cu2d] "cupstream2distro passes the wrong launchpad id as the sponsoree when uploading to the distro" [Undecided,New] https://launchpad.net/bugs/1501036
[20:17] <slangasek> robru: mm? snakefruit does have python3
[20:18] <robru> slangasek: well not a new enough version. it's running precise.
[20:18] <robru> slangasek: if snakefruit could be upgraded to trusty I'd be so happy
[20:18] <slangasek> don't count on that
[20:20] <slangasek> kenvandine: ping, btw :)
[20:20] <kenvandine> slangasek, pong
[20:22] <robru> slangasek: no I'm not counting on it but it often causes headaches.
[20:22] <robru> slangasek: oh, it's not that snakefruit doesn't have python3, it's that snakefruit doesn't have python3-launchpadlib, and my trusty backport is only for trusty, not for precise.
[20:22] <slangasek> kenvandine: so silo 019 is stalled in -proposed because it introduces an soname change in wily and the reverse-dependencies were not all included in the silo
[20:23] <slangasek> kenvandine: since you signed off on the packaging changes, I think that means you're responsible for following through ;)
[20:23] <kenvandine> damn
[20:24] <kenvandine> slangasek, iirc, it didn't break or conflict with the previous
[20:24] <kenvandine> so should still be installable, right?
[20:25] <slangasek> kenvandine: you don't get to have both of them in wily at the same time
[20:26] <kenvandine> jamesh, ^^
[20:26] <slangasek> kenvandine: proposed-migration requires all the revdeps to be rebuilt first, and then transition them together - and considering one of the reverse-dependencies is qtubuntu, I'd say there certainly hasn't been a valid integration test of the new lib...
[20:26] <slangasek> kenvandine: see also related bug #1500859
[20:26] <ubot5`> bug 1500859 in qtubuntu-media (Ubuntu) "hard coded dependency on non-existing version of runtime library" [Critical,Confirmed] https://launchpad.net/bugs/1500859
[20:26] <kenvandine> ugh!
[20:26] <kenvandine> ok
[20:27] <slangasek> the criticality may be somewhat overstated, but it does require a source fix and upload ;)
[20:27] <kenvandine> yeah
[20:29] <slangasek> robru: and there's no chance that copy2distro mistakenly picked up an rsync file from jamesh's previous failed publication attempt because that file is only generated if the acl check succeeds, right?
[20:30] <robru> slangasek: yes, the acl check happens well before the class that creates that file is even instantiated.
[20:30]  * slangasek nods
[20:31] <robru> slangasek: http://bazaar.launchpad.net/~cupstream2distro-maintainers/cupstream2distro/trunk/view/head:/citrain/publisher.py#L213 line 213 vs 222 in the main() function
[20:31] <kenvandine> i'm confused...
[20:32] <kenvandine> this was published to the overlay ppa
[20:32] <kenvandine> but... there is no libmediascanner-2.0-4 in the overlay
[20:32] <slangasek> kenvandine: this was landing the merged packaging that generates *different* package names for vivid vs. wily for the g++5 ABI transition
[20:33] <slangasek> kenvandine: however, it's possible this whole landing was pointless and it should have been left alone - because we already had libmediascanner-2.0-3 in both vivid and wily, and we wouldn't have let that through without a package name change if the ABI had changed, I think
[20:34] <kenvandine> oh... i see it
[20:34] <kenvandine> 2015-09-24 18:55:39,811 INFO Copying mediascanner2 0.107+15.04.20150922.1-0ubuntu1 in vivid to https://launchpad.net/~ci-train-ppa-service/+archive/ubuntu/stable-phone-overlay.
[20:34] <kenvandine> -Package: libmediascanner-2.0-4
[20:34] <kenvandine> +Package: libmediascanner-2.0-3
[20:34] <kenvandine> in the overlay ppa
[20:35] <kenvandine> jhodapp, what do you know about this issue?
[20:35] <jhodapp> kenvandine, which issue?
[20:36] <kenvandine> silo 19
[20:36] <jhodapp> not a thing
[20:36] <kenvandine> mediascanner soname bump
[20:36] <jhodapp> kenvandine, I'd check with jamesh
[20:36] <kenvandine> you commented about the bug it caused :)
[20:36] <kenvandine> s/about/on/ :)
[20:36] <jhodapp> got a link?
[20:36] <jhodapp> this must have been pre-vacation...everything has since left my brain ;)
[20:36] <kenvandine> bug 1500859
[20:36] <ubot5`> bug 1500859 in qtubuntu-media (Ubuntu) "hard coded dependency on non-existing version of runtime library" [Critical,Confirmed] https://launchpad.net/bugs/1500859
[20:36] <kenvandine> that was caused by this landing
[20:37] <kenvandine> but.. silo 19 includes magic to provide a different soname version for vivid vs wily
[20:37] <jhodapp> kenvandine, oh, don't know much yet other than I wanted to know about the MIR landing process
[20:38] <kenvandine> jhodapp, is qtubuntu-media dual landed? or separate wily and vivid branches?
[20:38] <jhodapp> kenvandine, separate branches atm
[20:38] <slangasek> haha of course
[20:38] <kenvandine> ok, so you could have separate depends for the 2
[20:38] <slangasek> so you can't include it in a dual landing silo dur
[20:38] <kenvandine> yeah
[20:38] <kenvandine> grumble
[20:38] <slangasek> why is the dep hard-coded at all?
[20:39] <kenvandine> yeah, i'd think you'd get it with shlibs
[20:39] <jhodapp> slangasek, you mean libmediascanner being listed for qtubuntu-media?
[20:39] <slangasek> jhodapp: yes
[20:40] <jhodapp> I'm pretty sure it can be removed now actually...that is probably a mistake that it's still listed there
[20:40] <jhodapp> I'm working with qtubuntu-media atm, so I'll check this out
[20:41] <jhodapp> although I don't understand why having it as a dep is an issue...can someone explain that to me with the knowledge that I have little packaging experience
[20:42] <kenvandine> jhodapp, silo 19 landed a soname bump of libmediascanner
[20:42] <kenvandine> so libmediascanner-2.0-4 is the new binary package name
[20:42] <kenvandine> so depending on libmediascanner-2.0-3 forces it to install the older version
[20:42] <jhodapp> oh I see, ok
[20:43] <kenvandine> but i'm thinking slangasek might be right, this whole landing to have different soname versions for the 2 isn't useful
[20:43] <jhodapp> why is the so-name part of the package name?
[20:43] <jhodapp> that seems odd
[20:43] <kenvandine> it's the debian way :)
[20:43] <robru> kenvandine: oh, this was the landing where the train had that bug that it was diffing the vivid version against the wily version
[20:43] <jhodapp> really?
[20:44] <kenvandine> so you can have them installed in parallel
[20:44] <kenvandine> 2 versions of the same lib installable together
[20:44] <jhodapp> ah, so instead of using metadata in the package they use the package name
[20:44] <kenvandine> yup
[20:44] <jhodapp> seems antiquated now
[20:45] <kenvandine> slangasek, sorry for letting it in, i thought we only blocked on rebuilding everything if there was a breaks or conflicts with the old soname version
[20:46]  * kenvandine is glad we have -proposed :)
[20:46] <slangasek> the use of the soname in the package name is deliberate and not antiquated :)
[20:47] <kenvandine> not everyone agrees :-D
[20:47]  * slangasek shrugs
[20:47] <kenvandine> i'd like parallel installable versions of the same package name :)
[20:47] <jhodapp> I think it creates a weird situation, like this
[20:47] <kenvandine> conary did that, it rocked
[20:47] <jhodapp> exactly
[20:47] <slangasek> kenvandine: go run Red Hat, I'm sure you'll love it?
[20:47] <kenvandine> nope :)
[20:48] <kenvandine> with conary we could do libfoo=2.0-0 and libfoo=2.0-1
[20:48] <kenvandine> both installed at the same time
[20:48] <kenvandine> same package name
[20:48] <kenvandine> it was cool :)
[20:48] <robru> kenvandine: oh yeah I forgot you're a conary snob ;-)
[20:48] <kenvandine> anyway...
[20:48] <kenvandine> not anymore
[20:49] <kenvandine> we had cool stuff back in the day :)
[20:49] <jhodapp> makes sense to me, seems to be a style difference/preference
[20:49] <kenvandine> jhodapp, when does jamesh usually show up?
[20:49] <robru> kenvandine: yeah conary was a victim of "too technically good to be successful". debian, of course, being *just* good enough, wins out ;-)
[20:50] <jhodapp> kenvandine, he's UK I believe
[20:50] <kenvandine> oh?
[20:50] <kenvandine> australia.. last i heard
[20:50] <jhodapp> oh nevermind then
[20:50] <kenvandine> :)
[20:50] <jhodapp> you know better than me :)
[20:50] <kenvandine> i figured you worked more closely than me
[20:50] <jhodapp> not really, I just know he works on mediascanner
[20:51] <kenvandine> i guess a couple hours
[20:58] <ahayzen> jhodapp, jamesh is in Australia :-)
[21:31] <robru> slangasek: hangout issues, just restarting