14:31:16 #startmeeting Docs Working Group aka DaWGs 14:31:16 Meeting started Tue Aug 18 14:31:16 2020 UTC. 14:31:16 This meeting is logged and archived in a public location. 14:31:16 The chair is acozine. Information about MeetBot at http://wiki.debian.org/MeetBot. 14:31:16 Useful Commands: #action #agreed #halp #info #idea #link #topic. 14:31:16 The meeting name has been set to 'docs_working_group_aka_dawgs' 14:31:20 #topic opening chatter 14:31:22 who's around? 14:31:34 chatter chatter pumkin matter 14:31:40 hi! 14:31:46 * samccann seldom makes sense...even in her own head 14:31:51 #chair samccann felixfontein 14:31:51 Current chairs: acozine felixfontein samccann 14:32:00 hi felixfontein! 14:32:22 I think baptistemm is on holiday, even though he shows up as active on my IRC client 14:33:05 abadger1999 is probably still asleep 14:33:17 andersson007_: gundalow briantist cyberpear geerlingguy jhawkesworth Jmainguy madonius mrproper Pilou tremble zbr you folks talking docs today? 14:33:28 felixfontein: yeah, at least i hope so 14:33:28 (he was still awake 4 hours ago) 14:33:32 oh jeez 14:33:34 yep :) 14:33:37 * gundalow waves 14:33:42 I REALLY hope he's asleep then 14:33:47 hi gundalow 14:33:49 * tremble waves hello 14:33:50 #chair gundalow 14:33:50 Current chairs: acozine felixfontein gundalow samccann 14:33:53 hi tremble 14:33:56 #chair tremble 14:33:56 Current chairs: acozine felixfontein gundalow samccann tremble 14:33:57 o/ 14:34:02 hi zbr 14:34:04 #chair zodbot 14:34:04 Current chairs: acozine felixfontein gundalow samccann tremble zodbot 14:34:20 hey, that wasn't what I expected TAB to do! 14:34:25 #chair zbr 14:34:25 Current chairs: acozine felixfontein gundalow samccann tremble zbr zodbot 14:34:34 how do I unchair the bot? 14:34:41 You put zodbot in charge of itself, hopefully it doesn't become self aware... 14:34:42 #unchair zodbot 14:34:42 Current chairs: acozine felixfontein gundalow samccann tremble zbr 14:34:42 or is this The Singularity being set in motion? 14:34:48 maybe? 14:34:51 dun da DUN DUN!! 14:35:01 felixfontein: thanks 14:35:08 tremble: exactly 14:35:18 Sorry not today 14:35:29 jhawkesworth: cool, catch you next time 14:36:01 today's agenda starts with https://github.com/ansible/community/issues/521#issuecomment-672038948 14:36:31 The first two items are really together in the Agenda. I copied felixfontein's item up into it 14:36:43 ah, ok :) 14:36:51 sneaky! 14:37:07 yeah made sense in my head last night... but anyway 14:37:07 #topic release coordination 14:37:32 what are all the moving pieces? 14:38:08 so what happens for a release (to my knowledge): 1) ansible 2.10.x is released, 2) porting guide needs to be merged to devel, 3) porting guide needs to be backported to stable-2.10, 4) docs need to be rebuild (including module/plugin docs) 14:38:19 at least these are the pieces I know about :) 14:38:30 what about changelog.rst update? 14:38:42 and 1) consists out of 1a) build ansible package, 1b) check in build data and changelog to ansible-build-data repo, 1c) upload ansible to pypi 14:38:55 ah ok 14:39:06 do we need some kind of double-check on the List of All Included Collections and Versions? 14:39:12 so could we pause before 1c and do 2,3,? 14:39:46 I'm not sure, maybe 4) needs 1c) to be done 14:39:56 or I guess we just have to tighten up 2,3,4 right after 1c? 14:39:59 yeah, it feels like 2 and 3 should happen before the pypi package goes out 14:40:12 docs should be in place, if possible, before anyone can use the new version 14:40:45 yep. though perhaps with alpha, it's okay to lag a day? but actual patch releases shouldn't lag if possible 14:40:50 hmm, would be helpful if abadger1999 would be around now, since he's very familiar with the relation between 1c) and 4) 14:41:20 for the last alpha, the lag was more like half a week (at least for the porting guide) 14:41:26 heh woopsie 14:41:36 I think we can build the docs independently as long as we know which collections are included 14:41:46 yeah, the was first a RH holiday coming up and then a weekend... 14:41:52 bad timing ;) 14:41:55 so I think 'something' in the ansible release process republishes docs. is that corrext acozine? 14:42:12 then 4) probably depends on 1b) 14:42:13 (in the old process) 14:42:55 in the old process, the jenkins job that built the release package triggered the build_ansible_docs job 14:43:11 what I'm thinking is - everything is in place in docs before the package goes to pypi 14:43:24 samccann: that would be great 14:43:47 yeah so if we eventually have something similar for the New Ansible, then we just have to get everything in place and backported on time 14:43:52 Because 2.10 has an rc, we can probably build the module and plugin docs ahead of time 14:44:01 welcome abadger1999 14:44:04 #chair abadger1999 14:44:04 Current chairs: abadger1999 acozine felixfontein gundalow samccann tremble zbr 14:44:25 morning abadger1999! 14:44:32 * abadger1999 just woke up and doing morning things but sorta here from his phone 14:44:51 but we have the same problem for 2.10.1, 2.10.2 etc, which probably won't have RCs? 14:45:05 also, the porting guide between RC and final release is substantially different 14:45:26 (the final 2.10.0 one will have all alpha/beta/rc version sections collapsed) 14:45:33 yep 14:45:49 does the release process all happen on the same day? can we interrupt it briefly to take care of porting guide/changelog stuff? 14:46:05 #info what happens for a release (to my knowledge): 1) ansible 2.10.x is released, 2) porting guide needs to be merged to devel, 3) porting guide needs to be backported to stable-2.10, 4) docs need to be rebuild (including module/plugin docs) 14:46:17 #info 1) consists out of 1a) build ansible package, 1b) check in build data and changelog to ansible-build-data repo, 1c) upload ansible to pypi 14:46:26 Yeah, porting guide and things generated as part of the build have a chicken and egg issue 14:47:26 Right now, in building and uploading ansible from my laptop rather than Jenkins so i can pause before 1c 14:48:19 what prevents the porting guide from being generated ...say a day earlier and backported? 14:48:45 Once it's automated, I'm not sure if that will be possible (but I have so many things in trying to get done by release, automation is a thing that may fall to a later enhancement) 14:49:13 so porting guide generation is part of that build then? 14:49:49 as long as we know the names and versions of the collections, can't we generate the changelog and porting guide ahead? 14:50:03 do we expect collection changes "down to the wire"? 14:50:13 perhaps for changelogs? dunno 14:50:35 but yeah, sounds like a solid FREEZE is needed a couple of days at least in advance 14:51:02 Yeah, part of building the ansible tarball is generating the changelog and porting guide 14:51:06 we could split the release process in two parts, where the first part only creates the metadata, and the second part is using the current 'rebuild' command to actually build the package 14:51:29 Felixfontein: yeah, that could work 14:51:33 the other option - we have prior notice of exactly when the package is released. Then docs grabs the prs, merge, backport, republish (say a 4 hr window to get it all done, in case jenkins or shippable is havin a moment) 14:51:45 Thanks for writing the rebuild command! ;-) 14:52:07 abadger1999: it would basically be chopping things out, and adding a --date option which allows to say when the release date actually is (because it won't be today anymore) 14:52:10 abadger1999: yw ;) 14:53:55 so... the build with just metadata would generate changelogs and porting guide? so we could merge and backport them? 14:53:57 We could also move towards making releases a"bitflip".. everything gets built ahead of time but doesn't get pushed into production until a set date 14:54:13 ooh, I like that idea 14:54:36 though I have no idea how easy or hard it would be to implement 14:54:53 The problem is i know how bit flip will work for building the ansible tarball but i haven't thought about how docs would do that 14:54:56 would it matter that the info would be on devel ahead of time? (assuming we turn on the nightly devel build again for docs)? 14:55:29 i guess in general it always is... 14:55:44 hmm, devel will be the next 2.x thread, not the next 2.10.y thread 14:56:21 well, porting guide does through devel right now, because devel also contains the 2.10 porting guide 14:56:26 (which regularly leads to confusion) 14:56:32 heh 14:56:40 I'm not sure what a bit flip is, but seems if everything is done, then the only thing docs needs is someone or something to kick the jenkins build for 2.10 14:57:14 we'll need to make sure the changelog/porting guide PRs get merged and backported first 14:57:32 yes. that all happens ahead of the bitflip. 14:58:07 but it would make our lives much easier, I think . . . which gets me wondering if it would make someone else's life much harder 14:58:33 so literally, everything is in place. Then at a set date/time, toshio does the bit flip (and someone republishes 2.10) 14:58:48 that would be awesome 14:59:23 as long as we have some advance notice, we can ensure someone is here to kick off and confirm the republish job on Release Day 14:59:33 sounds reasonable 14:59:46 yep. I think so long as there isn't an emergency (HAH) it would all work 14:59:57 The to-be-released content has to be stored somewhere. In our jenkins setup, that may be an issue... (I was also hoping to do all the release work using things the community could see (so GitHub actions instead of jenkins) and that wouldn't have a place to store things either :-/ ) 15:00:31 abadger1999 - how often in the past has 'something last minute' happened to make an ansible release or dot release go down to the wire? 15:01:04 does PyPI have some way to say "turn this previously uploaded release candidate into a Real Release"? 15:01:10 abadger1999: doesn't the metadata in ansible-build-data suffice? I guess we can already push it there 15:01:21 in other words, could we store the to-be-released content on PyPI? 15:01:29 and do the bit-flip there? 15:01:29 abadger1999: or do you want to store the tarball somewhere as well? 15:02:13 so my guiding principal here - Docs should go out within hours of a release 15:02:29 I would prefer hours *before* a release :) 15:02:35 For the dot oh releases, we've usually said that a new rc was needed (although docs can merge certain things in that window still). So the last minute stuff doesn't exist. 15:02:37 (or minutes) 15:02:53 * abadger1999 switches to laptop so he can type faster 15:02:56 heh. yeah within minutes would be great. but imo within hours is acceptable 15:03:07 except that the porting guide now changes between rc and dot oh 15:03:21 samccann: true :) 15:03:41 yes, rc to true release is tricky, but all the dot releases after that shouldn't be right? 15:04:06 they also get new porting guide entries 15:04:22 yep 15:04:28 but it's just something appended (assuming collections don't modify changelog entries in the past) 15:04:59 acozine: I thnk pypi can let me upload something and then manually mark it as invisible. Then I can manually mark it as visible later. I canno rename an rc to final there. 15:05:28 well, I hate to introduce manual steps into the process 15:05:28 I hope the "manually" part can be automated 15:05:36 but it would solve this particular problem 15:06:29 felixfontein: For the bitflip idea (bitflip comes from the idea that each permission in UNIX (like read permission) is a bit. And you're flipping the bit from off to on) I prefer to have the tarball stored already and ideally the docsite built and stored too... then both are just uploaded to their final destinations on release day. 15:06:36 https://sourceforge.net/p/pypi/support-requests/428/ looks like hiding isn't working well and was planned to be removed (at least in 2014) 15:06:55 docs team could take the responsibility for marking it visible once the docs are up 15:07:08 abadger1999: yep, that would be best (just think of galaxy happens to have an outage on release day) 15:07:11 felixfontein: :-( Thanks for that info. 15:07:21 abadger1999: but maybe that changed again 15:07:49 it's hard to find anything on it 15:08:06 15:09:49 do we have ideas for next steps, or full-on action items? 15:10:04 So to implement bitflip, I guess something like a jenkins build that stores everything on the web server in a directory that is non-executable. Then on release day, the ansible tarball from there is uploaded to pypi and the docs directory in there replaces the live 2.10/ directory. 15:10:38 Do we know if shanemcd is okay with us using the webserver like that? 15:10:44 #action felixfontein add a `--release-date` option to the build process (for the changelog's build date) 15:11:00 abadger1999: I don't know 15:11:19 #action acozine to ask shanemcd about using the webserver for pre-release storage 15:11:23 Cool. 15:11:51 Are you folks okay with not being able to review the web docs prior to release day? 15:12:05 woof 15:12:07 (We can tweak the process I outlined above if you want to be able to look) 15:12:13 can't we publish them to the test site? 15:12:22 Instead of using permissions to hide it, it could just be security via obscurity. 15:12:31 We publish to the test site. 15:12:43 yeah, I like that better 15:12:46 You just wouldn't see the actual final artifact. 15:12:51 (if we use permissions) 15:13:21 fwiw - this our publication checklist - https://github.com/ansible/ansible/issues/70783 15:14:05 #action acozine to ask shanemcd about adding simple auth to the testing site, with the password printed for all to see, along with a warning about this being a testing site 15:14:30 so we'll have to decide if we need all of that in place before release (on both devel and 2.10/latest) 15:14:57 then the 'final artifact' is just if something goes wonky with the docs pipeline pulling from galaxy 15:14:59 So plan not using permissions: New jenkins job(s) that build the ansible tarball and docssite to pre-production locations on the ansible web server. People can browse or download if they are "in the know" and want to test the gold artifacts. They'll be uploaded to pypi and moved into the real docs.ansible.com locations (the 2.10 directory in this csae) with a simple jenkins job on release day. 15:15:06 which is a big something but still ... 15:16:03 ah so it won't be rebuilding the docs on release day, it's just moving those existing files that we presumably already sanity checked in preproduction, to the final 2.10 dir? 15:16:46 sounds good to me - we will no doubt learn from the first experience and we can hone the process for the next release 15:17:42 #info 2.10.0 release will use new jenkins job(s) that build the ansible tarball and docssite to pre-production locations on the ansible web server. People can browse or download if they are "in the know" and want to test the gold artifacts. They'll be uploaded to pypi and moved into the real docs.ansible.com locations (the 2.10 directory in this csae) with a simple jenkins job on release day. 15:18:07 #info revisit this in a retrospective after the release, improve, iterate 15:18:42 samccann: That would be my preference. it could be built on release day, though. a few nice things about pre-building: deploying becomes a matter of minutes instead of of 1 hour+ no matter how slow the actual build takes. We can tell ahead of time if the docs build would fail, instead of on release day) A drawback: The docs will reflect the data from whenever the docs were last built to the pre-release location. So a last 15:18:43 minute docs fix wouldn't be reflected unless the docs were rebuilt before hand. 15:19:00 (that could become part of your last minute fix checklist, though) 15:19:58 yeah I'd rather we just moved the prerelease files to their final directory. That way the only margin of error is that move step, vs repulling everything from galaxy etc 15:20:32 Yep. 15:21:38 felixfontein: you put the porting guide PRs on the agenda, is there anything about those that we need to talk about, and haven't talked about yet? 15:21:55 oh nice, the first collection managed to include a changelog.yaml that is invalid and lets the generator crash 15:22:05 #action abadger1999 to look into the jenkins jobs to build ansible and docs to a staging site and bitflipping. 15:22:06 head . . . mett desk 15:22:09 acozine: no, that's basically it 15:22:10 s/mett/meet 15:22:20 nice to meet you, desk! 15:22:43 acozine: mett -> https://en.wikipedia.org/wiki/Mett 15:23:11 #action abadger1999 to update https://github.com/ansible/community/wiki/RelEng:-ansible with additional steps that the ansible release process entails now 15:23:16 omgosh my aunt would have loved that! (the mett) 15:23:19 oh, goodness, it's a bit early in the day here for raw pork 15:24:11 though that should be the DaWGs version of "seeing the sausage get made" 15:24:25 HAHAHAHA 15:24:26 "Time to make the mett for this release" 15:24:29 #action felixfontein make sure changelog generation does not crash on degenerate changelog.yaml files 15:24:47 omgosh raw pork and degenerates... we're ROCKIN IT today! 15:25:16 in theory, we have 5 minutes left 15:25:17 #actio Hee hee 15:26:06 :D 15:26:23 #topic process/pipeline updates 15:27:16 other than the "kids today" state of collections changelogs, any updates on the process or pipeline? 15:27:45 I ran the build last night and only got 7 Sphinx warnings, which was fewer than I feared 15:27:49 nothing new from my side 15:28:30 omgosh only 7!!! was that devel or stable2.10? 15:28:38 devel 15:29:11 you and I can test 2.10 later today 15:29:30 abadger1999: anything new with redirect? 15:30:04 er, redirects 15:30:08 Nope. I've been swamped. I've been getting about 1 days worth of work in on it a week (less last week with the recharge day) 15:30:08 * acozine can't type today 15:30:22 np 15:30:35 freeze and beta1 is this week so it will be about the same this week too. 15:30:35 you're doing tons of work 15:30:59 Yeah, sorry, though. I know it's a blocker and we don't want blockers to also become nail-biters. 15:31:50 yeah, but context-switching doesn't help . . . let it wait while we sort out other things 15:32:23 #topic open floor 15:32:58 all topics, comments, questions, ideas welcome 15:33:09 omgosh we hit open floor only 2 min late!!! That's like a record for 2020 right there 15:33:13 heh 15:33:30 * acozine sings We Are the Champions quietly under her breath 15:34:01 :) 15:34:19 if anyone has been waiting quietly for a chance to ask a question or bring up a subject, now would be a great time! 15:34:46 I'll toss a quick update in while the floor is open . . . 15:35:22 Ansibot has run through open PRs and issues, closing ones that apply to plugins that have moved to collections 15:35:29 it didn't eliminate many docs PRs 15:35:35 but it did close quite a few docs issues 15:37:14 hearing nothing else for the open floor . . . 15:37:31 it would be nice if we could filter docs PRs that are only docs... to know what our backlog really is 15:37:33 agenda items are always welcome at https://github.com/ansible/community/issues/521 15:38:12 samccann: we can look at "PRs by file/directory" 15:38:31 hm, though would that filter out PRs with more files? 15:38:34 I don't know 15:39:05 #info anyone can add an agenda item to https://github.com/ansible/community/issues/521 15:39:30 #info and questions are encouraged at any time in the chat channel 15:40:09 thanks abadger1999 felixfontein gundalow samccann tremble zbr 15:40:16 thanks everyone! :) 15:40:19 and anyone else who followed along at home! 15:40:28 #endmeeting