\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[a4paper, margin=0.75in]{geometry}

% set up hyperlink coloring
\usepackage{hyperref}
\hypersetup{
    colorlinks=true,
    linkcolor=blue,
    filecolor=magenta,
    urlcolor=cyan
}

\setlength{\parindent}{0pt} % no indentation

% checkbox list: https://tex.stackexchange.com/questions/247681/how-to-create-checkbox-todo-list
\usepackage{enumitem,amssymb}
\newlist{boxlist}{itemize}{2}
\setlist[boxlist]{label=$\square$}

% code support: listings and fancy verbatim
\usepackage{listings}
\lstset{basicstyle=\ttfamily\footnotesize}
\usepackage{fancyvrb}

\renewcommand{\familydefault}{\sfdefault} % default to sans serif

%%%%%%%%%%%%%%%%
\begin{document}

\title{Advanced Exercises Set 6\\Git}
\author{EECS 201 Winter 2020}
\date{}
\maketitle

\section*{Submission Instructions}
Unlike previous advanced exercises you won't have to go to office hours:
to receive credit for this assignment you will need to do something on the campus GitLab.
This will be detailed below.
Each exercise is denoted by its point count.
\textbf{Extra credit is given for early turn-ins of advanced exercises. These details can be found on the website under the advanced homework grading policy.}

\section{Make a pull/merge request (15)}
For this exercise we'll be doing a toy example of contributing to a public repository.
This follows along what is known as the \textit{forking} workflow.
\href{https://www.atlassian.com/git/tutorials/comparing-workflows/forking-workflow}{The Atlassian Git tutorials have a good section on it}.

The repository in question is located at \texttt{\url{https://gitlab.umich.edu/eecs201/content/surveys/wn2020-topics}}.
This repository is for voting for topics we'll be covering towards the end of the class.

To contribute:
\begin{enumerate}
  \item Fork the repository to your account.
  \item Clone your fork.
  \item Add a remote that points to the original repo at \texttt{git@gitlab.umich.edu:eecs201/content/surveys/wn2020-topics}
        \\This allows you to fetch commits from that remote in order to rebase on top of it in order to handle potential merge conflicts.
  \item Make a feature branch.
  \item Cast your vote in the format according to the repo's \texttt{README.md} file.
        I (\texttt{brng}) also have cast an example vote that you can refer to.
        If there is a topic that you want covered that's not on the list,
        feel free to add it as part of the changes you'll be contributing to the original repo.
  \item Commit the necessary changes.
  \item Push your change to a remote branch on your fork's remote.
  \item Initialize a merge/pull request onto the \texttt{master} branch of https://gitlab.umich.edu/eecs201/content/surveys/wn2020-topics.
        (Note: GitLab calls this a "merge request" while GitHub calls it a "pull request";
        for the most part they work the same way save for minor differences.)
  \item This will cause a merge/pull request to be created on the original repo:
        the staff will look at them and either approve them or make a comment suggesting changes.
        For your change to be merged, it should not cause any merge conflicts and have good commit message style
        (as mentioned in lecture), though a body isn't strictly necessary as these changes are not extensive enough to merit one.
  \item When we accept your merge, you are done!
        You'll get your grade when we merge/pull your change in.
        Your extra credit will be awarded based on the time your first merge/pull request is initiated.
  \item Feel free to make additional merge/pull requests that add topics or change your original vote.
\end{enumerate}

\end{document}
