/srv/irclogs.ubuntu.com/2013/12/10/#ubuntu-ci-eng.txt

=== thomi_ is now known as thomi
thomifginther: https://bugs.launchpad.net/ubuntu-ci-services-itself/+bug/1259334/comments/102:05
ubot5Ubuntu bug 1259334 in Ubuntu CI Services "Add autopilot suite and code coverage gating to autopilot MPs" [Undecided,New]02:05
thomilet me know if you need anything else.02:05
didrockshey cjwatson_, did you confirm bug #1259253 is due to click? if that's the case, are you going to work on a fix so that we can promote an image again?07:20
ubot5bug 1259253 in click (Ubuntu) "UID changes for clickpkg user breaks app updates/installs" [High,Triaged] https://launchpad.net/bugs/125925307:20
didrocksseems indeed, we need a fixed user id for click07:21
popeydidrocks: on irc he said he didn't want to go down the path of fixed UIDs but instead have a hook07:51
popeylet me find it07:51
didrockspopey: hey! ah ok, I think seeing how people want to see a new promoted image, an ETA will be necessary07:52
popeydidrocks: http://irclogs.ubuntu.com/2013/12/09/%23ubuntu-ci-eng.html#t17:4307:52
popeyya07:52
MirvI wonder if the time from "built" in PPA to becoming published could be shortened. I've an example here of a package finished building 17 minutes ago and still shown in LP as not published.07:54
didrockscjwatson_: popey: do you know if reverting would help? Doesn't seem in the code (in fact, this issue is there for a long time I guess), but just checking as I guess this question will be asked to me07:55
popeyGood question didrocks but I don't know what piece of the toolchain caused it to juggle the UIDs.07:58
sil2100didrocks: https://code.launchpad.net/~sil2100/url-dispatcher/direct_releases/+merge/198343 <- to fix the url-dispatcher changelog08:28
sil2100didrocks: I also cherry-picked the arch change, was that correct?08:28
sil2100I mean, correct to cherry-pick it?08:28
didrockssil2100: oh, I didn't push push that branch? I though I did08:28
didrockssil2100: no, just cherry-pick the changelog08:28
didrockssil2100: as per discussion here yesterday, we don't need the arch change08:29
sil2100Ok, so I'll remove the arch switch08:29
didrocksthanks!08:29
didrockssil2100: then, feel free to push directly08:29
=== psivaa changed the topic of #ubuntu-ci-eng to: Ubuntu CI Engineering Team | Vanguard: psivaa | Landing instructions: http://paste.ubuntu.com/6292280/ | Known issues: -
cjwatson_didrocks: reverting wouldn't help10:32
cjwatson_didrocks: it's not *due* to click, but click is probably the best place for a fix10:32
cjwatson_didrocks: and yes, I'm going to work on a fix10:32
=== cjwatson_ is now known as cjwatson
didrocksyeah, what I thought, thanks cjwatson10:33
cjwatsongrump, this is an unhelpful time for my grouper to apparently have trouble charging enough off USB11:02
cjwatsonthe emulator doesn't have system-images yet, does it?11:03
xnoxcjwatson: i think we started generating them, but there is no system image upgrade yet.11:12
xnoxcjwatson: in the past jodh did get remote access to a phone. and (reboot recovery / reboot) should work....11:13
jodhxnox, cjwatson: yeah, thanks to rsalveti.11:15
cjwatsonI should be able to manage11:25
cjwatson(it seems to be charging off mains OK-ish)11:26
cjwatsonand worst case I can fake something up in the emulator11:26
didrockscjwatson: if you need help/testing, I can try on my phone if you have a list of things do try11:54
cjwatsondidrocks: I think http://paste.ubuntu.com/6550937/ should do it - but I should be able to test this in the emulator, I think12:55
didrockscjwatson: oh, you are forced to chown the path when starting click, there is no hook at the boot level to keep the uid stable (not fixed, but stable for a given installation)?12:58
cjwatsoneven if there were it would still be a change from previous images12:58
cjwatsonthe clickpkg user is created with adduser --system as part of the system image12:58
cjwatsonso boot level is too late - the problem is the image has changed12:59
popeyI can test this if someone tells me what I need to do ☻13:00
cjwatsonthanks but not ready yet13:00
didrocksyeah, not sure if in the long term (not possible for that one), but we should have a file stored across upgrade with user <-> uid (same for groups) and reapply it13:00
cjwatsonwell, there's no point storing it across upgrade13:00
cjwatsonlike I say, the users are created on the image builder13:00
popeyok, feel free to ping if/when there's something to test13:00
* popey gets lunch13:00
didrocksyeah, I get your point13:01
cjwatsonit's only a problem for dynamic system users that'll have files created in userdata, which is hopefully not many13:02
cjwatsonand yeah, this is kind of an unfortunate hack, but at least it's simple13:02
=== cjohnston changed the topic of #ubuntu-ci-eng to: Ubuntu CI Engineering Team | Vanguard: cjohnston | Landing instructions: http://paste.ubuntu.com/6292280/ | Known issues: -
=== greyback is now known as greyback|lunch
=== bfiller is now known as bfiller_afk
=== Ursinha-afk is now known as Ursinha
=== Ursinha is now known as Guest48115
=== Guest48115 is now known as Ursula
fginthermorning14:01
=== jdstrand_ is now known as jdstrand
fginthersil2100, meeting?14:02
sil2100fginther: ouch! Though it's next week?14:04
sil2100Joining14:04
fginthersil2100, just an update on progress/issues14:04
=== bfiller_afk is now known as bfiller
=== greyback|lunch is now known as greyback
cjwatsoncould I have a landing slot for ask 217 please?14:34
sil2100Damn, almost burnt my kitchen down14:35
sil2100Another good reason why I shouldn't cook14:36
sil2100That's why I'm eating out most of the time as well14:36
cjwatson(fairly urgently if possible, as I'm told this is a promotion blocker)14:37
sil2100Let me take a look between bites - I'll add it now14:38
sil2100didrocks: ^14:38
didrockscjwatson: sure, please just do14:39
cjwatsonok, thanks, uploading14:39
didrocks(no really need to ask for any promotion blocker)14:39
didrocksthanks cjwatson :)14:39
sil2100cjwatson: thanks for the fix! \o/14:40
didrocksok, I'll exercise now I guess (only time I can find)14:41
didrockstime for migrating from proposed to the archive, lool, do you mind kicking up an image build once click is in the release pocket?14:42
didrockshey lool btw :)14:42
loolsure14:43
loolhey!  :-)14:43
didrocksthanks!14:43
lool0.4.13 I assume14:43
didrockslool: correct! :)14:43
didrocksplars: so we'll need q-jenkins up and operational (if not already) in ~1h30 and all your karma to get image #57 be THE one :)14:44
plarsdidrocks: yep, it's ready to go14:44
didrocksgreat ;)14:44
loolcjwatson: ah!  I remember raising this case to stgraber just before vUDS as something we should check in image builds14:45
lool(UIDs changing across image builds)14:45
loolI guess we could make it system-image's problem to some extent, albeit scanning all filesystems is a bit tricky; or we could have some special UID remapping thing14:46
cjwatsonI'm not expecting it to be a desperately common thing14:46
cjwatsonso while it's a bit kludgy, it doesn't seem terrible to handle it user-by-user14:47
loolcjwatson: did we review potential issues with usbmux and dnsmasq uids changing?14:47
cjwatsontrade-off between complexity required to handle it case-by-case and complexity required to be really clever14:47
loolcjwatson: it's probably fairly easy to fail the image build if etc/passwd changes without a review of the new one as a stop gap to detect the most likely case?14:48
cjwatsonnot really because that requires the image builder having a record of the previous image build14:48
loolwe could have that in the image config14:48
loolexpected-passwd-file14:48
cjwatsonwhich requires somebody keeping track of it, hence more image build failures - I'm not sure it's worth it?14:49
loolwell how will we prevent this from happening in the future?14:49
cjwatsonI don't think this is going to be a common thing14:49
loolthis seems to be a case where just the installation order changed, not even the list of packages14:49
cjwatsonfiles in userdata with ownership that isn't just an ordinary user are going to be really rare14:49
cjwatsonI don't want to add any complexity for dealing with it until we've seen multiple cases, frankly14:50
loolcjwatson: but it could be any private files created by daemons etc.14:50
loollike /var/lib/xyz that we mapped to /userdata14:50
cjwatsonlike I say, if we see multiple real (not hypothetical) cases ...14:51
sil2100fginther: hello! Could you re-paste me the bzr branch again for the docs?14:51
cjwatsonusbmux is used in a udev rule, so won't be persistent across boots14:51
sil2100fginther: it seems I closed the window that I written it in on14:52
fginthersil2100, one moment14:52
cjwatsonI think dnsmasq is only actually used by the dnsmasq package which isn't on touch images - it's just created in dnsmasq-base to simplify the maintainer's life14:53
loolok14:55
=== cjohnston changed the topic of #ubuntu-ci-eng to: Ubuntu CI Engineering Team | Vanguard: cjohnston | Landing instructions: http://paste.ubuntu.com/6292280/ | Known issues: ci.u.c is down
=== cjohnston changed the topic of #ubuntu-ci-eng to: Ubuntu CI Engineering Team | Vanguard: cjohnston | Landing instructions: http://paste.ubuntu.com/6292280/ | Known issues: -
cjwatsonlool: click 0.4.13 is in the archive now per rmadison15:16
cjwatsonin the release pocket, that is15:16
loolyup, kicking a build15:27
loolbuilding15:27
fginthersil2100, lp:ubuntu-ci-services-itself15:33
=== alan_g is now known as alan_g|tea
=== alan_g|tea is now known as alan_g
=== cjohnston changed the topic of #ubuntu-ci-eng to: Ubuntu CI Engineering Team | Vanguard: doanac | Landing instructions: http://paste.ubuntu.com/6292280/ | Known issues: -
rsalvetididrocks: how are we today, can I push ofono & hybris? :-)16:06
rsalvetiit's not even in landing plan yet :-(16:07
rsalvetiadded yesterday to the landing asks16:07
looldidrocks: cdimage image build finished; system-image might still be running16:09
tsdgeosguys, any idea what's wrong in https://jenkins.qa.ubuntu.com/job/autopilot-testrunner-otto-trusty/1382/console ?16:14
tsdgeosseems that it's not getting an ip address?16:14
sil2100rsalveti: hi! I think we still didn't promote an image, sadly we discovered a big blocker in click that slowed us down16:15
sil2100rsalveti: a fix is in and released already, but I guess didrocks won't want to land anything new until this is not finally published16:16
rsalvetisil2100: right, that's fine16:17
rsalvetihopefully the next image will be the promoted one :-)16:17
popeyrsalveti: as i understood it nothing was going into the image until we're all green16:27
didrocksrsalveti: I really hope it will be THE one, yeah ;)16:38
didrocksneed to have tests + dogfooding results first16:38
popeydidrocks: when we expecting it?16:41
popeyguess you're waiting on click first?16:42
popeyoh, 57 is built16:43
didrockspopey: yeah, it's there, waiting on test results now :)16:44
popeyi just reset mine to read-only and realised I now have 5716:44
rsalvetilet me flash 57 :-)16:47
popeyhttp://popey.com/~alan/phablet/device-2013-12-10-164830.png16:48
popeythe font in the address bar looks odd16:48
popeykalikiana_: is the font deliberately compressed like that?16:49
kalikiana_what do you mean by compressed? if this is about font sizing Kaleo is probably the one to ask16:51
popeythe font seems squished compared to previous releases16:52
popeyKaleo: is this font change intentional? http://popey.com/~alan/phablet/device-2013-12-10-164830.png vs http://popey.com/~alan/phablet/device-2013-12-10-165306.png16:54
popeydidrocks: all green for me aside from location, but just because that takes *ages* to get a lock, so hanging my phone out the window now17:19
didrockspopey: don't catch a cold!17:20
didrockspopey: you even tried calling?17:20
popeyyes17:20
popeyboth directions17:20
didrocks(even if I doubt anyone is using a phone like that)17:20
didrocks\o/17:20
popeysee the https://docs.google.com/a/canonical.com/spreadsheet/ccc?key=0Ai33BkOcORLLdE4xLTFtSE80ZkpITXZ3aV85cWtPX2c&usp=drive_web#gid=017:20
popeyits all accurate17:20
robrucyphermox, kenvandine: so for lp:cordova-cli, the deban/copyright file was generated by a script I wrote that searches for and parses package.json files to figure out the copyright. It's not perfect, so some copyright clauses in the file are actually missing. But most of them are good.17:20
didrockspopey: ah, you are the mako line!17:21
didrocks:)17:21
popeyya17:21
cyphermoxah, that answers my question on #ubuntu-desktop then :)17:21
robrucyphermox, i didn't use the tool you suggested, I wrote a 10-line python script to scan & report every license it could find17:22
robrucyphermox, it solved the lintian warning about duplicate fields17:22
=== bfiller is now known as bfiller_afk
robrukenvandine, cyphermox: http://bazaar.launchpad.net/~cordova-ubuntu/cordova-cli/trunk/view/head:/debian/copyright#L13 but now there's some 'blank' license clauses like this oen17:23
cyphermoxrobru: the big problem I have with it is that I'm not sure if it correctly parses as you expect it, as per DEP-517:24
cyphermoxMultiple Files paragraphs are allowed. The last paragraph that matches a particular file applies to it.17:24
cyphermox^ in that sense, some paths match twice or more :/17:24
cyphermoxrobru: what license do you expect the blanks to mean? Public domain?17:26
robrucyphermox, unknown. I expect them to mean "you must manually investigate what license this is, because it could not be programmatically determined"17:26
cyphermoxok, so stuff that still needs to be done17:26
cyphermoxalright :)17:26
robrucyphermox, kenvandine: https://gist.github.com/robru/7894514 this is the script I used to generate this file, so you can see it looks for the 'license' key inside package.json, and failing that it tries some heuristics on a 'LICENSE' file in the same directory as package.json, but it doesn't always work out17:27
robrucyphermox, kenvandine: so there are 744 lines in debian/copyright (not counting license texts), so I say we just split it up into 248-line chunks and each focus on a separate area17:28
kenvandinewow... what a beast!17:29
robrukenvandine, you can do lines 0-248, cyphermox you can do 248-496, and then I'll do the rest17:29
kenvandineok17:29
robrukenvandine, it's the node.js way! :-/17:29
cyphermoxrobru: how did you deal with the jshint licensing problem? evil json license?17:30
robrucyphermox, haven't looked at it yet. not very familiar with that issue.17:30
cyphermoxok17:30
cyphermoxthat was the lintian warning cordova-cli source: license-problem-json-evil node_modules/cordova/node_modules/jshint/src/stable/jshint.js17:30
cyphermoxI'll look into it, seems like it's part of my lines too :)17:31
cyphermoxI'll need to search through debian-devel to get background info on it17:31
robruoh, the 'do no evil' clause. fuck, that clause itself is evil.17:31
kenvandinewow, there is no sign of any sanity in this source17:43
robrukenvandine, nope! but what you're seeing is how the npm tool installs modules, so this is the officially sanctioned node.js way of doing business.17:45
robrukenvandine, cyphermox: shit, I actually found one that doesn't have a license. What do we do with this?17:46
kenvandinestrip it out?17:47
kenvandinei found one that has no source... it's just a package.json file17:47
kenvandinebundlerecurs17:48
cyphermoxhehe17:48
cyphermoxrobru: do you see a license file anywhere? or license info in the files?17:49
cyphermoxrobru: otherwise you'll need to look online to see if there's any way you can figure out what license it really should be... and if it can't be found, it will need to be removed17:49
kenvandineone i found no reference for a license, but when i went to the url linked in the json file, there had been a license file added in master :)17:49
robrukenvandine, so it turns out a lot of them are actually dummy no-op packages that are part of the npm test suite. I would just delete all the stanzas that match files under */npm/test/*, assume they're licensed the same as npm.17:50
kenvandinei've now found 2 that have nothing really17:50
kenvandinethey are in disabled dirs17:50
cyphermoxassuming you find the same files/project online with a license then you'd likely need to update to use those files rather than the ones you already have, since the licensing may have changed due to changes in the file17:50
robrukenvandine, yeah, I found at least 10 like that, just delete the stanza17:50
kenvandinethey are under npm/test/disabled/17:50
kenvandineok17:50
robrucyphermox, yeah, for range-parser, I did 'grep -iR copy' and 'grep -iR licen', it came up with nothing. no mention of licensing in the readme, or in any source files17:51
cyphermoxrobru: ok, I'll take a look too just in case, but it probably will have to be removed17:52
cyphermoxrobru: btw I haven't started with my lines just yet, will soon though17:52
robrucyphermox, oh yeah, upstream git seems to mention MIT license17:52
cyphermoxI'm trying to finish testing an update of ModemManager first17:52
cyphermoxany email in the project file or something?17:52
cyphermoxwe could also email the author to find out for sure17:53
cyphermoxI hope the new MM makes the remainder of my non-working modems work :)17:54
robrucyphermox, https://github.com/visionmedia/node-range-parser#license here we go, yeah MIT17:56
robrucyphermox, kenvandine: ok I did my section and pushed to trunk already.17:56
kenvandinerobru files: */cli/* is ambiguous17:57
kenvandineit's under jshint and ripple-emulator17:57
kenvandinedifferent source17:57
=== alan_g is now known as alan_g|EOD
robrukenvandine, hrm. I guess split it into two stanzas, one saying */jshint/*/cli/* etc?17:58
kenvandineand there is a */ripple-emulator/* and */jshint/* already17:58
robrukenvandine, oh, in that case just drop */cli/* then, assuming it's licensed the same as the parents?17:58
kenvandineah, the license/copyright matches for ripple-emulator17:58
kenvandineso i guess i just need to make this jshint/cli17:58
robrukenvandine, yeah, the key there is that the jshint one is jshint/node_modules/cli, which means that cli is a different module that jshint depends on. The other ones are like npm/doc/cli, it's part of the npm package.17:59
=== bfiller_afk is now known as bfiller
robrukenvandine, how were you checking for ambiguity?18:04
robru(I've just been trying to find licensed for ones that were missing, I wasn't confirming the ones that were already listed)18:04
kenvandinefind . -type d -name FOO18:05
kenvandineand looking in the sources of all the results18:05
cyphermoxright18:05
kenvandinefound one where the author isn't the in the copyright of the actual source, someone else is18:08
robrukenvandine, awesome.18:08
cyphermoxrobru: didn't you expect this for js stuff?18:08
cyphermoxit's typically stuff that people don't think will get reused and don't bother licensing until much later18:09
robrucyphermox, well, I dunno, somebody at some point decided to bet the entire company on this so I was expecting it was going to be a little bit more professional.18:09
cyphermoxahah :)18:10
cyphermoxisn't cordova backed by this large company too?18:10
cyphermoxor was it something else you showed me related to cordova?18:11
robrucyphermox, well it started out as Adobe PhoneGap, but I guess Adobe dropped it? It's just 'Apache Cordova' now.18:12
kenvandineadobe18:12
cyphermoxrobru: also, you should know the desktop team motto:  "Nor rain, nor sleet, nor poorly licensed, humongous monstrosity projects will stop this software engineering from doing his job"18:12
cyphermox;)18:12
robrucyphermox, haha. it's not stopping me! it's just a huge mess18:12
cyphermoxI agree18:13
robrucyphermox, I guess certain release team members will faint when they see this ;-)18:13
cyphermoxbut we'll get though it :)18:13
cyphermoxyeah18:13
cyphermoxor run screaming18:13
robrucyphermox, i mean, the package upload is going to be one thing, but the MIR is going to be the very definition of Fun.18:13
cyphermoxahahha18:13
cyphermoxyou want to MIR this too?18:13
cyphermox:D18:14
robrucyphermox, yeah, of course! it's part of the convergence strategy! this is like the core runtime for cross-platform phone apps, it has to be part of the system by default and it has to be part of the desktop too ;-)18:14
* cyphermox doesn't know if he should cry or laugh, opts to LOL for a while18:15
robrucyphermox, maybe the MIR can wait for next cycle...18:15
robrucyphermox, personally my feeling is that we should not bother MIR'ing phone stuff into the desktop. we should just get the phone images to the point where they can run on desktops nicely, and then just drop the entire desktop seed entirely. MIR'ing everything seems like a ton of extra paperwork for nothing.18:16
cyphermoxwell, there's an usefulness to it18:17
cyphermoxit also serves to assess we can support that stuff for a while without too much loss of sanity, and not too high a body count18:17
robrucyphermox, oh, actually, i just realized: this is just the developer tool, not the runtime. so this part doesn't need to be MIR'd. and I guess the runtime doesn't need to be MIR'd either because the official plan is to just to have each click package vendor it's own runtime.18:18
* robru breathes a huge sigh of relief18:19
cyphermoxguess it's just slightly less horrible that way18:20
kenvandineyikes... "*/examples/* matches tons18:20
robrukenvandine, oops. Probably most of those match parent packages?18:21
robrukenvandine, "find -type d -path '*node_modules/examples*'" matches none, so I guess just delete that stanza18:22
kenvandinewhew18:22
robrukenvandine, in fact, maybe I should strip those from the packages...18:22
cyphermoxwhat do you mean?18:24
cyphermoxoh, the examples18:25
cyphermoxyeah, esp if that reduces the binary size by a bunch, it could be a win18:25
robrucyphermox, yeah, just checking what the size reduction is18:27
robrucyphermox, mmm, negligible (on the order of kb's). 'du -cha' reports the size as '11M' with or without the examples.18:29
cyphermoxboo18:29
kenvandinethe copyright policy says public-domain isn't subject to copyright18:34
kenvandinebut Copyright is a required field18:34
kenvandinei guess i just put public-domain there too18:35
robrukenvandine, which is public domain?18:36
kenvandinecycle18:36
robrukenvandine, does that package excplicitly say public domain? because that's different than if it says nothing.18:37
kenvandinethe source does18:38
cyphermoxyeah we just write public-domain in that case18:38
cyphermoxhttp://dep.debian.net/deps/dep5/18:38
kenvandinerobru, actually online it says public domain18:41
kenvandinebut the version from npm doesn't18:41
kenvandineotherwise the source seems the same18:41
kenvandinelp:~ken-vandine/cordova-cli/licenses18:43
kenvandinerobru, ^^18:43
kenvandinerobru, i left one as FIXME18:43
kenvandinei couldn't find anything18:43
robrukenvandine, whoa, 1986? for real?18:45
kenvandineyup18:45
kenvandine:)18:45
kenvandineand 198918:45
robrukenvandine, impressive to have written javascript back then...18:45
cyphermoxjavascript didn't exist back then18:46
cyphermoxthat's pretty cool still :)18:48
=== Ursula is now known as Ursinha
robrukenvandine, merged, thanks. just waiting on yours, cyphermox. I'm out for breakfast, brb18:49
cyphermoxrobru: ack18:49
robrucyphermox, kenvandine: back19:24
cjwatsonso did that last image work out to be promotable?19:28
cjwatsoneverything sounded good earlier but it's not in trusty yet19:29
popeycjwatson: tests still running19:29
popeylooks good but not 100% http://ci.ubuntu.com/smokeng/trusty/touch/19:30
popey(yet)19:30
cjwatsonimprovement over 32?19:32
popeyyes, absolutely19:34
popey88/85% vs 97/93%19:34
cjwatsonright, but most images since 32 have been numerically better19:34
cjwatsonso I guess we aren't just doing a ratchet?19:35
cjwatsonand more failures than 5619:36
popeyi suspect the failures are dodgy tests which sometimes fail, sometimes  pass19:43
popeyso we have to re-run them19:43
robrucyphermox, have you started the copyright work yet? if you're busy with other things maybe I'll just do it.19:54
cyphermoxworking on it as we speak19:55
cyphermoxjust being thorough19:55
robrucyphermox, ok no worries.20:00
robrucyphermox, thanks20:00
cyphermoxI'm still concerned by the structure, though20:01
cyphermoxlike, the stanzas in debian/copyright although machine-readable, they're not machine-checkable, I think20:02
cyphermoxbecause in theory the last match for a file is what applies, I think it's possibly wrong20:03
cyphermoxbut so far the data is correct though20:03
robrucyphermox, I'm not sure what you mean. What change would be necessary to fix it?20:03
robrucyphermox, the intention was that the stanzas should match loosely, because npm vendors in the same projects multiple times.20:04
cyphermoxrewriting to not just list */$project/* but rather possibly listing each of the instances of the project in subdirectories together20:04
cyphermoxyeah20:04
cyphermoxI understand the intention, it's correct20:04
cyphermoxI just want to check that it will pass review so we don't do this insanity twice :)20:05
robrucyphermox, the problem with using absolute paths is that it's possible it might change at any given time.20:05
cyphermoxyeah20:05
cyphermoxthe repetition of the same package and versions is pretty insane20:05
cyphermoxI wish there was a better way to handle this, but there isn't really one besides removing everything, and reorganizing everything in a flat directory tree with the version numbers and symlinking the hell out of it20:06
cyphermoxthat's assuming even that there were no changes in the files in node_modules for some projects20:06
robrucyphermox, my understanding is that the reason all the modules are duplicated is because different versions are being depended upon.20:07
robrucyphermox, although if there was an automated way for checking duplicated modules and de-duplicating them, I would be all for reducing it.20:07
cyphermoxyeah20:08
cyphermoxit doesn't exist yet20:08
cyphermoxthough it's possible for all the projects that have a project.json20:08
cyphermoxbut let's get this to work in the first place. I'm about halfway done I think20:08
robrucyphermox, my understanding of the node.js module loader is that it just progressively looks further and further up the path, so eg if you had node_modules/foo and node_modules/bar/node_modules/foo that were the same, you could just delete the second one, and it would all still work because it would find the first one instead.20:08
robrucyphermox, well it does "work" in the sense that you can install it, and /usr/bin/cordova runs as expected.20:09
cyphermoxnot sure20:09
cyphermoxthe versions might differ20:09
robrucyphermox, yeah, that's what I mean. if it turned out that the versions were the same, you could just delete the one with the deeper path, and whatever was depending on it would seamlessly find the higher-up one.20:10
robrucyphermox, not sure how we'd check that though. we'd have to scan the whole thing to create a list of every possible node module, and then we'd have to iterate over every pair of same-named modules, and then diff them, and if there was any difference we'd have to preserve them.20:12
cyphermoxyeah20:13
cyphermoxthat's why I mentioned reorganizing in a new structure with version numbers and symlinking to the right one where it's used20:14
robrucyphermox, god, what a nightmare.20:14
cyphermoxthat way "deeper" paths would still get the right version with less duplication20:14
cyphermoxand yeah, also why I say let's just make it work for now ;)20:14
cyphermoxas is, I mean20:14
robrucyphermox, looks like 334 total node modules, 135 unique ones.20:15
robrucyphermox, (the previous numbers I PM'd you were based on package.json files which it turns out has a lot of false positives due to testsuites. these numbers are based on 'folders under node_modules', much more accurate)20:15
robrucyphermox, interesting! so just as a random check, it does look like plist module is duplicated bit-for-bit identically.20:18
robrucyphermox, I think I will write a short script for identifying duplicates and eliminating them, see if it works20:18
cyphermoxok20:20
cyphermoxso, how useful is jshint to cordova again ? :)20:27
robrucyphermox, no idea. something brings it in.20:31
robrucyphermox, I just tried using cordova with the duplicated plist removed, and it seems to be working. you could try deleting jshint and then try to use cordova and see if it breaks (build your own package locally)20:32
robrucyphermox, i'll send you the instructions for running cordova20:32
cyphermoxthanks20:32
cyphermoxI still need to look some more into it (will as soon as I finish the rest) but it really does look to me like it absolutely cannot be shipped20:33
robrucyphermox, well... can't be shipped in debian, right? surely we can get away with it?20:34
robrucyphermox, ok, instructions setn20:41
cyphermoxrobru: nope20:57
cyphermoxif it can't be shipped in Debian it can't be in main or universe20:57
cyphermoxthat does still leave restricted/multiverse, *maybe* but I don't know the details about those20:57
robrucyphermox, alright21:01
cyphermoxseems like there maybe is a reimplementation of jsmin in libv821:02
cyphermoxso I'm assuming there's possibly a way to reimplement jshint in a way that is alright21:02
robrucyphermox, so I was just able to identify 41 cases of two node modules being *identical*, i think that's a strong case for adding deduplication.21:02
cyphermoxI recon a license "I don't care" means public-domain.21:03
cyphermoxok21:03
robrucyphermox, http://paste.ubuntu.com/6553190/ ;-)21:08
cyphermoxversion numbers?21:09
robrucyphermox, those pairs were identified by running 'diff -rq' on them, which means they are bit-for-bit *identical* across all files in all subdirectories.21:09
cyphermoxok21:10
cyphermoxthen it would be good if your script could also extract the version number from package.json21:11
cyphermoxbecause within these "pairs" you're likely to have pairs of the same project name but different version numbers21:11
cyphermoxat least, I manually identified 7 or so copies of one of the projects in my list21:11
cyphermox2 of which where one version, and others were 2 other versions21:12
robrucyphermox, right. that's why I run 'diff -rq'. it confirms that they are completely identical, right down to every typo in every comment. there are *no possible differences*21:12
cyphermoxyes21:13
cyphermoxthe version numbers are still important, otherwise you still won't be able to differentiate things. or it would just be ad-hoc replace where you can21:13
cyphermoxthat wouldn't be much cooler, it would still make it a lot of manual work for you21:13
robrucyphermox, i don't understand what you're even talking about. the version numbers are defined within package.json, and package.json is *in the directory*, which is *confirmed to be identical*21:14
robrucyphermox, they can't possible be different versions because that would show up in the diff21:14
cyphermoxyes21:14
cyphermoxhold on, I'll grab an example21:14
cyphermoxso inherits looks like a pretty good example21:18
cyphermoxyour script has identified a bunch of duplicates21:19
cyphermoxwithin these groups, it would still be good to know the version number so for once you can know that those are all duplicates of the same version21:19
cyphermoxbut then it becomes even more useful if you want to take this one step further and factor out any further duplication: take the other copies of different versions of inherits out in the same way21:20
cyphermoxso I'm just suggesting things here -- you're the maintainer so you get the last word ;)21:20
cyphermoxI'm thinking a structure parallel to cordova/node_modules that has <nodule>/<version> and symlinking that to wherever that nodule is being used21:21
cyphermoxthat way you know for sure that you only have one copy of each nodule and version, and just add a symlink in the right location if project XYZ suddently grows a dependency on ABC21:22
robrucyphermox, hmmm, ok. I like the idea of flattening the heirarchy, that does simplify a lot of the logic of trying to navigate this web of duplicate-pairs21:27
cyphermoxstill, it's going to be painful to do it the first time anyway21:28
cyphermoxand I'm not sure how well it would be seen to do too much frankensteining of a project21:28
robrucyphermox, well, I'll just write a script that does it. in fact, the script I have for finding dupes is already halfway there, since it builds a dict of the locations of all nodules. ;-)21:28
cyphermoxunless cordova is already just about nothing and you pulled everything else manually21:28
cyphermoxin which case I am amazed that you did, and sad for you ;)21:29
robrucyphermox, the branch as it appears is almost entirely pristine; it's a dump of exactly how npm installs the nodules. the only 'work' i did can be seen under debian/ (particularly debian/rules, which shows exactly how node_modules directory is created)21:29
robrucyphermox, ok, I'm gonna do this heirarchy flatting thing, it's the only sane way to handle deduplication I see. but first I'm gonna break for lunch. can you MP your copyright fixes for now?21:31
cyphermoxonce I'm done yeah21:31
cyphermoxsorry it's taking me forever21:31
robrucyphermox, haha, no worries.21:31
cyphermoxbefore you do deduplication let's discuss this in #ubuntu-release?21:31
cyphermoxjust to not start it if they think we shouldn't bother, discuss options, etc.21:32
robrucyphermox, well I can't see the release team preferring a package that contains two of every vendored module...21:32
cyphermoxhehe21:34
cyphermoxme neither, but maybe symlinks aren't great either :)21:34
robrucyphermox, so I haven't created the symlinks yet, but here's what the flat list looks like with version numbers: http://paste.ubuntu.com/6553399/21:52
robrucyphermox, it's depressing how many have 3 or 4 different versions21:54
cyphermoxyeah21:54
robrucyphermox, "yes, we need at least 4 different versions of the library that parses version numbers"21:54
robru(semver)21:55
cyphermoxrobru, check out the homepage link for ./node_modules/plugman/node_modules/npm/test/packages/npm-test-platform/package.json22:25
robrucyphermox, wow, how relevant and informative!22:26
cyphermoxor you know, any other of the npm tests :)22:26
cyphermoxnpm-test-private is really informative too22:26
cyphermox(my feeling about cordova in general)22:29
robrucyphermox, is it wrong that I like Rick Astley? I always watch the whole video whenever somebody rickrolls me.22:30
cyphermoxhahaa22:30
robruI love the dancing bartender. he's so funny! the first shot of him, he's not sure he likes Rick. Kinda gives a questioning snarl. But then he starts doing backflips!!22:30
cyphermoxrobru: https://code.launchpad.net/~mathieu-tl/cordova-cli/copyright/+merge/19847522:54
robrucyphermox, thanks!22:54
cyphermoxand now I'm going offline to have dinner22:55
cyphermoxbbl22:55

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