| *** theyer has joined #openstack-meeting-5 | 00:00 | |
| *** theyer has quit IRC | 00:05 | |
| *** gomarivera has quit IRC | 00:17 | |
| *** gomarivera has joined #openstack-meeting-5 | 00:18 | |
| *** gomarivera has joined #openstack-meeting-5 | 00:19 | |
| *** gomarivera has quit IRC | 00:29 | |
| *** gomarivera has joined #openstack-meeting-5 | 00:39 | |
| *** ricolin has joined #openstack-meeting-5 | 00:45 | |
| *** eeiden has quit IRC | 00:55 | |
| *** gomarivera has quit IRC | 01:00 | |
| *** eeiden has joined #openstack-meeting-5 | 01:00 | |
| *** gomarivera has joined #openstack-meeting-5 | 01:04 | |
| *** gomarivera has quit IRC | 01:06 | |
| *** gomarivera has joined #openstack-meeting-5 | 01:07 | |
| *** gomarivera has joined #openstack-meeting-5 | 01:08 | |
| *** gomarivera has quit IRC | 01:44 | |
| *** gomarivera has joined #openstack-meeting-5 | 01:44 | |
| *** gomarivera has quit IRC | 01:48 | |
| *** gomarivera has joined #openstack-meeting-5 | 02:17 | |
| *** eanylin has quit IRC | 02:29 | |
| *** gomarivera has quit IRC | 02:32 | |
| *** gomarivera has joined #openstack-meeting-5 | 02:33 | |
| *** gomarivera has quit IRC | 02:45 | |
| *** gomarivera has joined #openstack-meeting-5 | 02:45 | |
| *** gomarivera has quit IRC | 02:50 | |
| *** eanylin has joined #openstack-meeting-5 | 03:02 | |
| *** EmilienM has quit IRC | 04:30 | |
| *** EmilienM has joined #openstack-meeting-5 | 04:38 | |
| *** krtaylor has quit IRC | 06:10 | |
| *** LanceHaig has joined #openstack-meeting-5 | 06:14 | |
| *** krtaylor has joined #openstack-meeting-5 | 06:23 | |
| *** Guest11 has joined #openstack-meeting-5 | 06:53 | |
| *** rarcea has joined #openstack-meeting-5 | 06:56 | |
| *** Guest11 has quit IRC | 07:28 | |
| *** Guest11 has joined #openstack-meeting-5 | 07:32 | |
| *** gomarivera has joined #openstack-meeting-5 | 07:46 | |
| *** gomarivera has quit IRC | 07:50 | |
| *** ralonsoh has joined #openstack-meeting-5 | 07:52 | |
| *** Guest11 has quit IRC | 08:52 | |
| *** theyer has joined #openstack-meeting-5 | 08:55 | |
| *** theyer has quit IRC | 09:00 | |
| *** markvoelker has quit IRC | 09:01 | |
| *** derekh has joined #openstack-meeting-5 | 09:06 | |
| *** LanceHaig has quit IRC | 09:19 | |
| *** LanceHaig has joined #openstack-meeting-5 | 09:19 | |
| *** LanceHaig has joined #openstack-meeting-5 | 09:24 | |
| *** markvoelker has joined #openstack-meeting-5 | 11:01 | |
| *** makowals_ has joined #openstack-meeting-5 | 11:27 | |
| *** makowals has quit IRC | 11:28 | |
| *** markvoelker has quit IRC | 11:36 | |
| *** markvoelker has joined #openstack-meeting-5 | 11:53 | |
| *** markvoelker has quit IRC | 11:59 | |
| *** rarcea has quit IRC | 12:00 | |
| *** markvoelker has joined #openstack-meeting-5 | 12:02 | |
| *** LanceHaig has quit IRC | 12:03 | |
| *** ralonsoh has quit IRC | 12:06 | |
| *** ralonsoh has joined #openstack-meeting-5 | 12:15 | |
| *** LanceHaig has joined #openstack-meeting-5 | 12:16 | |
| *** lrensing has joined #openstack-meeting-5 | 12:40 | |
| *** eanylin has quit IRC | 13:03 | |
| *** gomarivera has joined #openstack-meeting-5 | 13:14 | |
| *** gomarivera_ has joined #openstack-meeting-5 | 13:15 | |
| *** gomarivera has quit IRC | 13:15 | |
| *** theyer has joined #openstack-meeting-5 | 13:21 | |
| *** theyer has quit IRC | 13:24 | |
| *** theyer has joined #openstack-meeting-5 | 13:28 | |
| *** theyer has quit IRC | 13:35 | |
| *** theyer has joined #openstack-meeting-5 | 13:39 | |
| *** eanylin has joined #openstack-meeting-5 | 13:39 | |
| *** theyer has quit IRC | 13:44 | |
| *** theyer has joined #openstack-meeting-5 | 13:44 | |
| *** theyer has quit IRC | 13:47 | |
| *** Guest11 has joined #openstack-meeting-5 | 13:49 | |
| *** admcleod has joined #openstack-meeting-5 | 13:50 | |
| *** skazi_ has joined #openstack-meeting-5 | 13:51 | |
| *** lrensing has quit IRC | 14:00 | |
| *** Guest11 has quit IRC | 14:20 | |
| *** gomarivera_ has quit IRC | 14:22 | |
| *** lrensing has joined #openstack-meeting-5 | 14:27 | |
| *** felipemonteiro has joined #openstack-meeting-5 | 14:30 | |
| *** rarcea has joined #openstack-meeting-5 | 14:44 | |
| *** ramishra has joined #openstack-meeting-5 | 14:49 | |
| *** zhipeng has joined #openstack-meeting-5 | 14:57 | |
| ricolin | #startmeeting heat | 15:00 |
|---|---|---|
| openstack | Meeting started Wed Jun 14 15:00:42 2017 UTC and is due to finish in 60 minutes. The chair is ricolin. Information about MeetBot at http://wiki.debian.org/MeetBot. | 15:00 |
| openstack | Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. | 15:00 |
| *** openstack changes topic to " (Meeting topic: heat)" | 15:00 | |
| openstack | The meeting name has been set to 'heat' | 15:00 |
| ricolin | #topic roll call | 15:00 |
| *** openstack changes topic to "roll call (Meeting topic: heat)" | 15:00 | |
| LanceHaig | o/ | 15:01 |
| ramishra | i | 15:01 |
| ramishra | hi | 15:01 |
| *** therve has joined #openstack-meeting-5 | 15:01 | |
| zaneb | yo | 15:01 |
| therve | Hi | 15:01 |
| ricolin | hi :) | 15:01 |
| ricolin | #topic adding items to agenda | 15:02 |
| *** openstack changes topic to "adding items to agenda (Meeting topic: heat)" | 15:02 | |
| ricolin | #link https://wiki.openstack.org/wiki/Meetings/HeatAgenda#Agenda_.282017-06-07_1500_UTC.29 | 15:02 |
| ricolin | #topic weekly report | 15:03 |
| *** openstack changes topic to "weekly report (Meeting topic: heat)" | 15:03 | |
| ricolin | We still facing gate broken | 15:03 |
| ramishra | ricolin: what is broken? | 15:04 |
| ricolin | which alot of https://bugs.launchpad.net/heat/+bug/1625921 | 15:04 |
| openstack | Launchpad bug 1625921 in heat "SoftwareDeploymentGroupTest fails at times with TimeoutException" [Medium,In progress] - Assigned to Rabi Mishra (rabi) | 15:04 |
| ricolin | ramishra, newton gate | 15:04 |
| ricolin | also found this https://bugs.launchpad.net/heat/+bug/1686092 | 15:05 |
| openstack | Launchpad bug 1686092 in heat "stack cancel not complete" [Undecided,In progress] - Assigned to Rico Lin (rico-lin) | 15:05 |
| *** tiantian has joined #openstack-meeting-5 | 15:05 | |
| tiantian | hi | 15:05 |
| ricolin | #link http://logs.openstack.org/72/424372/4/gate/gate-heat-dsvm-functional-convg-mysql-lbaasv2-ubuntu-xenial/9c7b64c/console.html | 15:05 |
| ricolin | newton gate keep fail at same point | 15:05 |
| ricolin | that's all I trying to focus on this week;/ | 15:07 |
| zaneb | I got https://review.openstack.org/#/c/466008/ to pass the newton check jobs (once) | 15:07 |
| ricolin | tiantian, ^^^ | 15:08 |
| zaneb | if tiantian can approve that (hi! ;) then the gate will get somewhat better and we'll have a better idea of what is still failing | 15:08 |
| ricolin | zaneb, we do got some pass patches through check jobs | 15:08 |
| tiantian | have a look :) | 15:08 |
| ricolin | zaneb, but none of gate | 15:08 |
| ramishra | May be some infra issue. My backport also went through ok https://review.openstack.org/#/c/472524/ | 15:09 |
| zaneb | ricolin: that one has the best chance of any of them to pass the gate ;) | 15:09 |
| * zaneb will keep hitting recheck until it does :D | 15:09 | |
| ricolin | zaneb, agree | 15:09 |
| ricolin | worth a try:)!! | 15:10 |
| tiantian | approved ;) | 15:10 |
| ricolin | nice, let's check on that later:) | 15:10 |
| ricolin | move on | 15:10 |
| ricolin | #topic Add q-trunk to heat job https://review.openstack.org/#/c/473700 | 15:11 |
| *** openstack changes topic to "Add q-trunk to heat job https://review.openstack.org/#/c/473700 (Meeting topic: heat)" | 15:11 | |
| ramishra | I think many of the of failures are due to signals, I suspect mostly infra issue | 15:11 |
| ricolin | ramishra, I think it's RPC issue, but no much detail clue on that | 15:11 |
| zaneb | tiantian: thanks! :) | 15:12 |
| tiantian | np | 15:12 |
| *** theyer has joined #openstack-meeting-5 | 15:12 | |
| ricolin | okay, this is request by BP trunk support | 15:12 |
| ricolin | to enable q-trunk service in our job | 15:13 |
| ramishra | Do we really need to have functional tests for trunk? Neutron does not have it enabled in any of their gate jobs. | 15:13 |
| therve | Well, we ought to give ourselves higher standards than neutron | 15:14 |
| ramishra | therve: ;) | 15:14 |
| zaneb | LOL | 15:14 |
| ricolin | therve, :) | 15:15 |
| zaneb | is there maybe a separate repo for q-trunk where it's tested? | 15:16 |
| zaneb | just having it enabled shouldn't break us | 15:16 |
| therve | We can always have them, and disable them if they fail too much | 15:16 |
| ramishra | zaneb: I don't know, but would be good to know why neutron does not do it in their gate. | 15:16 |
| therve | Unit tests have little value for this kind of thing, so even if they run once that'd be nice | 15:16 |
| zaneb | if we have tests that use it then it might break, but that still seems better than having resources that are untested | 15:17 |
| zaneb | I agree that neutron should be testing this at the point where it's developed | 15:17 |
| zaneb | I'm just hoping they are and we haven't found it yet | 15:17 |
| kazsh | super sorry for being late to join...& sorry for cutting in | 15:18 |
| ricolin | do we still have to write line 75 in patch? | 15:18 |
| ricolin | https://review.openstack.org/#/c/473700/2/jenkins/jobs/heat.yaml | 15:18 |
| ricolin | to check stable/mitaka or not | 15:18 |
| ramishra | yeah enabling it would not break anything for us. But I would not do it unless neutron tests it somewhere. | 15:18 |
| ricolin | kazsh, NP:) | 15:19 |
| therve | ricolin, It should probably be master/pike forward | 15:19 |
| therve | Not newton/ocata | 15:19 |
| ricolin | therve, so we can just service+=,q-trunk with out that if condition right? | 15:21 |
| ricolin | will try to contact with neutron team about where they test it | 15:23 |
| ramishra | ricolin: I think that would enable it for all | 15:23 |
| ricolin | but I can't found it either | 15:23 |
| therve | ricolin, No, I would add newton/ocata to the condition | 15:24 |
| ricolin | ramishra, I mean not `if [[ ! "$ZUUL_BRANCH" == "stable/mitaka" ]]` here | 15:24 |
| ramishra | ricolin: as therve mentioned:) | 15:24 |
| ricolin | ramishra, therve thx:) | 15:25 |
| ricolin | move on:) | 15:25 |
| ricolin | #topic py35 | 15:25 |
| *** openstack changes topic to "py35 (Meeting topic: heat)" | 15:25 | |
| ricolin | we still short of py35 support in heat-template and heat-agents | 15:26 |
| LanceHaig | What is required to be done in heat-template? | 15:27 |
| ricolin | to enable python35 support in test job | 15:27 |
| ricolin | therve, could you update your patch for heat-agents | 15:28 |
| therve | ricolin, I'll try | 15:28 |
| ricolin | therve, thx | 15:29 |
| LanceHaig | I would offer to work on heat-templates but I don't know where to start :-) | 15:29 |
| ricolin | LanceHaig, we need to fix what ever broke when move from py27 to py35 | 15:30 |
| ricolin | you can found in tox.ini in repo that it require to have py35 support | 15:30 |
| LanceHaig | ok thanks | 15:31 |
| ricolin | LanceHaig, then we can enable non-voting gate, and work till we turn it to vote | 15:31 |
| ricolin | LanceHaig, thx:) | 15:31 |
| ricolin | move on | 15:32 |
| ricolin | #topic Strawman Queens PTG week slicing | 15:32 |
| *** openstack changes topic to "Strawman Queens PTG week slicing (Meeting topic: heat)" | 15:32 | |
| ramishra | May be we should also add a gate job for py35 for heat-agents soon? | 15:32 |
| ricolin | ramishra, yes, but as we discussed in meeting, we can enable it right after therve's patch land | 15:33 |
| ramishra | ricolin: sure | 15:33 |
| ricolin | #link http://lists.openstack.org/pipermail/openstack-dev/2017-May/117369.html | 15:34 |
| ricolin | what we want in PTG | 15:34 |
| ricolin | room size | 15:34 |
| ricolin | and day | 15:34 |
| ricolin | we can have Wed-Fri | 15:35 |
| therve | We should know who's going first | 15:35 |
| ricolin | but maybe Wed-Thu will be enough? | 15:35 |
| ricolin | therve, a little hard to figure out who will go to PTG at this point;/ | 15:36 |
| therve | ricolin, Well, we need some kind of estimate | 15:37 |
| * zaneb will not be there, just as a reminder | 15:37 | |
| therve | Choosing the room size is kind of pointless otherwise | 15:37 |
| ricolin | therve, good point | 15:37 |
| therve | (Or a room at all) | 15:37 |
| therve | We were 5 last time, and at least 2 don't come | 15:37 |
| therve | Do we know if anyone else joining? | 15:37 |
| ricolin | anyone here will go? | 15:38 |
| LanceHaig | not me | 15:38 |
| ricolin | anyway we already been assign to a M size room | 15:39 |
| ricolin | will try to adjust that later if we can:) | 15:39 |
| ricolin | how about in days | 15:40 |
| ricolin | Wed-Thu will work? or we better that Fri as well? | 15:40 |
| therve | ricolin, I think we should really consider if we're doing it at all | 15:41 |
| *** skazi_ has quit IRC | 15:42 | |
| zaneb | the PTG is partly about connecting with the rest of the community. I don't know if I'd feel comfortable with us not being represented at all | 15:43 |
| therve | That's fair, though the summit does that as well | 15:44 |
| ricolin | zaneb, do hope we can do more cross project in PTG, which I do free feel if we can provide our room to do it | 15:44 |
| therve | And we don't have anyone from the US going to this one | 15:44 |
| ramishra | probably we can find a way to have more people participate? may be virtually? Not sure how well that would work though | 15:46 |
| zaneb | next summit is in Sydney, so a large proportion of the community will not be there | 15:46 |
| therve | At any rate, I'm not excited of 30h+ of travel, so just putting that out there | 15:46 |
| therve | ramishra, yeah, we can do that every week though :) | 15:47 |
| ricolin | ramishra, yep, do thinking we can make it online | 15:47 |
| therve | zaneb, Well, it's closer for Rico and Rabi though | 15:47 |
| ricolin | therve, let's do it:) | 15:47 |
| zaneb | therve: that's true, but who else will be there for them to talk to ;) | 15:48 |
| ricolin | therve, actually still a far way to Sydney:) | 15:48 |
| ramishra | yeah, nothing is closer to me ... sigh.. | 15:48 |
| LanceHaig | I don't think I will be going | 15:48 |
| ricolin | I like the idea to make it virtually | 15:48 |
| LanceHaig | Unless I have a talk :-) | 15:49 |
| LanceHaig | Sorry to jump in but I have another meeting in 10minutes and I added topic :-) | 15:50 |
| ricolin | we should start using a video stream to do it | 15:50 |
| ricolin | like zoom | 15:50 |
| ricolin | LanceHaig, yes | 15:50 |
| ricolin | #topic Tutorial import | 15:50 |
| *** openstack changes topic to "Tutorial import (Meeting topic: heat)" | 15:50 | |
| ricolin | LanceHaig, yours:) | 15:50 |
| LanceHaig | thanks ricolin | 15:50 |
| LanceHaig | I added this topic just to get clarification on where in the heat repo we want to add the tutorial for now | 15:51 |
| LanceHaig | I want to add it as soon as possible | 15:51 |
| LanceHaig | does anyone have suggestions? | 15:51 |
| ricolin | LanceHaig, how about https://github.com/openstack/heat/tree/master/doc/source | 15:52 |
| ricolin | we can have create a now path under it call xxx-guide | 15:52 |
| zaneb | LanceHaig: https://review.openstack.org/#/c/472275/ | 15:52 |
| LanceHaig | ok that sounds feasable | 15:53 |
| zaneb | specifically https://review.openstack.org/#/c/472275/4/specs/pike/os-manuals-migration.rst@67 | 15:53 |
| LanceHaig | zaneb, ok I will take a look there and see what is suggested | 15:53 |
| zaneb | tl;dr what ricolin said | 15:54 |
| LanceHaig | ok | 15:54 |
| LanceHaig | I will take a look there | 15:54 |
| LanceHaig | and will follow up on #heat | 15:54 |
| LanceHaig | thanks | 15:54 |
| ricolin | LanceHaig, thanks for doing this:) | 15:55 |
| LanceHaig | I want to help :-) | 15:55 |
| ricolin | anything on this topic? | 15:56 |
| tiantian | I want to talk about https://bugs.launchpad.net/heat/+bug/1693495 | 15:56 |
| openstack | Launchpad bug 1693495 in heat "update cancel result in no network interface of nova server" [Undecided,New] - Assigned to huangtianhua (huangtianhua) | 15:56 |
| LanceHaig | I have to jump off now. | 15:56 |
| ricolin | LanceHaig, thx | 15:56 |
| ricolin | tiantian, sure | 15:56 |
| tiantian | I have no idea how to fix this? | 15:57 |
| tiantian | a problem happened in our product | 15:58 |
| ramishra | I thought update cancel does not work properly with convergence yet, zaneb? | 15:58 |
| tiantian | no, in legacy | 15:59 |
| tiantian | this happened in legacy | 15:59 |
| ramishra | ok | 15:59 |
| zaneb | ramishra: it should as of newton I thought... but apparently this is legacy :) | 15:59 |
| *** Rockyg has joined #openstack-meeting-5 | 15:59 | |
| *** wxy| has joined #openstack-meeting-5 | 16:00 | |
| *** theyer has quit IRC | 16:00 | |
| zaneb | tiantian: add a try/finally so that self.t is always updated maybe? | 16:01 |
| tiantian | if cancel came between updating of a resource, then the resource can not rollback correctly, because the defn is not updated yet | 16:01 |
| tiantian | https://github.com/openstack/heat/blob/master/heat/engine/resource.py#L1462 | 16:01 |
| tiantian | zaneb, always update the defn to after? | 16:02 |
| zaneb | tiantian: that sounds like it would solve caseB at least | 16:02 |
| ricolin | shall we move this back to #heat | 16:04 |
| tiantian | zaneb, ok, then why not to update defn at the first ? | 16:04 |
| ricolin | I think we got 4mins over | 16:04 |
| tiantian | ok | 16:04 |
| zaneb | tiantian: because the handle_*() method may look at it | 16:04 |
| zaneb | ricolin: +1 | 16:05 |
| ricolin | anyway thanks all for join :) | 16:05 |
| ricolin | #endmeeting | 16:05 |
| *** openstack changes topic to "OpenStack Meetings || https://wiki.openstack.org/wiki/Meetings" | 16:05 | |
| openstack | Meeting ended Wed Jun 14 16:05:21 2017 UTC. Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4) | 16:05 |
| openstack | Minutes: http://eavesdrop.openstack.org/meetings/heat/2017/heat.2017-06-14-15.00.html | 16:05 |
| openstack | Minutes (text): http://eavesdrop.openstack.org/meetings/heat/2017/heat.2017-06-14-15.00.txt | 16:05 |
| openstack | Log: http://eavesdrop.openstack.org/meetings/heat/2017/heat.2017-06-14-15.00.log.html | 16:05 |
| *** ricolin has quit IRC | 16:29 | |
| *** ralonsoh has quit IRC | 16:31 | |
| *** wxy| has quit IRC | 16:34 | |
| *** makowals has joined #openstack-meeting-5 | 16:35 | |
| *** gomarivera has joined #openstack-meeting-5 | 16:36 | |
| *** makowals_ has quit IRC | 16:36 | |
| *** makowals_ has joined #openstack-meeting-5 | 16:41 | |
| *** makowals has quit IRC | 16:43 | |
| *** rarcea has quit IRC | 16:43 | |
| *** theyer has joined #openstack-meeting-5 | 16:43 | |
| *** makowals_ has quit IRC | 16:53 | |
| *** makowals has joined #openstack-meeting-5 | 16:55 | |
| *** theyer has quit IRC | 16:55 | |
| *** theyer has joined #openstack-meeting-5 | 16:57 | |
| *** zhipeng has quit IRC | 16:58 | |
| *** makowals has quit IRC | 17:00 | |
| *** derekh has quit IRC | 17:04 | |
| *** LanceHaig has quit IRC | 17:08 | |
| *** LanceHaig has joined #openstack-meeting-5 | 17:09 | |
| *** LanceHaig has quit IRC | 17:09 | |
| *** theyer has quit IRC | 17:31 | |
| *** makowals has joined #openstack-meeting-5 | 17:35 | |
| *** makowals has quit IRC | 17:40 | |
| *** makowals has joined #openstack-meeting-5 | 17:41 | |
| *** makowals has quit IRC | 17:41 | |
| *** makowals has joined #openstack-meeting-5 | 17:42 | |
| *** makowals has quit IRC | 17:59 | |
| *** theyer has joined #openstack-meeting-5 | 18:10 | |
| *** theyer has quit IRC | 18:13 | |
| *** theyer has joined #openstack-meeting-5 | 18:15 | |
| *** Rockyg has quit IRC | 18:20 | |
| *** theyer has quit IRC | 18:24 | |
| *** theyer has joined #openstack-meeting-5 | 18:25 | |
| *** theyer has quit IRC | 18:34 | |
| *** Rockyg has joined #openstack-meeting-5 | 18:35 | |
| *** Rockyg has quit IRC | 18:37 | |
| *** Guest11 has joined #openstack-meeting-5 | 18:37 | |
| *** theyer has joined #openstack-meeting-5 | 18:52 | |
| *** theyer has quit IRC | 19:04 | |
| *** theyer has joined #openstack-meeting-5 | 19:08 | |
| *** therve has left #openstack-meeting-5 | 19:22 | |
| *** theyer has quit IRC | 20:14 | |
| *** theyer has joined #openstack-meeting-5 | 20:15 | |
| *** theyer has quit IRC | 20:23 | |
| *** theyer has joined #openstack-meeting-5 | 20:25 | |
| *** Guest11 has quit IRC | 20:26 | |
| *** Guest11 has joined #openstack-meeting-5 | 20:27 | |
| *** theyer has quit IRC | 20:28 | |
| *** Guest11 has quit IRC | 20:29 | |
| *** theyer has joined #openstack-meeting-5 | 20:37 | |
| *** Guest11 has joined #openstack-meeting-5 | 20:48 | |
| *** theyer has quit IRC | 20:51 | |
| *** theyer has joined #openstack-meeting-5 | 20:52 | |
| *** ramishra has quit IRC | 21:19 | |
| *** felipemonteiro has quit IRC | 21:21 | |
| *** Guest11 has quit IRC | 21:29 | |
| *** gomarivera has quit IRC | 21:34 | |
| *** theyer has quit IRC | 21:49 | |
| *** lrensing has quit IRC | 22:17 | |
| *** theyer has joined #openstack-meeting-5 | 22:20 | |
| *** theyer has quit IRC | 22:24 | |
Generated by irclog2html.py 2.15.3 by Marius Gedminas - find it at mg.pov.lt!