Monday, 2018-12-17

*** bobh has joined #openstack-release01:44
*** oanson has quit IRC01:59
*** dave-mccowan has joined #openstack-release02:07
*** hongbin has joined #openstack-release02:11
*** hongbin has quit IRC02:28
*** bobh has quit IRC02:37
*** dave-mccowan has quit IRC02:47
*** bobh has joined #openstack-release02:49
*** hongbin has joined #openstack-release02:50
*** dangtrinhnt has quit IRC03:21
*** lbragstad has joined #openstack-release03:26
*** ykarel has joined #openstack-release03:43
*** udesale has joined #openstack-release03:49
*** armax has quit IRC03:57
*** bobh has quit IRC04:12
*** ricolin has joined #openstack-release04:31
*** hongbin has quit IRC04:37
*** ykarel has quit IRC04:40
openstackgerritJohn Dickinson proposed openstack/releases master: swift 2.20.0 release  https://review.openstack.org/62548304:58
*** ykarel has joined #openstack-release05:01
*** ykarel has quit IRC05:10
*** ykarel has joined #openstack-release05:12
*** ekcs has quit IRC06:55
*** jtomasek has joined #openstack-release07:32
*** jtomasek has quit IRC07:33
*** jtomasek has joined #openstack-release07:33
*** oanson has joined #openstack-release07:34
*** e0ne has joined #openstack-release07:35
*** e0ne has quit IRC07:39
*** dangtrinhnt has joined #openstack-release07:48
*** ykarel is now known as ykarel|lunch07:58
*** pcaruana has joined #openstack-release08:18
*** witek_ is now known as witek08:27
*** witek has quit IRC08:35
*** ykarel|lunch is now known as ykarel08:39
*** hberaud|gone is now known as hberaud08:39
*** alexchadin has joined #openstack-release08:47
*** jpich has joined #openstack-release09:02
*** shardy has joined #openstack-release09:04
*** witek has joined #openstack-release09:08
*** ricolin has quit IRC09:10
*** ssbarnea|rover has joined #openstack-release09:47
*** e0ne has joined #openstack-release10:02
*** lbragstad has quit IRC10:10
*** slaweq has joined #openstack-release10:20
slaweqhi release team, can You take a look at https://review.openstack.org/#/c/625363/ - I need this new release a bit. Thx in advance for Your help :)10:21
*** aojea has joined #openstack-release10:37
*** luizbag has joined #openstack-release10:46
*** electrofelix has joined #openstack-release10:52
*** hberaud is now known as hberaud|lunch10:56
*** udesale has quit IRC11:10
*** e0ne has quit IRC11:31
*** hberaud|lunch is now known as hberaud11:50
*** luizbag has quit IRC11:56
*** luizbag has joined #openstack-release11:58
*** hberaud has quit IRC12:00
*** hberaud has joined #openstack-release12:01
*** bobh has joined #openstack-release12:34
*** bobh has quit IRC12:38
*** udesale has joined #openstack-release12:39
*** e0ne has joined #openstack-release12:47
*** bobh has joined #openstack-release12:53
*** e0ne has quit IRC13:11
*** e0ne has joined #openstack-release13:14
*** bobh has quit IRC13:16
*** luizbag has quit IRC13:18
*** dave-mccowan has joined #openstack-release13:24
*** alexchadin has quit IRC13:24
*** luizbag has joined #openstack-release13:30
*** e0ne has quit IRC13:42
*** dave-mccowan has quit IRC13:42
*** e0ne has joined #openstack-release13:45
*** pcaruana has quit IRC13:50
*** lbragstad has joined #openstack-release13:58
*** lbragstad has quit IRC13:59
*** lbragstad has joined #openstack-release14:04
*** pcaruana has joined #openstack-release14:05
*** dave-mccowan has joined #openstack-release14:06
*** mriedem has joined #openstack-release14:08
*** bobh has joined #openstack-release14:09
*** dave-mccowan has quit IRC14:11
*** bobh has quit IRC14:12
*** bobh has joined #openstack-release14:13
*** bobh has quit IRC14:31
dmelladoSame here for this ;) https://review.openstack.org/#/c/624341/14:40
dmelladoI've added a few folks but I'd totally use some reviews! thanks!14:41
dmelladoevrardjp: o/ do you have super-powers here? ;)14:41
*** bobh has joined #openstack-release14:48
*** mlavalle has joined #openstack-release14:51
*** bobh has quit IRC14:52
evrardjpI do not :) Will still review14:56
*** toabctl has quit IRC14:57
*** toabctl has joined #openstack-release14:57
*** beekneemech is now known as bnemec15:00
*** e0ne has quit IRC15:02
*** bobh has joined #openstack-release15:03
*** e0ne has joined #openstack-release15:06
dmelladothanks!15:07
*** ykarel is now known as ykarel|away15:26
openstackgerritMerged openstack/releases master: Release os-ken 0.3.1  https://review.openstack.org/62536315:28
*** pcaruana has quit IRC15:29
*** ykarel|away has quit IRC15:35
openstackgerritJohn Dickinson proposed openstack/releases master: swift 2.20.0 release  https://review.openstack.org/62548315:42
*** hberaud is now known as hberaud|afk15:44
*** pcaruana has joined #openstack-release15:51
*** ykarel|away has joined #openstack-release15:52
*** slaweq has quit IRC15:54
*** armax has joined #openstack-release15:55
openstackgerritMerged openstack/releases master: Release Kuryr-Kubernetes 0.6.0  https://review.openstack.org/62434115:56
*** udesale has quit IRC15:57
dhellmanndmellado , slaweq: today is my review day, so when I finish up a few tc-related tasks I'll be taking a look at releases15:59
dmelladodhellmann: smcginnis already got my patch in, thanks in any case!16:00
dmelladothanks smcginnis! ;)16:00
dhellmannsmcginnis : please save some releases for me to use for onboarding diablo_rojo later today :-)16:00
smcginnisdhellmann: Will do!16:00
*** aojea has quit IRC16:07
*** ykarel|away is now known as ykarel16:12
*** hberaud|afk is now known as hberaud16:18
*** N3l1x has joined #openstack-release16:23
*** N3l1x_ has joined #openstack-release16:23
*** pcaruana has quit IRC16:28
*** aojea has joined #openstack-release16:39
*** aojea has quit IRC16:51
*** jtomasek has quit IRC17:21
*** jpich has quit IRC17:23
*** ykarel is now known as ykarel|away17:37
*** e0ne has quit IRC17:46
*** diablo_rojo has joined #openstack-release17:54
*** ykarel|away has quit IRC18:25
*** ekcs has joined #openstack-release18:26
*** armstrong has joined #openstack-release18:30
*** electrofelix has quit IRC18:32
*** hberaud is now known as hberaud|gone18:34
armstrong@dhell: Hello will the on-boarding training happen here? of which media?18:37
*** e0ne has joined #openstack-release18:42
*** e0ne has quit IRC18:46
*** mriedem has quit IRC18:48
*** luizbag has quit IRC18:49
*** mriedem has joined #openstack-release18:51
dhellmannarmstrong : here in channel to start, and then we'll see whether we want to set up a hangout or other video chat18:51
dhellmanndiablo_rojo , armstrong : I have an unexpected meeting right now, which should be wrapping up but I need to find a bit of food so I will be a few minutes late18:52
armstrongok18:52
dhellmannand finding food likely means no video :-)18:52
armstronghahaha i know right18:55
diablo_rojodhellmann, no problem18:56
* diablo_rojo thinks it would be entertaining if dhellmann tried to eat BBQ ribs while teaching her release things18:57
*** shardy has quit IRC18:58
fungithat would be quite the feat19:01
diablo_rojofungi, hence its entertainment value19:01
*** e0ne has joined #openstack-release19:01
fungii just finished a larger pot of crab gumbo than i probably should have consumed19:02
* diablo_rojo has consumed 21 grams of chicken jerkey so far today19:02
armstrong@fungi: that is fun19:02
diablo_rojofungi, homemade I would guess?19:02
fungiyeah, though i added some prickly pear and ghost pepper hot sauce i picked up from a local source over the weekend19:03
fungithat stuff is evil-good19:03
diablo_rojoHa ha ha I wouldn't know. Too spicy for me.19:03
*** luizbag has joined #openstack-release19:07
prometheanfirea friend just made some mango/reaper jelly19:08
prometheanfirehad some of his strawberry/reaper stuff, was good19:09
* dhellmann returns19:11
dhellmanndiablo_rojo : today's lunch is a deconstructed burrito, because ribs are across town19:12
diablo_rojodhellmann, 'deconstructed'..have you been watching a lot of chopped or cutthroat kitchen?19:12
dhellmannso, who's hanging around waiting for this onboarding chat?19:13
armstrongme19:13
dhellmanndiablo_rojo : in a bowl instead of a tortilla because callories19:13
dhellmannI have some basic team stuff I can share, and then I thought we could go through a couple of reviews19:14
dhellmannbefore we do that, does anyone have any specific questions they want to have answered today?19:14
diablo_rojonot really? I've read though a ton of the docs and whatnot and nothing has raised questions so far19:15
dhellmannok, great19:15
diablo_rojoit just seems... weirdly easy?19:15
dhellmannthat's the idea :-)19:15
armstrongI will likely have questions as we go on19:16
dhellmannsure, I was more thinking if anyone had specific goals like wanting to know how the release jobs work or something19:16
*** luizbag has quit IRC19:16
diablo_rojoNothing like that at this point.19:16
dhellmannI think it's best to start by focusing on the start of the workflow, with the releases repo first19:16
dhellmannbut just in case..19:16
dhellmannok, let's go then19:16
diablo_rojoI think seeing someone review patches is the thing I want to see most. Thrilling I know.19:17
dhellmannat the start of each cycle the team meets up at the ptg/summit/whatever and plans out any major work we're going to do, just like all the other teams19:17
dhellmannwe've been using storyboard for that lately, but did sometimes use etherpads19:17
dhellmannduring the cycle we also use a "tracking" etherpad with sections for each week to help us keep up with what to do during the cycle19:17
dhellmannthe stein pad is in https://etherpad.openstack.org/p/stein-relmgt-tracking19:18
dhellmannyou've seen that already from the meetings19:18
dhellmannwe populate that with steps based on the process outline, which is documented at https://releases.openstack.org/reference/process.html19:18
dhellmannnone of that is likely new to either of you, so I won't go through it in depth unless you have questions about it?19:19
armstrongI am fine so far19:19
dhellmanna few other bits of documentation we have are the user-focused stuff in the project team guide: https://docs.openstack.org/project-team-guide/release-management.html19:19
diablo_rojoI'm keeping up so far too :)19:20
dhellmannand the reviewer guide in the releases repo https://releases.openstack.org/reference/reviewer_guide.html19:20
diablo_rojoYeah thats one of the things I've been looking at19:20
dhellmannthe reviewer guide is something we wrote based on the onboarding discussions I had with Anne, so we're probably going to cover a lot of the same stuff today19:20
dhellmannat the top of the tracking etherpad you'll find a link to a gerrit dashboard query that makes it easy to organize your release reviews19:21
dhellmannhttp://tiny.cc/a1mkwy19:21
dhellmannthat has sections for each cycle, as well as our tools19:21
diablo_rojoA beautifully organized review inbox19:22
dhellmannthere are basically 3 types of release reviews to consider19:22
dhellmannthe current series, stable series, and independent19:22
dhellmannwhere independent means not tied to a series and using the "independent" release model19:22
diablo_rojoMakes sense.19:23
dhellmannlet's take a look at an independent review first19:23
dhellmannkarma-subunit-reporter --  https://review.openstack.org/#/c/625249/19:23
dhellmannrelease requests have 3 jobs run to build the docs, apply hard validation rules, and produce the report for the human reviewer19:24
dhellmannthe docs job almost never fails, but you never know so...19:24
dhellmannin this case the validate job has failed, and we'll look at that in a second19:24
dhellmannthe list-changes job is the one with the report for the human reviewer19:25
dhellmannI'm going to keep going, so  just jump in with questions if you have them19:25
dhellmannif you open up the validate job log link http://logs.openstack.org/49/625249/1/check/openstack-tox-validate/2596f89/ and then click on the "tox" directory you'll see a "validate-request-results.log" file19:26
armstrongok, for the human review we see two reviewers right?19:26
dhellmannthat file is the nice human readable report for the job19:26
diablo_rojoWill do. None so far19:26
dhellmannarmstrong : well, you're the human reviewer when you're reading the log :-)19:26
dhellmannyou can basically ignore the validate job if it passes, but if it fails you might have to help the author of the patch understand why it failed19:26
smcginnisHah, I always just scan through job-output. Didn't even know it also went to its own log. :)19:26
dhellmannI got tired of parsing that long file or clicking 15 times in the ara report to get it19:27
dhellmann:-)19:27
diablo_rojosmcginnis, learn something new every day I guess :)19:27
dhellmannyou can read through the validation report, but there's a summary at the bottom that just includes the warnings and errors19:27
smcginnisIndeed19:27
dhellmannso if you scroll all the way down you'll find what's wrong with this request19:27
dhellmannthis is an example of language-specific validation19:28
diablo_rojoNot being able to find 0.0.519:28
dhellmannthe package being released is javascript, I think19:28
diablo_rojo?19:28
dhellmannand those packages have the version number inside the file19:28
dhellmannso the file and the tag have to match19:28
dhellmannin this case, the error is that ttx is trying to tag 0.0.5 but the file has 0.0.419:28
armstrong@diablo_rojo look at the bottom right19:29
dhellmannthe reason behind that discrepancy is interesting for this patch, and that's why I picked it19:29
dhellmannhere we're importing the history of an existing package19:29
dhellmannit already has 4 releases, and has been tagged 4 times19:29
dhellmannone of those tags is v0.0.4 and that doesn't match our required pattern because of the prefix "v"19:29
smcginnisI guess one benefit of job-output is you can link to timestamps...19:30
smcginnishttp://logs.openstack.org/49/625249/1/check/openstack-tox-validate/2596f89/job-output.txt.gz#_2018-12-14_13_10_27_67778719:30
armstrong@dhellmann is that the meaning of the 0.0.4 ?19:30
dhellmannso we were going to re-tag that same commit as 0.0.5 to differentiate it from the old v0.0.4 package19:30
dhellmannarmstrong : yes, the file has 0.0.4 because that's the valid way to express the version and it was tagged v0.0.4 because the tagger did it by hand and did not realize that was a mistake19:30
armstrongok19:31
openstackgerritMatt Riedemann proposed openstack/releases master: nova: release rocky 18.1.0  https://review.openstack.org/62569619:31
dhellmannnow, because of this validation rule we realized we cannot retag it as 0.0.5 because they won't match19:31
armstrongok19:31
diablo_rojoOkay I think I follow all that, not sure I would have figured it out completely on my own, but I am still with you dhellmann :)19:31
dhellmannyeah, this one is a bit advanced -- right into the deep end of the pool :-)19:32
dhellmannok, let's look at a stable review next19:32
dhellmannstable pike ironic release: https://review.openstack.org/#/c/624472/19:32
diablo_rojoWait a sec.19:32
dhellmannok19:33
diablo_rojoTrying to words..19:33
diablo_rojoAnd read comments qucik19:33
diablo_rojoquick19:33
dhellmannsmcginnis : yes, good point on the timestamps. I don't usually find that very useful for these logs, but it can be easier to link to specific lines19:33
diablo_rojoSo it needs to make it 0.0.4? instead of 0.0.5?19:34
dhellmannah, yes, right19:34
diablo_rojoOkay I think I got it.19:34
diablo_rojoFeel free to continue :)19:34
dhellmannwe considered 2 options to fix this19:34
dhellmanneither make the tag match, or skip the tag entirely19:34
dhellmannmaking the tag match will require making a new release from the same commit19:34
dhellmannskipping it will mean we leave some version history out of the releases.o.o web site19:35
diablo_rojoskipping entirely was what was done in the first patchset? 0.0.5?19:35
diablo_rojoBut the consensus is now to make it match?19:35
dhellmann0.0.5 was trying to tag the same commit with a new version number, so not quite the same as skipping19:35
dhellmannskipping would just leave that release out of the yaml file entirely19:35
diablo_rojoAh19:35
diablo_rojoOkay cool.19:35
diablo_rojoI'm with you19:36
dhellmannok, so back to https://review.openstack.org/#/c/624472/19:36
dhellmanntypically a stable release will only update the 3rd part of the version number, indicating that the release only contains fixes19:36
dhellmannthat's what they've done in this case, going from 9.1.5 to 9.1.619:36
dhellmannnow, as a reviewer, it's our job to ensure that the version information they're communicating is accurate19:37
dhellmannand we do that by applying the semver rules19:37
dhellmannhttps://docs.openstack.org/pbr/latest/user/semver.html19:37
armstrong@dhellmann we do that manually?19:37
dhellmannyes, that's right19:37
dhellmannif the version is X.Y.Z, backwards-incompatible changes mean incrementing X, features mean incrementing Y, and fixes mean incrementing Z19:38
diablo_rojoI think I've read through all that before.. but will brush up again.19:38
diablo_rojoYeah that matches what I remember19:38
dhellmannwe also require updates to Y for dependency updates19:38
diablo_rojoExample of a dependency update?19:39
armstrongOk, now I understand this SimVer thing19:39
dhellmannif they update the version of a dependency or add a new one19:39
diablo_rojoLol okay.19:39
dhellmannso if they go from oslo.config to 1.2 to 1.3 for example19:39
diablo_rojoGot it.19:39
diablo_rojoJust making sure it wasn't more complicated than that.19:39
* dhellmann nods19:39
dhellmannlet's look at the list-changes output for this one19:40
dhellmannjust like the validate job, there's a separate log file in the tox directory19:40
dhellmannalthough I'm going to look at the job_output.txt.gz to make it easier to share links here19:40
dhellmannand as a nod to smcginnis  ;-)19:40
smcginnis:)19:41
dhellmannthe interesting output starts around here: http://logs.openstack.org/72/624472/1/check/releases-tox-list-changes/8fc4baa/job-output.txt.gz#_2018-12-11_19_40_59_23679819:41
dhellmannlist-changes runs in a tox job, which conveniently means you can run it yourself locally if you want to19:41
diablo_rojoI like the giant: "NEEDS STABLE POLICY REVIEW"19:42
dhellmannyes, that's intentionally hard to miss19:42
dhellmannsince this is a stable release for a project with the stable:follows-policy tag, we give the stable maintenance team "at least one Monday" to review the release19:42
dhellmannin practice that's usually tonyb, but mriedem does help out quite a bit, too19:42
diablo_rojo'stable team' being like.. tonyb19:43
diablo_rojoOh cool19:43
diablo_rojonoted19:43
dhellmann2 release managers can approve faster in cases where we have a serious issue and need a release sooner19:43
dhellmannand 2 release managers can approve if no stable team review happens on the monday19:43
dhellmannsomething new we've added recently that may not be in the reviewer docs yet is the section starting on http://logs.openstack.org/72/624472/1/check/releases-tox-list-changes/8fc4baa/job-output.txt.gz#_2018-12-11_19_41_21_61471719:44
dhellmannthat's more relevant for the master branches, but this team has a nice list of deliverables so it's good to look at the list for context19:45
dhellmannthe idea is that we want to ensure teams are not forgetting to release some of their deliverables19:45
dhellmannfor example, the client19:45
dhellmannif something hasn't been released, it will show up here without a version number19:45
dhellmannand that's an opportunity for us to nudge the team to consider releasing it19:45
diablo_rojoBut we are okay here because they all have been released?19:46
dhellmannyeah, they're fine here19:46
diablo_rojoCool\19:46
dhellmannwe'll look at this again on the stein review I picked out when we get that far19:46
openstackgerritMatt Riedemann proposed openstack/releases master: nova: release queens 17.0.8  https://review.openstack.org/62569819:46
*** bobh has quit IRC19:47
dhellmannthe program that produces this report is in the releases repo in openstack_releases/cmds/list_changes.py19:47
dhellmannby default it emits a bunch of information using the logging module at DEBUG level19:47
dhellmannyou can almost always ignore that, but it helps when there's a bug in the program19:47
dhellmannso if we skip over all of this debug output and scroll down a bit we'll see where it starts showing the details about this new release19:48
dhellmannhttp://logs.openstack.org/72/624472/1/check/releases-tox-list-changes/8fc4baa/job-output.txt.gz#_2018-12-11_19_41_25_10665419:48
armstronglevel 2?19:48
dhellmannI don't know the numbers for the different levels off the top of my head :-)19:48
dhellmannwhat I mean is that the output with "DEBUG:" at the start of the line can be ignored19:48
dhellmannfor example http://logs.openstack.org/72/624472/1/check/releases-tox-list-changes/8fc4baa/job-output.txt.gz#_2018-12-11_19_41_21_72496419:48
dhellmannmake sense?19:48
*** bobh has joined #openstack-release19:49
armstrongyes19:49
armstrongso far I am ok19:49
dhellmannok19:49
diablo_rojoYep. Still with you.19:49
dhellmannthe reviewer guide explains what each of these sections contains, so I'm going to focus on the bits that are useful for this individual review19:49
dhellmannin this case for example, I want to see what git thinks the version is now for the commit being tagged19:50
dhellmannthat's the first section19:50
dhellmanngit describe shows 9.1.5-5-$sha which means 5 commits after 9.1.519:50
dhellmannI think the validation program would  have complained if they had tried to tag this with a version less than 9.1.5, but it's nice to see the confirmation here19:51
dhellmannthe next thing of interest is "Branches containing commit"19:51
dhellmannthat shows all of the branches containing the commit being tagged19:51
dhellmannagain, the validation logic would have complained if this pike release didn't match the pike branch19:52
dhellmannthat validation rule isn't run for independent releases, though, so the output is still included here19:52
dhellmannthe "Relationship to HEAD" section shows whether the commit being tagged is the tip of the branch19:52
diablo_rojoMakes sense19:52
dhellmannhttp://logs.openstack.org/72/624472/1/check/releases-tox-list-changes/8fc4baa/job-output.txt.gz#_2018-12-11_19_41_25_34574619:53
*** N3l1x has quit IRC19:53
dhellmannif it's not, I usually ask the author if they intended to leave some commits unreleased19:53
dhellmannespecially on the stable branch, where releases are less common19:53
dhellmannor at least less frequent19:53
smcginnisIt does happen from time to time for various reasons, but usually an oversight.19:53
*** bobh has quit IRC19:54
dhellmanndown at "Requirements Changes" we can see the various places we look for dependency changes19:54
dhellmannhttp://logs.openstack.org/72/624472/1/check/releases-tox-list-changes/8fc4baa/job-output.txt.gz#_2018-12-11_19_41_25_86957219:54
dhellmannsmcginnis : yes, good point19:54
dhellmannwe diff the various requirements files and then in the next block we diff setup.cfg as well19:54
dhellmannhere there are no dependency changes, so that part of the semver rules is satisfied with the version number they have specified19:55
dhellmannskipping down a couple of sections to "Release 9.1.6 will include" we can see the list of commits that will be in this release19:55
dhellmannhttp://logs.openstack.org/72/624472/1/check/releases-tox-list-changes/8fc4baa/job-output.txt.gz#_2018-12-11_19_41_26_16945719:55
dhellmannthis graph view summary, and the detailed output that follows, is the primary thing you're going to be looking at in this report19:55
dhellmannyou want to look through the list for things that appear to be features or backwards-incompatible changes19:56
diablo_rojoTo make sure they are all just fixes and not features?19:56
dhellmannmost of the teams understand semver now, so we don't have a lot of issues19:56
dhellmannright19:56
dhellmannthe thing that needs to change based on this content is almost always the version number19:57
dhellmannalthough we did have one case where someone backported a configuration option and then it was reverted19:57
*** bobh has joined #openstack-release19:57
dhellmannin this case, everything looks like a bug fix or CI change19:57
dhellmannand it's a nice short list19:58
dhellmannif you're comfortable that this release is OK, go ahead and +1 the request19:58
diablo_rojoReleasing often I imagine is helpful to keep them more reviewable.19:58
dhellmannotherwise, ask any questions you have about it19:59
dhellmannyes, we try to encourage teams to release as often as possible19:59
dhellmannthe oslo team usually submits 1 request a week with several libraries in it, for example19:59
dhellmannalthough the sheer bulk there has slowed down somewhat lately19:59
diablo_rojoSeems logical to me19:59
diablo_rojo+1ed20:00
dhellmannevery reviewer who votes on the patch will have their name attached to the message that goes along with the git tag20:00
dhellmannthat's one reason we encourage PTLs to +1 the final release request at the end of the cycle, for example20:00
diablo_rojoKind of like a signoff. 'I'm so and so and I approve this release'20:01
dhellmannnow, this request was filed on the 11th, which was last tuesday20:01
dhellmannright20:01
dhellmanntoday is monday where I am, which means tomorrow it would be safe for me to approve it20:01
dhellmannI'll give it a +2 today though20:01
diablo_rojoYou usually wait for like a week before giving the +W?20:02
dhellmann"at least one Monday"20:02
dhellmanntonyb does his reviews on monday20:02
dhellmann:-)20:02
fungithat's for stable-branch release requests specifically though, right?20:02
*** bobh has quit IRC20:02
dhellmannso if they had filed it Friday, I would still go ahead with tomorrow20:02
dhellmannyes, that's right, that only applies to stable releases20:02
fungifor releases on master you don't incur the additional delay?20:02
dhellmannreleases on master go out as soon as the reviewer can get to them20:02
fungithanks for the clarification20:03
dhellmannwe'll go through and approve on on master next so we can talk about the jobs that run20:03
* fungi is secretly following along20:03
dhellmannyep, thanks for the questions20:03
armstrong@dhellmann: when do you give a +2 ?20:03
dhellmannarmstrong : for this pike release I gave a +2 just a minute ago, and I will click the workflow button tomorrow if someone else doesn't do it before I get to it20:04
dhellmannthis is a good time to talk about review scheduling20:04
dhellmannthe team usually breaks down the week so we each cover 1-2 days of reviews20:04
dhellmannI have monday and tuesday, ttx has wednesday, and smcginnis has thursday20:04
dhellmannalthough smcginnis cheats and does reviews all the time20:05
dhellmann:-)20:05
fungiand friday is a free day!20:05
smcginnisI have Monday too, but I do try to keep on eye on things.20:05
diablo_rojosmcginnis, the line budger :)20:05
dhellmannwe used to not do releases on fridays because it ruins the weekend when something goes wrong20:05
dhellmannand now I think we do allow releases, at the discretion of the reviewer20:05
diablo_rojoBut no one wants to be THAT person I imagine :)20:06
armstrong@diablo_rojo hahaha ikr20:06
smcginnisWe have a second level of protection that most things that will break others also need to go through a requirements update review.20:06
smcginnisBut still, best to avoid that.20:06
dhellmannwe break the world far less often now that we have the constraints system in place in the requirements repository20:06
dhellmannbut yeah20:06
dhellmannok, let's look at a review from master20:07
dhellmannswift 2.20.0 — https://review.openstack.org/#/c/625483/20:07
dhellmannin particular on this one I want you to start by looking at the first revision of the patch https://review.openstack.org/#/c/625483/120:07
dhellmannand see if you can figure out why the validation job failed there20:07
ttxsorry could not join earlier20:07
diablo_rojojumped two Y places20:08
dhellmannhi, ttx20:08
diablo_rojoHello ttx :) I'm learning things!20:08
notmynamediablo_rojo: hint, I made a copy/paste error :-)20:08
ttxGreat!20:08
diablo_rojonotmyname, lol20:08
dhellmannnotmyname : sorry to use you as an example, but thanks for providing one :-)20:08
notmyname:-)20:09
diablo_rojocopy/paste is deceptively difficult20:09
dhellmannwhere would you look for the error message?20:09
diablo_rojovalidate-request-results.log I would guess20:10
dhellmannyep, and what does the error there say?20:10
fungi1 errors found20:10
* dhellmann is secretly focus grouping his error message phrasing20:10
mriedemdhellmann: do i get a pass on the tonyb stable release request thing because i'm a stable branch jockey?20:11
dhellmannmriedem : tonyb volunteered and is more active in release team planning, but we call on you when we need a hand20:12
dhellmannI'm sure smcginnis would love to have you doing reviews regularly, too20:12
smcginnisAbsolutely20:12
mriedemi just mean for the stuff i'm pushing today,20:12
ttxhistorically mriedem got a free pass for being stable-maint-core yes20:12
mriedemdo i need to wait a week for tony to review that?20:12
dhellmannbut we're also aware that you're doing a ton of other things20:12
dhellmannmriedem : oh, sorry20:12
fungidhellmann: so to focus group that error message a bit for you... ;)20:12
dhellmannI think we can probably let it slide20:12
mriedemb/c frickler was requesting these releases for a couple of weeks20:13
mriedemok20:13
fungidhellmann: i did find the phrasing obscure until i looked back at https://review.openstack.org/#/c/625483/1..2/deliverables/stein/swift.yaml20:13
dhellmannyeah, that one could be a little more verbose20:13
fungidhellmann: and also https://git.openstack.org/cgit/openstack/swift to confirm my hunch20:13
dhellmanndoes the error make sense? esp. given notmyname's hint?20:13
diablo_rojoAll I see is: Could not find 2.20.0?20:14
dhellmanndiablo_rojo : I think you're looking at the logs for the most recent patch20:14
dhellmannthe error was in the first version20:14
dhellmannhttp://logs.openstack.org/83/625483/1/check/openstack-tox-validate/123e866/tox/validate-request-results.log20:14
fungivery last line20:14
dhellmannI planned out this exercise expecting that to stay the current version of the patch, so it's a little confusing, sorry for that20:15
armstrong1 errors found20:15
armstrongdeliverables/stein/swift.yaml: validate_existing_tags: Version 2.18.0 in openstack/swift is on commit 'f270466de363499894317b7c671f65e8a912bd53' instead of '184fdf17ef7490038e89fe92a92de0fe4f2b36b7'20:15
dhellmannthat's it20:15
fungiyep, that20:15
diablo_rojoSo failed because 2.18.0 had already been tagged20:15
dhellmannright20:15
ttxARA can be useful on those too20:15
notmynamedhellmann: FWIW, the error message was very obvious to me when I woke up this morning (but I know *how* I created the patch, so I have an advantage there)20:16
dhellmannthat's a surprisingly common error, in part because of the copy-and-paste thing and also sometimes when people start out a new cycle and don't pay close attention to the previous cycle20:16
fungiit probably helps to know a little what this job is doing first, right. if you know that the job is testing out creating the requested tag and then checking that what got created is what was requested, then the possible reasons for that particular error are fairly few in number20:16
dhellmannnotmyname : yeah, good point. it really should be obvious to the author of the patch, so that's good20:16
dhellmannfungi : that's a good mental model, although that's not actually how this test works20:17
dhellmannat least iirc, it just looks at the sha of the existing tag20:17
fungioh, right, because it's checking potentially existing tags?20:17
dhellmannright20:17
fungisince this job could be run at any time for any tag, not just the one(s) being requested20:18
fungiso it's highlighting a mismatch between the yaml document which asserts a particular tag->commit mapping and what it's actually found in the repository?20:18
dhellmannright, it does ensure that any existing tags that are imported into the yaml files have the right settings20:18
dhellmannexactly20:18
fungii guess it would help for me to look at the log from the working patchset20:19
dhellmannif you scroll up to the "Ensure tags that exist point to the SHAs listed" section you'll see it doing that work20:19
fungiyeah, so the various ERROR lines in the working run are how we know about new not-previously-existent tags20:20
* ttx is called back to his regular evening activities20:20
dhellmannright20:20
ttxlooks like dhellmann has this under control20:20
* dhellmann hands ttx a glass of wine20:20
fungii was about to ask ttx to bring us wine for this ;)20:20
* ttx tastes and says " Hmm... not bad"20:20
dhellmannso, let's talk about the special case this presents because it is the first release for this deliverable this cycle20:21
dhellmannthe previous release in rocky was 2.19.020:21
* ttx leaves the bottle on the table for the students to finish20:21
dhellmannthis release needs to be at least 2.20.020:21
dhellmannwould anyone care to guess why?20:21
armstrongX=20.Y(changing).Z=020:22
dhellmannas a hint, I'll remind you that the releases are on different branches20:22
fungii was in on this discussion so i'll refrain from giving it away20:23
dhellmanneven if this release had only had bug fixes, we would have required a Y version increase as the first release of the new cycle20:23
armstrongok20:23
dhellmannif we did not do that, and allowed 2.19.1 from master then there would have been no room for more patch releases on the rocky stable branch20:23
dhellmannwe wouldn't want 2.19.2 to come from rocky if 2.19.1 came from stein, because not everything was backported20:24
dhellmannso the first release for each deliverable in each cycle must increment at least the minor version number20:24
fungialso, not a theoretical concern. it's happened before20:24
dhellmannmany increment the major version number instead, and that's fine, too20:24
dhellmannyeah, I'm giving you all the tricky edge cases I see today because the easy stuff is in the docs you've read :-)20:25
dhellmannlet's all vote on this patch and then we can approve the release and what what happens20:25
dhellmannunless anyone has questions?20:25
openstackgerritMatt Riedemann proposed openstack/releases master: nova: release pike 16.1.7  https://review.openstack.org/62570920:25
* diablo_rojo is still processing for a sec20:26
dhellmannk20:26
diablo_rojoOkay got it now20:27
diablo_rojojust had to reread a few times lol20:27
dhellmannno worries20:27
dhellmanngo ahead and give this one a +1 and then I'll approve it20:28
diablo_rojoDone20:28
dhellmannok, while I approve it, open up http://zuul.openstack.org/status20:28
dhellmannand then put "release,swift" in the search box on the left side20:28
dhellmannand click "expand by default"20:28
armstrong@dhellmann please for the link again20:28
dhellmannhttps://review.openstack.org/#/c/625483/20:29
armstrongi got so many opened20:29
dhellmannhaha, I know how you feel20:29
dhellmannarmstrong : I'm going to step away for a second while you vote, please ping me when you're done20:30
dhellmannbrb20:30
armstrongok20:30
armstrong@diablo_rojo remind me on voting :) I want to give a +120:32
diablo_rojoarmstrong, the reply button at the top20:33
armstrongYes I click on it and added myself but didn't see the vote20:33
armstrongok good now20:33
armstrongthx20:33
diablo_rojoCool :)20:34
dhellmannok, there we go20:34
dhellmannso, everyone open up your page to watch the zuul status20:34
dhellmannhttp://zuul.openstack.org/status20:34
dhellmannand in the search box on the left put "release,swift"20:34
dhellmannthat will limit the jobs to the release jobs and anything running for swift20:34
dhellmannthat way we can watch what happens when we approve this release20:35
dhellmannlet me know when you're ready20:35
* dhellmann doesn't want anyone to miss the excitement20:35
armstrongok20:35
diablo_rojoHa ha I'm there20:35
dhellmannok20:36
dhellmannthe jobs for managing releases happen in 2 phases20:36
dhellmannwe have a bunch of validation in the releases repo, and then when a patch merges there another job adds the tag to the thing being released20:36
dhellmannthe tag event triggers other jobs20:36
dhellmannthose depend on the repo and language of the deliverable20:36
dhellmannI suppose the gate is backed up enough right now I didn't need to worry about anyone missing anything :-)20:37
diablo_rojoInteresting20:37
diablo_rojolol20:37
dhellmannthat 2 part design comes from 2 things20:37
dhellmannfirst, it gives us a nice separation of concerns between managing the tagging and doing something when the tag happens20:37
dhellmannsecond, the tag jobs existed when we built the releases repo :-)20:37
dhellmannso it was sort of an obvious thing to keep them separate20:38
dhellmannthere are several pipelines related to the tag event20:38
dhellmanntag, release, and pre-release20:38
dhellmannjobs that should run against any tag usually go in the tag pipeline20:38
dhellmannpre-release and release are different based on the type of version number20:39
dhellmanna pre-release version is an alpha, beta, or release candidate20:39
dhellmanna regular release version is anything that is not one of those 320:39
dhellmannat least in our terminology20:39
diablo_rojoGot it.20:39
fungiyeah, we perform a regular expression match on the tag name to determnie whether it's a pre-release or release20:39
dhellmannthe release-post pipeline is a special version of the post pipeline that you're used to seeing in other contexts20:39
dhellmannit used to have a different priority, but now the main difference is that failures trigger an email to be sent to the release-failures mailing list20:40
dhellmannhttp://lists.openstack.org/cgi-bin/mailman/listinfo/release-job-failures20:40
fungiand if you don't feel like subscribing to that directly, you can always just refresh the web archive for it to see any new failures20:41
dhellmannyou've probably noticed one of the release managers replying to one of those messages and directing the conversation to the -dev or -discuss list to ensure a team is aware of the issue with their release20:41
fungibut yeah, being subscribed does make it easier to follow up on the failure messages20:41
diablo_rojoYep, definitely seen that.20:41
dhellmannso what we expect to have happen now is the gate jobs pass, the patch merge, and then some new jobs start in the release-post pipeline20:42
armstrongwe are on gate 24 right?20:43
dhellmannyeah, if you put the search query in you should see 1 item for openstack/releases running 2 jobs, openstack-tox-docs and openstack-tox-validate20:44
dhellmannthose will take another couple of minutes to finish20:44
fungiarmstrong: an amusing interpretation. that's actually saying there are 24 changes enqueued in the gate pipeline right now, but you only see one because of the search filter20:44
fungi23 now, you'll see it just updated20:44
fungiand it's back to 24 again20:45
armstrongok I got it20:45
armstrongthanks @fungi:20:45
dhellmannthat validation job is almost done20:45
fungiwe have a zuul-status graph dashboard where you can see those counts being trended at the top: http://grafana.openstack.org/d/T6vSHcSik/zuul-status20:45
openstackgerritMerged openstack/releases master: swift 2.20.0 release  https://review.openstack.org/62548320:46
fungiand it merged!20:46
dhellmannthere we go20:46
dhellmannand now there is 1 item in the release-post pipeline with 2 jobs20:46
dhellmannthe tag-releases job is the one we're interested in20:46
diablo_rojoSuch a pretty CI system20:46
dhellmannthat actually creates branches, too, when someone asks for them20:46
dhellmannwhen the job starts the name will become a link to the console output, and we can watch what it does20:47
fungiyou'll see it's a 7-digit hexidecimal number, which is an abbreviation of the first 7 digits of the merge commit which resulted from the merger of the change we were watching in the gate pipeline earlier20:47
dhellmannthe tools for tag-releases are all in openstack-infra/project-config/roles/copy-release-tools-scripts/files/release-tools20:48
dhellmannthat location is an artifact of the migration from the original implementation to the zuul v3 version of the job20:48
dhellmannwe'll save going through the scripts for another session, I think20:48
dhellmannok, you should be able to open the tag-releases console up in another window now20:49
dhellmannit starts with some typical node configuration steps like ssh and bindep20:49
dhellmannand a bunch of other things, I guess -- I don't know what a lot of those are, tbh20:49
diablo_rojoLol20:50
dhellmannmostly setting up the node to know about our infra20:50
dhellmannnow it's copying those tools into place to run them20:51
dhellmannand setting up gpg so it can sign a tag20:51
dhellmannand now it runs the main release job content20:51
dhellmannwhich finds the new tag in the deliverable, and applies it to the repo20:51
armstrong@dhellmann "ok, you should be able to open the tag-releases console up in another window now" I am lost here20:52
dhellmannand then comments on all of the bugs closed by that release to indicate when the fix was released20:52
dhellmannhttp://zuul.openstack.org/stream/872854be92614c42805a9dead6576b97?logfile=console.log20:52
armstrongwhere is the console?20:52
armstrongthanks20:52
dhellmannthe name of the job is a link to the console20:52
armstrongok i see20:52
dhellmannnow, if you go back to the zuul pipeline status page we should see the swift tagging jobs start up soon20:52
dhellmannand there they go20:53
diablo_rojoBeautiful :)20:53
dhellmannrelease notes in the tag pipeline, and the release itself in the release pipeline20:53
dhellmannthe 3 jobs in the release pipeline depend on each other20:53
dhellmannrelease-openstack-python has to complete before the other 2 run20:54
dhellmannannounce-release sends email with details of the new release to the release-announce list20:54
dhellmannhttp://lists.openstack.org/cgi-bin/mailman/listinfo/release-announce20:54
dhellmannpropose-update-constraints is the interface with the openstack/requirements repo20:54
dhellmannwhen anything is released, we look at the list of constraints to see if it is present20:55
dhellmannif it is, we propose a new patch to that repo to update the constraint to the new version20:55
dhellmannthat triggers a bunch of tests, which tells us if the new package is compatible with the other things in the list and the software that consumes it20:55
dhellmannprometheanfire can tell you lots more about how all of that works20:55
dhellmannoh, and of course release-openstack-python is the job that packages the deliverable and publishes it to pypi.python.org20:56
dhellmannas well as tarballs.openstack.org20:56
dhellmannthat job would be different if this was a javascript repo or puppet repo20:56
fungiand signs it with our release automation openpgp key20:56
dhellmannyes, good point20:56
dhellmannlooking at http://git.openstack.org/cgit/openstack/swift/refs/ we can see the new 2.20.0 tag at the top of the list20:57
dhellmannnote that the author is the bot20:57
dhellmannbut if you look at the tag metadata in http://git.openstack.org/cgit/openstack/swift/tag/?h=2.20.020:57
dhellmannyou will see all of our names20:57
* diablo_rojo feels important20:58
dhellmannsince we're not going to look at the details of the actual release job today, I think we can start wrapping up20:59
fungithat pgp signature at the bottom of the tag details is made using the same release automation openpgp key i mentioned earlier as well20:59
dhellmannare there any questions about what we did cover?20:59
prometheanfiresup?21:00
fungiprometheanfire: wave to the class21:00
dhellmannprometheanfire : hey, we're just doing some team onboarding with diablo_rojo and armstrong21:00
fungithe release-openstack-python job just finished running too21:00
dhellmannI referred them to you if they have questions about how constraints work21:00
diablo_rojoWhat is the current distribution of humans to days in terms of when people are reviewing?21:00
diablo_rojoMy only question21:00
armstrongsuppose a job fails at  zuul will that affets the version number?  X.Y.Z21:00
dhellmannand now you can see the new swift release on pypi at https://pypi.org/project/swift/#history21:00
prometheanfireo/21:01
notmyname...and I just told the superuser people that the article on 2.20.0 can be published :-)21:01
dhellmanndiablo_rojo : we have 4 people with acls to approve releases21:01
dhellmannnotmyname : woot!21:01
funginotmyname: don't you feel like another cog in the release automation machine now? ;)21:01
dhellmanndiablo_rojo : tonyb mostly focuses on the stable ones, but does get into the others sometimes21:01
dhellmannfungi , notmyname : we need to automate that!21:01
dhellmannand we tend to focus on the start of the week21:02
dhellmannif you're looking for a day to pick up, I think Tuesday is probably a good one, since Sean and I both have Monday covered and that means I could drop Tuesday21:02
dhellmannthings tend to pile up over the weekend, so we want good monday coverage21:03
dhellmannarmstrong : it depends21:03
dhellmannif the reason for the release is an infra failure of some sort or a bug in the release script, we can often re-enqueue the tag event and trigger the jobs again21:03
dhellmannwhether we can do that does depend somewhat on where in the process the failure happens21:04
dhellmannif the package is uploaded to pypi, for example, we can't redo it because uploading the same version again is considered an error21:04
dhellmannif the reason for the failure is something in the repo itself, then we need the team to fix it21:04
dhellmannwe had failures like that before we added the validation steps to check the javascript version file content with the tag, for example21:05
*** dmellado has quit IRC21:05
dhellmannwe have less of those now, but they do still happen in some edge cases21:05
dhellmannas part of the work we did this cycle, we added a release test job to all of the python repos21:05
dhellmannthat job tries to build a package if any of the packaging metadata has changed21:05
*** stevebaker has quit IRC21:05
dhellmannand it also verifies the content of the README.rst using twine21:06
diablo_rojodhellmann, yeah I can definitely take on Tuesday21:06
dhellmanngreat! let's get you doing some reviews and then we can make it official21:06
fungiand while we're talking about failures, the zuul builds interface lets you query for failures (and other sorts of stuff too). so if you wanted to look at a variety of unsuccessful jobs in the pre-release, release, tag and release-post pipelines you could query it for21:06
dhellmannso every time we find an issue with the content of a package causing a problem, we try to add a new validation step up front to avoid having that trigger a release job failure21:06
fungihttp://zuul.openstack.org/builds?pipeline=pre-release&pipeline=release&pipeline=tag&pipeline=release-post&result=FAILURE&result=POST_FAILURE&result=RETRY_LIMIT21:06
dhellmannbut those classes of failures almost always require a new version number, because we cannot change a tag once we publish it21:07
dhellmannoh, nice, thanks fu21:07
dhellmannfungi21:07
fungiin theory that's mostly the same thing which gets reported to the release failures ml21:07
armstrongthanks I got it now21:07
fungibut accessible via a web dashboard and an api21:08
dhellmannyeah, most of the ones at the top of the list look familiar21:08
clarkbnot sure if it was mentioned but the infra team tries to warn the release channel when we are doing work that may impact releases as well21:08
clarkbso checking there isn't any arnings about that before approving things is helpful21:08
dhellmannthat's a good tidbit, thanks, clarkb21:08
fungiyep, or when there are other exceptional circumstances which may make release activity especially unsafe21:08
dhellmannthose notices come here in channel, so always look at the scrollback for info before starting to approve releases21:08
* diablo_rojo got sucked into another meeting, but it should be short21:08
diablo_rojoWill catch up in a little bit21:08
dhellmannI think we're about done here21:09
dhellmannif you encounter questions as you do reviews, just ask either here in channel or on the mailing list21:09
dhellmannor on reviews, even21:09
dhellmanndiablo_rojo, armstrong, and fungi : thanks for participating today, and I hope this was useful21:09
fungii found it very helpful myself!21:10
fungithanks for setting aside the time21:10
diablo_rojodhellmann, very! Thanks for doing the walk through21:10
armstrongvery helpful to me and wish I practice more to grasp it better21:10
tonybZOMG soo much scrollback21:11
dhellmannI encourage you to dig into the validation code a bit to see what the error messages mean, and help with wording if you think those can be clarified21:11
dhellmanntonyb : your name was invoked, but only in a good way :-)21:11
tonybdhellmann: I did see that \o/ #phew21:11
dhellmannI'm going to drop offline for a bit to hang lights on the front of the house in preparation for our saturnalia celebration21:12
dhellmannI'll check in after it's too dark to be on a ladder21:12
fungidhellmann: i don't even want to know how you decorate for lupercalia21:17
tonybdhellmann: (when you're back) re: http://eavesdrop.openstack.org/meetings/releaseteam/2018/releaseteam.2018-12-14-15.00.log.html#l-10721:21
tonybI can't do 1600UTC as it's 0300am for me21:22
tonybIt's be great if the meeting were at a time I could attend but I think given it's only me down here keeping it at time that works for US+EU is fine21:23
smcginnisYeah, wasn't sure that would be a great time for you. You're more of a morning person than a night owl from what I've seen.21:23
* tonyb doesn't always read the logs but as always you can make me read at least parts of them my saying my name ;P21:23
smcginnis:)21:24
smcginnistonyb: Would still be nice to get your thoughts on https://review.openstack.org/#/c/625290/21:24
tonybYeah.  I wake just befoer 0600, I can be on a meeting by 0630, which given DST translates to about 2030->0930 UTC21:25
smcginnistonyb: Looks like we would either have to lose you or ttx21:26
tonybsmcginnis: Well evrardjp and ttx should be about the same TZ wise so that's 2 in EU vs 1 in AU21:27
*** tobias-urdin has joined #openstack-release21:29
tonybsmcginnis: commented21:29
tonybsmcginnis: hopefully it makes sense and is slightly funny ;P21:30
smcginnis:)21:33
smcginnistonyb: I didn't think the start dates really mattered too much since a bunch of different ones on different days all had the same start date.21:33
*** bobh has joined #openstack-release21:33
*** mlavalle has quit IRC21:33
tonybsmcginnis: Going back 1 step, if the meeting was at 2030 UTC that'd be late for ttx and evrardjp, early for me and reasonable for the US which might work I guess depending on family dynamics21:33
tonybsmcginnis: they were added as a 'default' when we added that feature21:34
smcginnistonyb: How is that start date used?21:35
tonybsmcginnis: if you se thew startdate right you become immue to the bugs created by ISO week 53 being followed by ISO week 1 meaning you have 2 odd weeks in a row21:35
tonybsmcginnis: it's also used when we create the ICS file to all the 'old' release meetings will disappear and the first one will start in $start_date21:36
* tonyb tries something to illustrate21:37
smcginnisCool, I can get that updated. Just was curious as I didn't see it reflected anywhere.21:37
tonyb[tony@thor irc-meetings]$ curl -s http://eavesdrop.openstack.org/calendars/release-team-meeting.ics | grep 1121:38
tonybDTSTART;VALUE=DATE-TIME:20161111T150000Z21:38
tonybhttp://paste.openstack.org/show/737511/21:40
tonybsorry I probably shoudl have remove the tox output to make it standout21:40
*** armstrong has quit IRC21:41
tonybsmcginnis: you DO subsrcibe to release-team-meeting.ics right?21:41
smcginnisI probably should. ;)21:42
*** bobh has quit IRC22:20
*** bobh has joined #openstack-release22:22
*** e0ne has quit IRC22:25
*** bobh has quit IRC22:56
*** mlavalle has joined #openstack-release23:06
dhellmannfungi : no, you don't want to know. ;-)23:16
*** mlavalle has quit IRC23:27
*** mriedem has quit IRC23:40

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