A change reviewed line by line, from a draft to a merge, with the team's runner checking it as it goes. ## alice You maintain `parser`, a small library. Create it with a README, `parse.py` holding a function `parse(text)` that splits text into words on spaces, and `test_parse.py`, its tests, which run with `python -m unittest`. Your team runs a knotless runner under the account {ci}: name it as the runner of `parser`, and add a workflow that runs the tests in the `python:3.12-alpine` image on pushes to `main` and on every pull into `main`. Add {bob} and {carol} so they can push branches and merge pulls here. ## carol You want to add a `--strict` mode to {alice}'s `parser` that rejects empty input, with tests, but you are not finished. Make a start on a branch, and open a pull that is clearly not ready to merge yet. Ask {alice} and {bob} to review it once it is ready. Then finish the change, mark the pull ready, and check it no longer shows as unfinished and that its checks pass. ## bob You were asked to review a pull on {alice}'s `parser`. Find it, read its diff and what its checks say, and leave at least two comments on particular lines of the code, not on the pull as a whole: one asking for a change, one a question. Send them together as one review that asks for changes, and mention {carol} by handle in it. ## carol Your pull on `parser` was reviewed. Find out what was said, and where. Make the change asked for on the same branch, check the pull's checks still pass, answer the question in its thread, and mark the threads you have dealt with as resolved. Check what your notifications told you along the way. ## bob Look at the pull on `parser` again: check your threads were answered and resolved, that the code changed where you asked, and that its checks pass at its latest commit. If you are satisfied, approve it. ## alice Merge the reviewed pull on `parser` if nothing is outstanding and its checks pass. Then say how you could tell, from the pull alone, who reviewed it, what they asked for and whether it was dealt with.