/srv/irclogs.ubuntu.com/2016/02/25/#ubuntu-app-devel.txt

davidcalle_afkelimisteve: no estimates since people hold out until the last day to polish their work, but if you look at https://uappexplorer.com/apps?type=scope you can see roughly what's been entered already08:25
=== davidcalle_afk is now known as davidcalle
elimistevethanks davidcalle09:05
=== chihchun_afk is now known as chihchun
=== chihchun is now known as chihchun_afk
nik90appdevs, Can anyone what's the benefit of using textSize (introduced in UC1.3) over fontSize?10:35
timpnik90: string comparisons are expensive10:41
nik90timp, ah ok, so now they are enums that just set the value directly thereby avoiding string comparisons10:42
timpyes, and internally there was a binding to the fontSize which made it even worse10:44
nik90timp, wow you guys are squeezing every little to improve performance. Looking forward to see zbenjamin's C++ conversion branches land in rc-proposed images very soon.10:46
timpwe had to move the Label to a cpp implementation for this. Label also gets the proper default color from the theme now.10:46
ahayzen\o/10:46
nik90\o10:47
timpme too :) zbenjamin is doing a lot of good work with the c++ conversions10:48
=== JMulholland_ is now known as JMulholland
zbenjaminnik90: don't expect too much in terms of performance though. I did only a few basic components so far :) Its all prerequisites for the bigger ones12:03
mcphailnik90: do I remember correctly that it was you who worked on the bug in the clock app, where the alarm would register for the wrong day if set after midnight? thanks for fixing that. Have you seen the same behaviour in indicator panel? Would it be an easy fix?12:06
nik90zbenjamin, ack.12:07
nik90McIntireEvan, yes I worked on that bug. Are you noticing it with the indicator-panel as well?12:07
nik90mcphail, ^^12:07
nik90used the wrong nick12:07
mcphailyes - if I check my alarms ar 0130h before bed, the first alarm is still marked as "0730 tomorrow"12:07
nik90mcphail, I am afraid the indicator-datetime is an entirely different project and interfaces directly with EDS while clock does it with the SDK.12:08
nik90Can you report a bug? I can request charles to look into it.12:08
mcphailnik90: aah. that's a pity. I'll just file a bug, then12:09
nik90https://bugs.launchpad.net/ubuntu/+source/indicator-datetime/+filebug12:09
mcphailta12:09
=== _salem is now known as salem_
mcphailnik90: https://bugs.launchpad.net/ubuntu/+source/indicator-datetime/+bug/154978312:30
ubot5`Launchpad bug 1549783 in indicator-datetime (Ubuntu) "Indicator shows "Tomorrow" for an alarm happening today when checked after midnight" [Undecided,New]12:30
nik90mcphail, thnx a lot. I just managed to reproduce it by manually changing the system time and checking. Will expand on the bug description to make it easier to reproduce.12:33
mcphailnik90: Thanks!12:34
jockerfoxHi, exist an italian forum for ubuntu sdk develeper ?14:08
nik90timp, Hey, after upgrading to UC 1.3, it seems I cannot find the page header buttons in QML Unit Tests.16:53
nik90I looked at the UITK Tests source, for eg at http://bazaar.launchpad.net/~ubuntu-sdk-team/ubuntu-ui-toolkit/trunk/view/head:/tests/unit/tst_components/tst_header_colors.qml16:54
nik90testCase.header = findChild(mainView, "MainView_Header");16:54
nik90findChild(testCase.header, actionName + "_header_button");16:54
nik90but for me the second find child doesn't find the trailing action buttons which previously passed with UC 1.2.16:54
nik90any ideas?16:54
timpnik90: when you use PageHeader, the old MainView_Header is hidden16:55
timpnik90: the PageHeader is a new Item. You can simply refer to that item (page.header, or you give it the objectName that you like and you select using that)16:56
nik90timp, does the old MainView_Header hide even if I use PageHeader in just one of the mainPage.qml from where I launch other child pages?16:57
nik90I expected PageHeader to be used only in mainPage.qml, while the child pages pushed from mainPage.qml use the old page header16:57
timpnik90: it depends on the Page that is active at the moment. If that page has Page.header set, the MainView header is hidden. When you activate another page (for example push it on a pagestack), and that page has no Page.header, then the AppHeader becomes visible again16:58
timpnik90: if you use AdaptivePageLayout, the AppHeader is always hidden16:58
timpnik90: Yeah, what you expected sounds right17:00
nik90timp, in the clock app, I used PageHeader only in mainPage.qml to hide the header for good. However in the child pages like (AlarmLabel and EditAlarmPage) we retain the old header. But in autopilot vis, I don't see it anymore. Also the old tests fail as a result of not being able to use MainView_Header17:00
nik90I will try setting a object id to the pageHeader I set and see If I can access that.17:00
timpnik90: the header with objectName: "MainView_Header" is still there in MainView.qml17:01
timplet me check something, maybe the objectNames for the buttons changed17:01
nik90I couldn't find MainView_Header. I searched for the node using autopilot3 vis.17:02
timphmm17:02
timpnik90:                 objectName: action.objectName + "_button"17:02
timpnik90: ah, so the testCase.header = findChild(mainView, "MainView_Header") already fails?17:03
timpnik90: I wonder if that fails when it is executed at a moment when the mainview header is not visible17:03
nik90hmm no that line passes..although I dont see it in vis.17:03
nik90it just fails at not being able to find the save header button17:03
nik90I will try action.objectName + "_button"17:04
nik90timp, that worked!17:04
timpok, so we changed that :s17:05
timpI remember there were some problems with tests, but I don't remember the details17:05
nik90:)17:06
nik90ahayzen, balloons: ping18:13
ahayzennik90, pong18:13
balloonsnik90!18:13
nik90Hi :)18:13
ahayzeno/18:13
nik90I need some autopilot help :)18:13
balloonsnik90, what are you working on?18:14
ahayzenuhoh18:14
* ahayzen hides :-)18:14
nik90So the backstory is that we switched clock app to UC 1.3 and the new ListItemLayouts which provides three labels title, subtitle and summary.18:14
nik90How do I grab these via autopilot18:14
ahayzennik90, the same way as before?18:14
nik90in the qml code, I can only set the objectName of ListItemLayout18:14
ahayzenhmm let me check what i did18:14
ahayzeni seem to remember things working, or maybe AP got skipped :')18:15
balloonsnik90, do you absolutely need to use autopilot for what you are writing?18:15
nik90however I cannot access the properties by listitemlayoutitemobjectname.title.text18:15
nik90balloons, well we implemented the new clock app design whhich is blocked by failing tests :/18:15
nik90so I just started fixing some of them18:15
balloonsnik90, well I have some news on that front too18:15
balloonsI've been going through all the apps; but yes the clock tests have some issues18:16
ahayzenoh i think i remember...18:16
ahayzennik90, http://bazaar.launchpad.net/~music-app-dev/music-app/trunk/view/head:/app/ui/Songs.qml#L10118:17
balloonsI guess I'm asking if any of the current tests can be deemed as either 1) Too hard to maintain 2) Can be mostly implemented at a lower level18:17
balloonsaccording to you that is18:17
ahayzennik90, basically just set the title.objectName to something :-)18:17
nik90balloons, I am going to check if trunk has all AP tests passing. If that is the case, then this new design implementation should have its tests passing as well without too much effort.18:17
nik90I remember seeing ahayzen branch fixing a failing test for clock app.18:18
ahayzennik90, i had a branch that fixed some things, just not all ... then it got top approved so jenkins swallowed it up18:18
nik90ahayzen, wait, does top-approving ignore the test results?18:18
ahayzennik90, yup18:19
balloonsmy notes are; Tests suffer from timing issues, missing objects, missing location helpers and the random keyboard doesn't appear bug18:19
balloonsso that's clock18:19
ahayzennik90, it was the 'workaround' to speed up development :')18:19
nik90I wasn't aware of that.18:19
ahayzen:-)18:19
nik90balloons, are there AP test writers who can volunteer to help with that?18:19
nik90I am trying to improve the situation instead of leaving it as it is.18:20
ahayzennik90, maybe we can get some of the GCI people on it18:20
balloonsyes, I am with you18:20
balloonsbut I guess I should share somethig with both of you18:20
balloonsahayzen saw a sneak preview of what I'm going to share, but it's pretty much ready now18:21
balloonshttps://docs.google.com/document/d/1ApGwM9iI9qArbu4fMMdDs4Irb9fULfSVIjm79E-UBpQ/edit#18:21
* nik90 reads18:22
ahayzeni think we just need to migrate more to QUnit/QTest/whatever you call it18:22
ahayzenbut you still need autopilot for somethings18:22
ahayzenand ideally i'd like there to be zero manual tests :-)18:22
balloonsAlso note the workflow at the bottom. We've been suggested to stop running AP tests on commit, and as you can see the new workflow runs it only during release18:22
ahayzen...not more...18:22
ahayzen..but that comes from someone who worked for a company doing manual tests for years :')18:23
balloonswell historically manual testing has defined ubuntu.. I suppose this is a bit of realism creeping into the idealism we've had until now18:24
ahayzenballoons, who does the "run manual tests" before the branch lands?18:24
nik90balloons, I have been pushing for ages about allowing core-app devs use QML Tests for both feature-tests and unit-tests, however it was rejected by the SDK devs.18:24
ahayzenballoons, is that by another member of the team? or will QA be testing every branch from the community now?18:24
nik90thereby we have had new SDK releases without running the clock app qml tests thereby leading to breakage at some point.18:25
nik90Is this new flow accepted by all the concerned people (SDK, QA, Core-apps devs) ?18:25
balloonsI literally just spoke with QA about it, but yea, that's the idea18:26
balloonson the SDK side, perhaps we can help by adding jobs they can easily run18:26
balloonsor a script? I'm not sure, but we do want to make it easy.18:27
balloonsI hadn't thought about the SDK side of things, so it's a good point nik9018:28
balloonsI am concerned however that it seems the cmake builds vary and not all are running unit tests even on build, so tweaking jenkins to force the issue is on the list18:28
balloonsI know you spent time working on running qmltests on the device, which kind of didn't work out. However, we could potentially do the ole on the desktop run18:29
nik90I think jenkins was running the clock app qml tests at some point.18:29
nik90true18:29
nik90runnign on the desktop is a small compromise18:29
nik90until we find a way to run it on the device.18:30
balloonsright. More or less the idea is during the release process all the high level user testing is done, and it's done on a real device. Both automated and manual testing18:30
ahayzeni nearly had a script running it on device18:30
balloonsfor the merges; sure, let's just get low levels tests run, wherever we can do it18:30
nik90balloons, I believe QA already does manual-testing before releasing a click to the store.18:30
balloonsyep, definitely18:30
balloonswhat I'd like to see is making sure all the manual tests which are scattered around get committed into the repos18:31
balloonsso it's very straightforward18:31
nik90balloons, btw how has "Pilot" helped?18:31
nik90because "Pilot" was all about getting manual-tests into the hands of the community testers.18:31
nik90That would solve the "find all regressions" before release problem..hell even the QA team would benefit from such an approach.18:32
balloonsyes indeed. I would say it's been utilized more for specific OTA feature testing, like the bluetooth stuff. We haven't taken it any further than the initial run with the community core apps18:32
balloonsI'm certainly for it, but it requires coordination on QA's and core app devs side as well18:32
balloonsthis issue has kind of risen above it. All the jenkins and automated testing stuff has sort of pushed it down the list in priority18:33
balloonsjenkins now at least is running stable, fingers crossed18:33
ahayzenballoons, one thing i noticed for Pilot is people hit 'Fail' and not 'Skip' sometimes...and then i cannot tell whether the comment came from a pass/skip/fail18:33
balloonsyea, we have to roll a new version that forces a comment on fail18:34
balloonsthe code got done, but we've not synced from upstream18:34
ahayzenballoons, look at this https://ubuntu-community-testing.staging.ubuntu.com/reports/overview/2015.com.ubuntu.music/music-library/music-appears-sd-card18:34
balloonslol, I like it18:34
ahayzenballoons, 2 skips ... but 3 comments saying "No sd card slot"18:34
ahayzenso that suggests at least one person selected pass/fail18:34
ahayzenwhen they should have selected skip18:34
balloonsright.18:36
balloonsSo overall, what do you guys think?18:36
ahayzeni think we should migrate as many tests as possible to Unit... then the rest to manual/autopilot18:37
balloonsFor instance, some of the changes are a bit more straightforward. Reminders/notes for example has proven very hard to maintain because of all the mocking. The AP testsuite for it moving forward will limit this to only what can be done without having to have an evernote account attached to make it maintainable18:37
ahayzenballoons, what about then running AP only when the branch is top approved?18:37
ahayzenand apps where it is tricky, could just remove their instances of AP, only having manual/unit18:38
ahayzenand we should move all manual tests so that they are in the branch18:38
balloonsahayzen, according to QA we should run it only at release, so that's what we'll do. Obviously this means apps need to make sure they have lower level test coverage18:38
ahayzenhmmm18:38
nik90Without an army of volunteers to help out with writing/maintain AP tests, having a fully automated test-suite is idealistic and very difficult to achieve as observed. I'd migrating to QML Tests for most lower level test coverage and leaving the rest to manual testing (via Pilot) seems the way to go.18:38
balloonsand you are correct ahayzen. So I mentioned notes, but I'm not sure what for example what Music18:39
balloons's suite should look like18:39
ahayzenballoons, i'd like to move alot of ours to Unit tests18:40
ahayzenbut some things could be tricky as alot of components depends on other things...but that is just down to poor way the code is constructed :-/18:40
ahayzen(refactor-round-2 anyone? ;-) )18:40
balloonsok, good. Calculator is another straighforward example. They have a nice suite of both unit and autopilot tests. And the AP tests run and don't cause issues. However, they are re-testing stuff the unit tests cover, so no reason to have many of them18:40
balloonsohh also nik90, cmakepluginparser is broken, but the replacement is much simpler18:42
ahayzenballoons, is there an example layout of how unit test structure should look like for jenkins to figure it out ?18:42
ahayzenor is that WIP18:42
balloonsnot yet. As I said, lol, I literally just finished doing the research and writing that up and sharing it. So today I was going to start working on the easy apps18:43
balloonsOhh, this is some raw info too: https://docs.google.com/spreadsheets/d/1LqKolytVmzsebEZQHUyByTCnoFmpPE9eNYQJAyvfIVA/edit#gid=018:43
ahayzen:-)18:44
balloonsso for the unit tests, it's simply a matter of making sure jenkins always runs them. That's all we really care about18:44
balloonsfor sanity sake, I guess tests/unit is the desirable location18:45
ahayzenyeah18:45
ahayzenballoons, what about mocking though?18:45
balloonsmocking; as in integration tests or ?18:45
balloonsWe'll worry about integration tests after everything else on the list is done imho18:45
ahayzenmocking for unit tests18:46
ahayzeneg to test our Player {} component we would need music which is tracked by ms218:46
balloonsohh and before we get too much lost in the weeds, nik90, did we actually answer your question, or just complicate things?18:47
ahayzenballoons, in a WIP branch i had, i had a bash script http://bazaar.launchpad.net/~ahayzen/music-app/qml-unit-test-filenames/view/head:/tests/unit/setup_run_on_device.sh :-)18:47
ahayzenhaha18:47
nik90balloons, got it..dont' focus too much on AP tests for now..18:47
nik90that said I fixed 2 AP to PASS18:47
nik902/5 not bad :P18:47
ahayzen:-)18:47
balloonswell nik90, specifically since it's blocking you, I'd like some input on what tests should stay and what needs removed18:48
ahayzenyeah i remember being able to get 2 passing, the others required location ?18:48
ahayzenballoons, only the ones related to location need to be removed :-) ... music passes IIRC :-)18:48
nik90ahayzen, I doubt any of the tests require location consider we have 3 alarm tests, and 2 worldclock tests.18:48
balloonsack ahayzen, that was my thought. nik90 already pushed things to the lower level tests last year18:48
nik90I got the 2 world clock tests working just now18:48
balloonsfor some reason the alarm ones is it do18:49
nik90alarm tests are failing due to "UCUbuntuShape.isAnimating failed: false != dbus.Boolean(true, variant_levl=1)18:49
nik90hmm strange18:49
ahayzennik90, hmm i thought weather and clock were both failing due to the location dialog....oh maybe it different18:49
ahayzennik90, have you checked the screenshot?18:49
nik90balloons, ahayzen I think you are referring to asking for location permission from the user.18:49
ahayzennik90, yeah that18:50
ahayzenthat is what was blocking the weather app tests, and i thought the clock as i was trying to fix both18:50
balloonsnik90, so I guess if you think all 5 are still solid and should be maintained, that's what we'll do. If you feel any will just cause more headaches, let's make sure we have low level coverage as much as possible and a manual test for it18:50
nik90which I believe was blocked because trust-store didnt have proper support for AP tests or something..but that too was fixed sometime later.18:50
ahayzenballoons, "that was my thought" ... to the use of a bash script ?18:50
balloonsahayzen, I was referring to your suggestion about removing tests that run into the location issue18:51
ahayzenah :-)18:51
ahayzenballoons, what do you think about the bash script ?18:51
ahayzen:-)18:51
balloonsre: the script, is this unit tests?18:51
ahayzenballoons, yup that is for running the unit tests18:51
balloonsand if I run them locally and not on the device?18:52
ahayzenballoons, use the other script :-) http://bazaar.launchpad.net/~ahayzen/music-app/qml-unit-test-filenames/view/head:/tests/unit/setup_run_locally.sh18:52
balloonsahayzen, nik90 I'm all ears if you have a preference for how you'd like jenkins to run unit tests, as well as how the apps should have them laid out18:53
ahayzenballoons, because, for example, that test was checking that different filenames work with the app, as we have been having multiple issues with #'s or funny characters in filename breaking the encoding18:53
balloonsahayzen, right, great regression test18:53
ahayzenso obviously it needs to make and move the files into ~/Music18:53
ahayzenhence the script18:53
balloonsshould every app just provide a script that jenkins runs?18:54
ahayzenballoons, i think if we had two or one dynamic script that can do any presetup and then run the tests would be best18:54
balloonsshould I just try and execute qmltestrunner myself in the folder?18:54
ahayzensomething like what i was trying todo18:54
ahayzenballoons, or maybe.... have a init.sh and cleanup.sh that you run before/after18:54
balloonswell, heh, that should still all be one script for jenkins sanity sake18:55
nik90I usually go into the builddir and run "ctest --output-on-failure" which runs *all* qml testsuites and outputs the results.18:55
balloonsright, I was leaning towards the ctest idea -- but ahayzen has a point about doing setup things18:55
nik90http://bazaar.launchpad.net/~ubuntu-clock-dev/ubuntu-clock-app/trunk/view/head:/README.unittest18:55
ahayzeni was just running $ ubuntu-app-test qmltestrunner -silent -eventdelay 50018:55
ahayzenIIRC18:55
nik90wait, ubuntu-app-test?18:56
ahayzenyeah18:56
nik90not seen that until now18:56
nik90interesting18:56
ahayzenso you can run qmltestrunner on device18:56
balloonsctest is nice because you can control the output level18:56
ahayzenit like runs your app inside that18:56
nik90ah ok18:56
ahayzenotherwise qmltestrunner can't run on device due to permissions and stuff18:57
ahayzenso it gives it an 'app' to run in18:57
nik90balloons, I say with your experience decide if jenkins will find it easier to run scripts or ctest.18:57
nik90and all app devs stick to it.18:57
ahayzennik90, can the ctest have mocking in it though?18:57
balloonswell the answer is if we require a script, it doesn't matter18:57
balloonsthat does mean you are forced to follow a rule about how your source tree is setup. Which we don't yet have (only rule is having a cmake file)18:58
nik90ahayzen, I haven't tried moving files...however we mock clock app alarms so that the user's alarms are not affected in the desktop.18:58
balloonsbut presumably we could add it to cmake, so18:58
ahayzennik90, problem is, we have mediascanner2 to deal with, which is a nightmare to mock18:58
ahayzenit is easiest to move the files into ~/Music :-)18:58
nik90ah..then a script would be make it easier18:59
nik90ah script give more power/flexibility on setting up things for the test.18:59
balloonsyea, I'm concerned for things like docviewer having the same issue18:59
ahayzeni think a script gives the most options18:59
ahayzenwhether that script just then runs ctest, then doesn't matter18:59
nik90yup19:01
balloonsok, do we think we can sanely include that in cmake and not have developers take it out?19:01
ahayzenso for clock the script could simply just do $ ctest --output-on-failure19:01
ahayzenbut for more complex ones, we can then do mocking etc19:01
ahayzenballoons, i'm not a cmake ninja, so idk what can be done in it19:03
nik90not sure either19:04
nik90zbenjamin, ^^19:04
nik90zbenjamin, do you happen to know if we can make cmake execute a script in jenkins?19:04
ahayzenballoons, i sense we need to try a few use cases, end to end.. to figure out the best structure :-)19:04
balloonsyes, we'll have to try and see what everyone prefers19:05
nik90ahayzen, just noticed that music-app and clock share almost the same source tree structure (except for the backend folder)19:05
ahayzenhehe19:05
ahayzeni would say that is not a mistake ;-) i may have hijacked some of the structure :-)19:06
nik90you guys added http://bazaar.launchpad.net/~ubuntu-clock-dev/ubuntu-clock-app/trunk/view/head:/README.unittest as well? :P19:06
ahayzennik90, the google code-in people did :-)19:06
nik90I meant http://bazaar.launchpad.net/~music-app-dev/music-app/trunk/view/head:/README-Mergeproposal.md19:06
nik90my bad19:06
balloonswe made some attempts to standardize readme's and make contribution easier by including them19:07
nik90either way good to set a common structure amongst core-apps to help easily debug/contribute.19:07
ahayzennik90, balloons made a task at the google code-in to sort out all the readmes for the core-apps :-)19:07
nik90oh19:07
nik90awesome!19:07
ahayzenso that's why we all have similar readmes, even in markdown :-)19:08
balloonsDanChapman, care to chime in on how you are running unit tests for dekko?20:08
m_jimmernik90:  http://pastebin.com/2mxRknxE    << example20:30
balloonsnik90, all done messing with clock?21:10
nik90balloons, I fixed those 2/5 AP tests and merged the new design implementation. I am now working on adding the new bottom edge stuff that design requested.21:11
nik90hopefully we can get a store release next week.21:11
balloonsnik90, ok. So I can remove the cmakepluginparser and add the ability for the tests to run again from an SDK build?21:11
balloonsbasically fix the test setup / launch dode21:12
nik90balloons, sure, go ahead21:12
balloonsk21:12
nik90any change I am doing will not touch that part of the code21:12
balloonsI'm just curious how you managed to launch the tests21:12
balloonsas I can't on my desktop without these changes21:12
nik90balloons, I just followed the instruction in README.autopilot and .unittest21:13
nik90I am running in my spare 16.04 laptop21:13
balloonshmm, ok. Well, I trust I won't be breaking anything21:13
nik90you're the testing expert..I trust it will be fine.21:14
balloonsnik90, ok I think everything is going to be fixed.22:17
nik90yay22:17
balloonsNot too bad. Removed more code than anything else :-)22:17
nik90balloons, me too ;) https://code.launchpad.net/~nik90/ubuntu-clock-app/new-bottom-edge/+merge/28723622:24
nik90balloons, let me know when to top-approve.22:26
ahoneybunmhall119, I have a few errors on installing the SDK on Kubuntu 15.10 with the backports22:43
ahoneybunyou said to let someone know if there was any issues22:43
balloonsnik90, land it I guess. You changed the bottom edge anyway, so we'll look into why it's coming up not ready after you land22:52
nik90balloons, ack.22:53
nik90balloons, on testing your MP, I cannot run the tests anymore on 16.04 desktop22:56
balloonsnik90, I tried both ways.. using the builddir and using the sdk build22:56
nik90I get, ERROR: unittest.loader.ModuleImportFailure.ubuntu_clock_app.tests.test_alarm22:56
nik90ImportError: No module name ubuntuuitoolkit22:56
nik90actually 1 sec22:57
balloonsand you have the uitk installed right, lol?22:57
nik90it works!22:57
balloonskk22:57
nik90I accidentally used autopilot22:57
nik90instead of autopilot322:57
balloonsahhh23:02

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