Name | Team |
---|---|
Alex Brady | 1_A |
Daphne Gomez | 1_A |
Isabel Lehrman | 1_A |
Julian Orrego | 1_A |
Ashi Jain | 1_B |
Gabrielle Douglas | 1_B |
Meghna Bukkapatnam | 1_B |
Paola Abad | 1_B |
Alex Naper | 1_C |
Chuying Huo | 1_C |
Lauren Vandivier | 1_C |
Vincent Fowler | 1_C |
Chloe Miccolis | 1_D |
Emily Walsh | 1_D |
Sahil Choudhri | 1_D |
Sahith Kudaravalli | 1_D |
Alex Precourt | 1_E |
Connor Barritt | 1_E |
Krisha Patel | 1_E |
Siddarth Rama | 1_E |
Teal Uahwatanasakul | 1_E |
Alexa Mohajer | 1_F |
Jill Roberts | 1_F |
Naomi Holtzman | 1_F |
Sophia Fratta | 1_F |
Katherine Li | 1_G |
Larkin Woodard | 1_G |
Myra Han | 1_G |
Supta Das | 1_G |
Tsvetelina Milkova | 1_G |
Working collaboratively
Milestone 1
You must attend this lab in person and participate in the merge conflict activity to be eligible for the points for this milestone. Team members who are not in lab in person for this activity will not be eligible for these points, regardless of their contribution throughout the rest of the project.
Data science is a collaborative discipline. Pretty much no data scientist works alone, so neither should you! In this course you’ll collaborate with teammates on the project.
The first milestone of the project, today’s activity, will introduce you to the technical aspects of collaborating on a reproducible data science project that is version controlled by Git and hosted on GitHub in a repository shared by all teammates.
Yes, this means you and all of your teammates will be pushing to the same repository! Sometimes things will go swimmingly, and sometimes you’ll run into merge conflicts.
The word “conflict” has a negative connotation. And, indeed, merge conflicts can be frustrating. But they serve to make sure no team member inadvertently writes another team member’s work. All changes that are in “conflict” with each other need to get resolved explicitly, with a commit message, which helps avoid haphazard overwriting.
Goals
The goals of this milestone are as follows:
- Pick a team name
- Collaborate on GitHub with your teammates and resolve merge conflicts when they inevitably occur
- Discuss and write up your team contract
- Start thinking about your project proposal
Teams
Name | Team |
---|---|
Campbell Raney | 2_A |
Lauren Blake | 2_A |
Lucy Herrick | 2_A |
Sahng-Won Lee | 2_A |
Bianca Dominguez | 2_B |
Jayden Kim | 2_B |
Maddie Goldner | 2_B |
Sam Karsch | 2_B |
Cat Gamard | 2_C |
Gabriela Zanforlin Mautner | 2_C |
Isabella Antonio | 2_C |
Katie Brandler | 2_C |
Devin Mulcrone | 2_D |
Elle Piper | 2_D |
Reagan Henderlite | 2_D |
Julia Simon | 2_E |
Nadine Fanous | 2_E |
Neha Jatla | 2_E |
Olivia Ares | 2_E |
Alexis Golart | 2_F |
Ashley Wilson | 2_F |
Lhamo Dixey | 2_F |
Mia Taubenblat | 2_F |
Rizban Worota | 2_F |
Gabrielle Nicoleau | 2_G |
Martina Yu | 2_G |
Melina Marjani | 2_G |
Oyinkansola Oduba | 2_G |
Tanya Wan | 2_G |
Name | Team |
---|---|
Ava Strohmeyer | 3_A |
Esther Park | 3_A |
Fiona Xiao | 3_A |
Katie Maddock | 3_A |
Zijian Li | 3_B |
Jack Yi | 3_C |
Margaret Berei | 3_C |
Runzi Ma | 3_C |
Ryan Hamner | 3_C |
Owen Platt | 3_D |
Rebecca Fan | 3_D |
Reed Schoenfeld | 3_D |
Saira Nagda | 3_D |
Jessica Alvarez | 3_E |
Khang Huynh | 3_E |
Yeddailin Gonzalez | 3_E |
Zach Powery | 3_E |
Dhruv Rungta | 3_F |
Divya Subramanian | 3_F |
Issac Jung | 3_F |
Kellan Hepditch | 3_F |
Nyteeh Camara | 3_F |
Beren Berber | 3_G |
Holly Wilcox | 3_G |
Muskaan Amin | 3_G |
Shlok Banshal | 3_G |
Bria Maddox | 3_H |
Dadou Sabrina Thea Ikirezi | 3_H |
Elle Commerce | 3_H |
Sabina DiPietro | 3_H |
Charlie Chen | 3_I |
Elizabeth Farmer | 3_I |
Keith Buenrostro Brown | 3_I |
Patricia Perez Utra | 3_I |
Yinuo Tong | 3_I |
Isabella Lopez | 3_J |
Jayden Neidell | 3_J |
Rani Teddy | 3_J |
Shreya Karumuri | 3_J |
Name | Team |
---|---|
Ezequiel Baltierra | 4_A |
Gema Granado | 4_A |
Julia Zheng | 4_A |
Nidhi Kolluri | 4_A |
Selin Bildirici | 4_A |
Allison Lulov | 4_B |
Cole Bonawitz | 4_B |
Fiona Loughran | 4_B |
Richard Zhou | 4_B |
kenzy paul | 4_B |
Akash Mishra | 4_C |
Ava Betanco-Born | 4_C |
Christian Linen | 4_C |
Jack McMahon | 4_C |
Aisha Ovando Fernandez | 4_D |
Jessica Brown | 4_D |
McKenna Adams | 4_D |
Micah Rodman | 4_D |
Hana Hafeez | 4_E |
Hanna Lavi | 4_E |
Luisa Mantilla | 4_E |
Thea Lapham | 4_E |
Avi Wagner | 4_F |
Hao Li | 4_F |
Sophia Shen | 4_F |
Vanessa Lin | 4_F |
Alyssa Guardado | 4_G |
Ananya Kamath | 4_G |
Aubrey Behling | 4_G |
Isha Saravanan | 4_G |
Name | Team |
---|---|
Adrian Schmeichler Martinez | 5_A |
Bruce Cao | 5_A |
Jules Gates | 5_A |
Olivia Prusky | 5_A |
Tyler Drangula | 5_A |
Angel Sajous | 5_B |
Fiza Khan | 5_B |
Meera Khare | 5_B |
Shwe Win | 5_B |
Kate Westlake | 5_C |
Mia Wells | 5_C |
Nathan Vail | 5_C |
Nathaniel George | 5_C |
Samantha Lefkowitz | 5_C |
Kiki Henry | 5_D |
Sidd Amirneni | 5_D |
Swarajh Mehta | 5_D |
Vanessa Dare | 5_D |
Andrew Li | 5_E |
Cabot Boling | 5_E |
Rhea Chelar | 5_E |
Sam Bodensteiner | 5_E |
Aadesh Anchaliya | 5_F |
Isabel Ottensoser | 5_F |
Nathan Gaviser | 5_F |
Stella Stojanov | 5_F |
Alyssa Yang | 5_G |
Emerson Wiseman | 5_G |
Lily Samuels | 5_G |
Sandy Wu | 5_G |
Hyeonsu An | 5_H |
JP Gasparian | 5_H |
Lauren Keaney | 5_H |
Vicky Gorman | 5_H |
Ellie Armstrong | 5_I |
Emma Chua | 5_I |
Nikki Caparrelli | 5_I |
Stephanie Sensel | 5_I |
Name | Team |
---|---|
Catalina Giraldo | 6_A |
George Fenimore | 6_A |
Maria Junaid | 6_A |
Robert Silzer | 6_A |
Xuerui He | 6_A |
Charlotte Roberts | 6_B |
Ian Opel | 6_B |
Leo Goldberg | 6_B |
Sarah Diaz | 6_B |
Clara Sun | 6_C |
Eileen Ma | 6_C |
Kinsey Allen | 6_C |
Skylar Altman | 6_C |
Carrington Jones | 6_D |
Hannah Graham | 6_D |
Kyle McCutchen | 6_D |
Vincent Hovsepian | 6_D |
Abhinav Meduri | 6_E |
Carolina Deus | 6_E |
Kate MacDonald | 6_E |
Lucas Sher | 6_E |
Sophie Brooks | 6_E |
Kelly Yin | 6_F |
Ruo Shi Yang | 6_F |
Sarah Hernandez | 6_F |
Violet Weber | 6_F |
Cassatt Boatwright | 6_G |
Emily Fleck | 6_G |
Jane Curry | 6_G |
Macy McPeters | 6_G |
Name | Team |
---|---|
Breanna Garner | 7_A |
Dylan Patterson | 7_A |
Kyra Kozey | 7_A |
Rafael Mautner | 7_A |
Sharon Zlatnik | 7_A |
Abbie Lambert | 7_B |
Alexxandra Hoffmann | 7_B |
Caroline Felker | 7_B |
Youngwon Yoon | 7_B |
Ashley Park | 7_C |
Harrison Walley | 7_C |
Ivan Herrera | 7_C |
Sophie Brynes | 7_C |
Carmen Pastrana | 7_D |
Michael Baravarian | 7_D |
Riley Palmer | 7_D |
Tim Le | 7_D |
Brielle Widelo | 7_E |
Dan Jellinek | 7_E |
Kevin Edmonds | 7_E |
Mackenzie Sheehy | 7_E |
Mia DePaolo | 7_E |
Abby Perry | 7_F |
Dylan Kessler | 7_F |
Sofia Mukamal | 7_F |
Will Mayo | 7_F |
Bomin Kim | 7_G |
Emma Pophal | 7_G |
Phillips Moore | 7_G |
Selin Kumru | 7_G |
Alexis Ashley | 7_H |
Anya Deng | 7_H |
Celia Lawlor | 7_H |
Jessica Lawal | 7_H |
Avery Braithwaite | 7_I |
Brooke Li | 7_I |
Chelsea Nguyen | 7_I |
Gabriella Lozano | 7_I |
Sanjana Kalagara | 7_I |
Name | Team |
---|---|
Clement Liu | 8_A |
Elly Ronald | 8_A |
Luciana Wei | 8_A |
Renzo Larrea | 8_A |
Ana Ramirez | 8_B |
Angela Chen | 8_B |
Ashley Gutierrez-Torres | 8_B |
Mia Rothschild | 8_B |
Michael Shirin-Stroh | 8_B |
Anna Karius | 8_C |
Aria Dwoskin | 8_C |
Christina Liu | 8_C |
Trisha Iyer | 8_C |
Ben Wu | 8_D |
James Li | 8_D |
Lucy Glynn | 8_D |
Maya Hoteit | 8_D |
Ben Kahne | 8_E |
Clare Lee | 8_E |
Marissa Rodriguez | 8_E |
Michael Li | 8_E |
Eliza Sirovich | 8_F |
Maddie Tsang | 8_F |
Mayah Ding | 8_F |
Rylee Lent | 8_F |
Akshara Krishna | 8_G |
Leena Rotondo | 8_G |
Nawra Roya | 8_G |
Seung Hyun Jin | 8_G |
Name | Team |
---|---|
Anurag Anugu | 9_A |
Govind Gurnani | 9_A |
Millie Mak | 9_A |
Samantha Cohen | 9_A |
Leidi Salcedo-Urena | 9_B |
Luna Abadia | 9_B |
Mia Paz | 9_B |
Owen Thomas | 9_B |
Ryan Zaaiett | 9_B |
Alexandra Himmel | 9_C |
John Dong | 9_C |
Trevor Darr | 9_C |
Victoria Pulliam | 9_C |
Alisha Mittal | 9_D |
Isabella Fauber | 9_D |
Lauren Ingram | 9_D |
Sarah Pusser | 9_D |
Zishen Li | 9_D |
Aditi Ramesh Iyer | 9_E |
Ishaan Narsinghani | 9_E |
Jaden Riera | 9_E |
Sophie Pentz | 9_E |
Julia Williams | 9_F |
Raymond Adams | 9_F |
Sarah Fong | 9_F |
Suraj Chatoth | 9_F |
Aditya Baliga | 9_G |
Jay Shin | 9_G |
Leah Yu | 9_G |
Maria Hernandez San Vicente | 9_G |
Nya Williams | 9_G |
Clark Raustiala | 9_H |
Eric Chen | 9_H |
Gigi Enrico | 9_H |
Taylor Williams | 9_H |
Aissah Pierre Louis | 9_I |
Avery Hamlin | 9_I |
Javan Mayrand | 9_I |
Steven Duan | 9_I |
Name | Team |
---|---|
Aidan Shen | 10_A |
Anthony Metayer | 10_A |
Ella Kirksey | 10_A |
Maddie Weiler | 10_A |
Christopher Tarro | 10_B |
Morgan Thompson | 10_B |
Thomas Hines | 10_B |
Zeynep Kosebalaban | 10_B |
Darren Li | 10_C |
Ella Andonov | 10_C |
Emma Xiong | 10_C |
Leigh Wooster | 10_C |
Cielo Medina | 10_D |
Drew Frank | 10_D |
Julia Ecker | 10_D |
Owen Ebner | 10_D |
Zoe Foose | 10_D |
Ashley Chaionn | 10_E |
Daelyn Edge | 10_E |
Jennifer Hu | 10_E |
Nayeli Reyes Rivera | 10_E |
Aissatou Diallo | 10_F |
Aretha Gao | 10_F |
Connor Leathe | 10_F |
Henry Belin | 10_F |
Samuel Kodish | 10_F |
Christiana Haynes | 10_G |
Major Richmond | 10_G |
Thomas Billings | 10_G |
Veronika Fragoso | 10_G |
Team name
Pick a team name. It can be straightforward, or it can be cheeky, but it must be SFW. Let your TA know your team name asap. Once everyone’s team names are in, your project repos will be created (give your TA a couple of minutes), and then you can continue with the rest of your task.
Merge conflicts
When you and your teammates work on the lines of code within a document and both try to push your changes, you will run into issues. Merge conflicts happen when you merge branches that have competing changes, and Git needs your help to decide which changes to incorporate in the final merge.
Our first task today is to walk you through a merge conflict! First, a bit of Git review:
- Pushing to a repo replaces the code on GitHub with the code you have on your computer.
- If a collaborator has made a change to your repo on GitHub that you haven’t incorporated into your local work, GitHub will stop you from pushing to the repo because this could overwrite your collaborator’s work!
- So you need to explicitly “merge” your collaborator’s work before you can push.
- If your and your collaborator’s changes are in different files or in different parts of the same file, git merges the work for you automatically when you pull.
- If you both changed the same part of a file, git will produce a merge conflict because it doesn’t know how which change you want to keep and which change you want to overwrite.
Git will put conflict markers in your code that look like:
<<<<<<< HEAD
See also: [dplyr documentation](https://dplyr.tidyverse.org/)
=======
See also [ggplot2 documentation](https://ggplot2.tidyverse.org/)
>>>>>>> some1alpha2numeric3string4
The ===
s separate your changes (top) from their changes (bottom).
Note that on top you see the word HEAD
, which indicates that these are your changes.
And at the bottom you see some1alpha2numeric3string4
(well, it probably looks more like 28e7b2ceb39972085a0860892062810fb812a08f
).
This is the hash (a unique identifier) of the render your collaborator made with the conflicting change.
Your job is to reconcile the changes: edit the file so that it incorporates the best of both versions and delete the <<<
, ===
, and >>>
lines. Then you can stage and render the result.
Activity
Setup
- Clone the
project
repo and open theabout.qmd
file. - Assign the numbers 1, 2, 3, 4, and 5 to each of the team members. If your team has fewer than 5 people, some people will need to have multiple numbers.
Let’s cause a merge conflict!
Our goal is to see two different types of merges: first we’ll see a type of merge that git can’t figure out on its own how to do on its own (a merge conflict) and requires human intervention, then another type of where that git can figure out how to do without human intervention.
Doing this will require some tight choreography, so pay attention!
Take turns in completing the exercise, only one member at a time. Others should just watch, not doing anything on their own projects (this includes not even pulling changes!) until they are instructed to. If you feel like you won’t be able to resist the urge to touch your computer when it’s not your turn, we recommend putting your hands in your pockets or sitting on them!
Before starting
Everyone should have the repo cloned and know which role number(s) they are.
Role 1
- Go to
about.qmd
in your project repo. Change the[team name]
to your actual team name. - Render the project by clicking on Render in the Build tab, commit (all changed files), and push.
Make sure the previous role has finished before moving on to the next step.
Role 2
Change the team name to some other word.
Render the project by clicking on Render in the Build tab, commit (all changed files), and push. You should get an error.
Pull. Take a look at the document (
about.qmd
) with the merge conflict.Clear the merge conflict by editing the document to choose the correct/preferred change.
Render the project by clicking on Render in the Build tab.
Click the Stage checkbox for all files in your Git tab. Make sure they all have check marks, not filled-in boxes.
Commit and push.
Make sure the previous role has finished before moving on to the next step.
Role 3
- Change the name of the first team member.
- Render the project by clicking on Render in the Build tab, commit, and push. You should get an error.
- Pull. No merge conflicts should occur, but you should see a message about merging.
- Now push.
Make sure the previous role has finished before moving on to the next step.
Role 4
- Change the name of the first team member to something other than what the previous team member did.
- Render the project by clicking on Render in the Build tab, commit, and push. You should get an error.
- Pull. Take a look at the document with the merge conflict. Clear the merge conflict by choosing the correct/preferred change. Render the project by clicking on Render in the Build tab, commit, and push.
Make sure the previous role has finished before moving on to the next step.
Role 5
- Change the name of the rest of the team members and add descriptions for each person with the help of your team members. Role 5 should be the only one typing; the others should help verbally.
- Render the project by clicking on Render in the Build tab and commit. Discuss as a team what you expect to happen when you hit push. Should there be a merge conflict error or not?
- If there is a merge conflict, fix it. If not, push your changes.
Everyone
Pull, and observe the changes in your project.
Tips for collaborating via GitHub
- Always pull first before you start working.
- Resolve a merge conflict (render and push) before continuing your work. Never do new work while resolving a merge conflict.
- Render, commit, and push often to minimize merge conflicts and/or to make merge conflicts easier to resolve.
- If you find yourself in a situation that is difficult to resolve, ask questions ASAP. Don’t let it linger and get bigger.
Team contract
Go to your project repository and open contract.qmd
. As the instructions suggest, pick a teammate to be the scribe. Discuss the prompts and write up your answers. Once done, click Render in the build tab, commit, and push.
Grading
We will evaluate the first milestone of your project based on your participation in this activity. Each team member who participates in the activity in person during the lab session will earn 5 points towards their project.