IRC logs for #buildstream for Thursday, 2018-04-26

*** tristan has joined #buildstream02:58
gitlab-br-botbuildstream: issue #271 ("Assert minimum version of bwrap on host") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/27105:22
gitlab-br-botbuildstream: merge request (tristan/versioneer->master: Use versioneer instead of setuptools_scm) #436 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/43605:28
gitlab-br-botbuildstream: merge request (tristan/versioneer->master: Use versioneer instead of setuptools_scm) #436 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/43605:43
tristanhttps://gitlab.com/BuildStream/buildstream/merge_requests/436 Code quality degrated on 77 points !05:48
tristanjjardon, ^^^ :)05:48
tristanthat is kinda cute05:48
gitlab-br-botbuildstream: merge request (tristan/uniform-junction-errors->master: Uniform junction errors) #437 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/43705:50
gitlab-br-botbuildstream: merge request (tristan/uniform-junction-errors->master: Uniform junction errors) #437 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/43706:05
gitlab-br-botbuildstream: merge request (tristan/dont-install-tests->master: setup.py: Stop installing test cases.) #438 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/43806:13
gitlab-br-botbuildstream: merge request (tristan/dont-install-tests->master: setup.py: Stop installing test cases.) #438 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/43806:37
*** ChanServ sets mode: +o tristan06:52
*** tristan changes topic to "/BuildStream 1.1.3 is out ! | https://gitlab.com/BuildStream/buildstream | Docs: https://buildstream.gitlab.io/buildstream | IRC logs: https://irclogs.baserock.org/buildstream | Roadmap: https://wiki.gnome.org/Projects/BuildStream/Roadmap"06:52
*** tristan has quit IRC06:56
*** bochecha_ has joined #buildstream07:39
*** bochecha has left #buildstream07:39
valentindThe case of bzr for mirror namespaces is a bit special. The reference is just number not a hash. So if we have a case where history has been rewritten and we have several mirrored repositories, when we look for a revision, there is no way to well identify which one it is, and it will always take it from the oldest repository.07:44
*** bochecha_ has quit IRC07:53
*** bochecha_ has joined #buildstream07:53
*** bethw has joined #buildstream08:06
*** toscalix has joined #buildstream08:08
*** dominic has joined #buildstream08:31
jjardonTristan :)08:43
jjardonCongrats for the release all!08:43
* jjardon wonders why the version at buildstream.gitlab.io/ has not changed08:44
*** jonathanmaw has joined #buildstream08:51
paulsherwoodis bzr still a thing?08:51
jmacYes08:53
*** bochecha_ has quit IRC08:58
*** bochecha_ has joined #buildstream09:03
jmacHaving said that, I can't find any projects still using it for primary source control09:03
paulsherwoodi had thought canonical de-funded but maybe i misunderstood09:04
dominicheh, it's apparently a mix of charity and mugger09:04
paulsherwood?09:04
dominicoops, w/w09:05
bochecha_paulsherwood: canonical stopped funding it, yes09:05
bochecha_but most project on Launchpad still use bzr09:05
bochecha_not all have moved to Git09:06
paulsherwoodbochecha_: ack, thanks09:06
* paulsherwood has been telling people that the VCS war was won nearly a decade ago, but that's clearly an oversimplification :)09:06
bochecha_it's not… Git won a while ago09:07
bochecha_some people just haven't received the memo yet ;)09:07
paulsherwoodlol09:07
bochecha_bzr is also python2-only iirc, so it will get removed from distros eventually :P09:07
bochecha_that's going to be fun times, when some upstream maintainers of active projects can't pull/push their code any more >_<09:07
* paulsherwood wonders whether that will be before or after the 2038 fun times09:08
jmacThere are plenty of important projects still officially using SVN, and at least one on BitKeeper09:10
bochecha_jmac: SVN is still maintained upstream though09:10
*** tristan has joined #buildstream09:18
valentindStrangely when I run tests on a branch I get failures in get_bst_version(), because it tries to read "0+untagged" as an integer.09:26
valentindtristan, you were not here so I will repeat what I said before: The case of bzr for mirror namespaces is a bit special. The reference is just number not a hash. So if we have a case where history has been rewritten and we have several mirrored repositories, when we look for a revision, there is no way to well identify which one it is, and it will always take it from the oldest repository.09:28
tristanvalentind, I see09:30
tristanvalentind, for bzr I see... it's indeed hard to authenticate, not sure what we can practically do about it09:30
tristanin the absence of a solution, no solution is acceptable :)09:31
tristaneven if there is a complex possible solution, no solution is also acceptable; these are things we can hopefully improve over time09:31
tristanvalentind, what is the failure you get for get_bst_version() ?09:31
tristanI had fixed a test before pushing the migration of setuptools_scm -> versioneer this morning09:32
tristanit's certainly related09:32
tristanbut afaics my tests have been passing09:32
valentind  File "/home/valentin/repos/buildstream/buildstream/utils.py", line 475, in get_bst_version09:33
valentind    return (int(versions[0]), int(versions[1]))09:33
valentindValueError: invalid literal for int() with base 10: '0+untagged'09:33
tristanHow do I reproduce this ?09:34
valentindWhen running bst installed, it works fine. But when running from the tests it fails.09:34
valentindI just have a branch, and then I run the tests, e.g. 'python3 setup.py test --addopts "tests/sources/zip.py::test_no_ref"'09:35
tristanUmmm09:35
tristanHmmm09:35
tristanvalentind, so I have to create a branch, make a modification, and then run tests ?09:35
valentindtristan, This I am not sure.09:36
* tristan is just unsure how you get "+untagged"09:36
tristanI have been branching a few times and running tests, that is for sure09:36
valentindNo, actually it fails for me on master09:37
valentindWhen I run "python3.6 setup.py build"09:37
valentindI get at the end:09:37
valentindset build/lib/buildstream/_version.py to '0+untagged.2296.g06ae434'09:37
tristan3.6 !09:39
tristanhmm, I hope this is not python version related, that would be weird09:40
tristanIf I run `python3 setup.py build`, I get: set build/lib/buildstream/_version.py to '1.1.3'09:41
valentindI think it is because I have no tag in my clone.09:41
tristanat the end :-/09:41
tristanI did push the tag though right ?09:41
tristanI recall pushing the tag09:41
valentindYes, I did a git fetch.09:41
tristanand anyway, you should be getting 1.1.2 if not09:41
valentindProblem is when you just do "git pull origin master".09:41
valentindThen you do not have the tags.09:41
tristanErrrm09:42
* skullman tends to `git remote update`09:42
tristanOk, is it typical that this actually happens ?09:42
* tristan does `git pull --rebase` usually09:42
tristanvalentind, I think in this case, we probably need an error09:42
tristanvalentind, would be good if you could file an issue about this please09:43
valentindOK09:43
tristanI would say that, either you should have the git clone with bells and whistles... or you should have a dist tarball, but there is no point to support something in between09:44
*** aday has joined #buildstream09:44
valentindfor tag in $(git tag); do git tag --delete ${tag}; done09:44
tristan(so probably we need a better runtime error)09:44
valentindTo reprodocue09:44
tristanhaha09:44
tristanno thanks, I really believe you09:44
tristanvalentind, a better reproduce is: "Clone buildstream like this: git ..."09:45
gitlab-br-botbuildstream: issue #380 ("Uncaught ValueError when tags are not pulled into local repository") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/38009:52
juergbijonathanmaw: I'm a bit confused with !317. For tracking we have redirection in _get_elements_to_track() and in track(). Do we really need it in the latter as well? Isn't this already covered by the former?09:55
*** bethw has quit IRC09:57
juergbiIn the former it's only for deps none and without redirection message but the combination still confuses me09:57
jonathanmawjuergbi: I'm not sure. It's possible that it's because of `bst workspace open --track`, but I'll have to check the details09:59
* jonathanmaw has a meeting now, will look at it when I get back09:59
juergbiok10:00
jennisHi guys, I've written a test which builds two 5 MB artifacts and pushes to remote cache with a 12 MB quota. Element 1 is then removed from the local cache. Element1 is then pulled from the remote cache. A third (5 MB) element is then built and pushed to the remote cache. Ideally, considering LRU, we would like Element1 and Element3 to remain in the cache.10:20
jennisHowever, `bst pull` does not update the mtime of the artifact, and this is what we use to sort LRU artifacts10:21
jennisAlso, invoking `bst pull` eventually ends up with OSTree.Repo.pull being executed from the client side10:21
jennisSo I'm struggling to find a way to update the mtime of an artifact on the server just before it is pulled10:22
jennisAny ideas would be appreciated10:22
juergbijennis: iirc, we discussed that we won't be able to implement LRU for this initial solution. it will be least recently pushed/modified instead10:23
juergbiit's still much better than just wiping the whole artifact cache10:23
juergbiwith CAS we will have more control and should be able to switch to LRU relatively easily10:23
jennisOk, that's what is currently implemented then10:24
jennisIt is much better10:24
jennisI just worry this will end up with more rebuilds of expensive artifacts10:25
jennise.g. a base system which may be pulled frequently (this would be top of the least recently pushed list)10:25
jenniswould likely be*10:25
juergbiyes, this is indeed a concern, but LRU is not easy to accomplish with OSTree and we need a solution for running out of disk space now10:26
juergbiLRU will be a follow up task, but we might defer it until after the switch to CAS10:26
jennisOk, I will not deal with that now then10:27
*** bethw has joined #buildstream10:27
jennisjuergbi, would you like me to leave the test (commented out) in the MR?10:27
jennisSo that when we do come to dealing with it, we don't need to write it again...10:27
juergbiWe should definitely not throw it away but not sure how to handle it best. We could also put it in a separate branch but we must not forget about it. We could link to the branch from the gitlab issue10:29
jennisok, I'll make a separate branch and link it. I'll also save it locally and hopefully remember when I see this come up in the future :p10:32
tlaterjuergbi, jennis: Use @pytest.skip or @pytest.xfail10:52
tlaterThat's literally the purpose of those :)10:52
juergbixfail would make sense. assuming we handle those properly in CI etc.10:54
tlaterThey are handled by pytest, so we *should*. Interesting experiment in either case.10:56
tlaterjennis: Btw, to alleviate your concerns of removing expensive artifacts; once a client has downloaded an artifact it will keep reusing it, because it will be cached locally.11:14
tlaterSo in the absolute worst case, you will end up just building that artifact once for each user.11:14
tlaterWhich isn't horrifyingly bad, IMO.11:14
jonathanmawjuergbi: I'm still working on figuring out exactly what's happening, but it looks like the redirection in Pipeline.track() isn't redundant. When I remove it, I'm seeing tests failing because elements that weren't scheduled for tracking are ending up in a track queue11:21
tristanDo I understand that remote expiry is coming soon to a cache server near me ?12:50
tristanStarring James Ennis and the Artifacts ?12:50
tristanThis is *awesome*12:51
tristanUntracked bugfix of the day: setuptools_scm was only ever updating the installed version at setup.py install time, which happens almost never for the majority of our users; who report issues and "helpfully" indicate the version they are using12:53
tristanreplaced with similar thing called "versioneer", and that is fixed, snuck into 1.1.312:54
tristanupgrades also smoothly start using the thing, so upgrading to 1.1.3 with `git pull` requires no re-install12:54
*** xjuan has joined #buildstream12:57
tristanmilloni, By the way... I noticed that you dont have a name when doing the release notes this morning (which would be in the middle of the night in european places), wanted to ask you but you were away12:58
tristanmilloni, I would recommend using `git config` such that your commits have your name on them :)12:59
tristanof course, I have no qualms if you prefer to remain an anonymous (or pseudonymous) contributor :)12:59
tristanmilloni the mysterious :)13:00
jennistristan, yes :)13:02
tristanjennis, awesome, we've been seeing 20hour build pipelines in gnome-build-meta13:03
tristanwith remote artifact expiry we can start to actually *enable* remote caching13:04
tristancoupled with junction.refs separation, means we will also build less often the freedesktop-sdk project13:04
tristanwhich should bring builds down to the expected norm13:04
skullmanGitLab seems to be unusually slow today13:15
tristanSounds familiar :)13:15
tlaterskullman: They are actually having infrastructure issues13:15
tlaterOr, at least, someone mentioned they did earlier this morning13:16
skullmangood to know it's not just me then13:16
tristanit seems to vary from project to project, too13:19
tristanfreedesktop-sdk was noticeably more laggy than buildstream last night13:21
tristanlast couple of weeks have been difficult, but it's certainly an improvement over last year13:22
tristanwhere it would be unreachable for almost a day, rather frequently13:23
*** tristan has quit IRC13:40
*** xjuan has quit IRC13:41
*** tristan has joined #buildstream14:01
jonathanmawjuergbi: after looking into it in a bit more detail, the duplication in Pipeline.track() and Pipeline._get_elements_to_track() is currently required because _get_elements_to_track only redirects if mode=PipelineSelection.NONE. The simple (but confusing) way to fix this would be to pass `track_selection="none"` into the args in cli.py:workspace_open. The proper way is probably to add the arg "redirect_track_elements" to Pipeline.initialize() (an14:02
jonathanmawd all the intervening function signatures up to the cli)14:02
*** cs_shadow has joined #buildstream14:06
juergbijonathanmaw: why do you think setting track_selection=PipelineSelection.NONE for workspace_open would be wrong?14:09
juergbiwe don't want any tracking of dependencies there, do we?14:10
jonathanmawjuergbi: true, but that's separate from its intended purpose14:10
juergbito me this seems closely related14:11
juergbiredirection is pointless when anyway tracking dependencies as potential source elements will be included anyway14:12
juergbiit's only needed when we don't include dependencies14:12
juergbiand we don't want to include dependencies for tracking in workspace open, and redirection handling should work properly if we specify it that way14:13
juergbiam I misunderstanding something?14:13
jonathanmawmostly, I'm worried that someone'll look at workspace_open() for example, and wonder why I bother to explicitly set track_selection when it'll only be operating on a single element14:15
jonathanmawbut I guess that's what comments are for14:15
juergbiyes, appropriate comments are always good14:15
juergbito me it seems odd to use .ALL there in the first place despite only operating on a single element14:16
juergbiit just doesn't seem odd right now because it's the default value of the parameter14:16
*** bochecha_ has quit IRC14:42
*** bochecha_ has joined #buildstream14:46
gitlab-br-botbuildstream: merge request (372-allow-queues-to-run-auxilliary-jobs-after-an-element-s-job-finishes->master: WIP: Resolve "Allow queues to run auxilliary jobs after an element's job finishes") #433 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/43314:50
tristanjonathanmaw, juergbi; not getting into the details but; please keep in mind that _pipeline.py is IMO a mess and needs separation, it being very confusing to follow is most probably a huge source of confusion here14:57
tristanselection of elements from the graph needs to be decoupled from the methods which execute the scheduler14:58
juergbiindeed. I'm trying to avoid complicating it further14:58
tristanyeah, I'm not getting into details but that is indeed the impression I'm getting14:59
tristan:)14:59
tristanjuergbi, thanks :)14:59
tristanwe have a bit of a crooked foundation there, lets try not to "build on it"14:59
juergbiyes, I think with the latest plan we will no longer pile further on top, even though we also don't do any untangling of existing stuff as part of this MR15:01
tristangood idea :)15:02
tristanI have some notes and a bit of a start towards a refactor15:02
tristanI started by just listing the operations we do for lists of elements15:02
juergbigreat, maybe we should put this in an issue or so15:03
tristanIf I can split that into a separate thing, then maybe I can get a higher level caller to make the decision of what to process, and feed that into existing codepaths15:03
tristanYeah, we could issue it15:04
* tristan is in off mode for the moment15:04
tristanbut it's in my foreground processes anyway, I wont forget without an issue15:04
juergbiok15:04
tristaninteresting new thread on buildstream-list, too15:04
juergbiI hope we'll also get to moving away from fork at some point15:05
juergbipackage managers?15:05
tristanyeah, I wouldnt necessarily named it as such15:05
tristanbut it's an important unsolved problem15:05
tristanpip,npm,cargo,etc15:06
juergbiyes15:06
*** xjuan has joined #buildstream15:19
gitlab-br-botbuildstream: merge request (jennis/136-clean-remote-cache->master: WIP: jennis/136 clean remote cache) #421 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/42115:32
*** xjuan has quit IRC15:39
millonitristan, i'll be known as milloni :)15:43
gitlab-br-botbuildstream: merge request (jennis/136-clean-remote-cache->master: WIP: jennis/136 clean remote cache) #421 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/42115:49
gitlab-br-botbuildstream: merge request (jennis/136-clean-remote-cache->master: WIP: jennis/136 clean remote cache) #421 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/42115:54
gitlab-br-botbuildstream: merge request (jennis/136-clean-remote-cache->master: WIP: jennis/136 clean remote cache) #421 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/42115:56
gitlab-br-botbuildstream: merge request (jennis/136-clean-remote-cache->master: WIP: jennis/136 clean remote cache) #421 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/42115:57
gitlab-br-botbuildstream: merge request (135-expire-artifacts-in-local-cache->master: WIP: Resolve "Expire artifacts in local cache") #347 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/34716:23
gitlab-br-botbuildstream: merge request (372-allow-queues-to-run-auxilliary-jobs-after-an-element-s-job-finishes->master: WIP: Resolve "Allow queues to run auxilliary jobs after an element's job finishes") #433 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/43316:24
*** xjuan has joined #buildstream16:29
gitlab-br-botbuildstream: merge request (372-allow-queues-to-run-auxilliary-jobs-after-an-element-s-job-finishes->master: WIP: Resolve "Allow queues to run auxilliary jobs after an element's job finishes") #433 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/43316:30
*** Prince781 has joined #buildstream16:31
gitlab-br-botbuildstream: merge request (135-expire-artifacts-in-local-cache->master: WIP: Resolve "Expire artifacts in local cache") #347 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/34716:31
gitlab-br-botbuildstream: merge request (jennis/136-clean-remote-cache->master: WIP: jennis/136 clean remote cache) #421 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/42116:37
gitlab-br-botbuildstream: merge request (jennis/136-clean-remote-cache->master: WIP: jennis/136 clean remote cache) #421 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/42116:38
*** bethw has quit IRC16:49
*** jonathanmaw has quit IRC17:01
*** dominic has quit IRC17:02
*** toscalix has quit IRC17:03
*** toscalix has joined #buildstream17:08
*** toscalix has quit IRC17:09
*** Prince781 has quit IRC18:59
*** Prince781 has joined #buildstream19:02
*** Prince781 has quit IRC19:18
*** Prince781 has joined #buildstream19:23
*** Prince781 has quit IRC19:24
*** bochecha_ has quit IRC19:42
*** tristan has quit IRC19:58
*** Prince781 has joined #buildstream20:27
*** bethw has joined #buildstream20:42
*** bethw has quit IRC20:46
*** aday has quit IRC21:46
*** aday has joined #buildstream21:49
*** aday has quit IRC22:00
*** Prince781 has quit IRC22:00
gitlab-br-botbuildstream: merge request (378-make-bst-here-more-flexible->master: WIP: Resolve "Make `bst-here` more flexible") #439 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/43922:41
*** xjuan has quit IRC22:47
gitlab-br-botbuildstream: merge request (378-make-bst-here-more-flexible->master: WIP: Resolve "Make `bst-here` more flexible") #439 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/43923:37
gitlab-br-botbuildstream: merge request (378-make-bst-here-more-flexible->master: Resolve "Make `bst-here` more flexible") #439 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/43923:40

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