Skip to content

Commit

Permalink
Merge branch 'main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
NGovani authored Jan 14, 2021
2 parents c5234a6 + 85744a0 commit aef8aa0
Show file tree
Hide file tree
Showing 22 changed files with 90 additions and 16 deletions.
1 change: 0 additions & 1 deletion 02_specification/index.tex

This file was deleted.

11 changes: 5 additions & 6 deletions 03_gamedesign/index.tex
Original file line number Diff line number Diff line change
Expand Up @@ -209,15 +209,14 @@ \subsubsection{Code testing}

While Go is strongly typed and would mean that most errors can be detected at compile-time (or even at time of coding with its performant language server), having unit and integration tests greatly improved the maintainability and ease of development of the project--these issues were particularly important as this was a large-scale group software engineering project--developers stepping on each other's toes is a common occurrence in non-tested group project code. Henceforth, tests were required for non-trivial server-side code.

\subsection{Peer Review}
\subsubsection{Peer Review}

Peer review was also setup via GitHub pull requests--each change required the approval of another member in the infrastructure team. This practice not only promoted consistent code design and implementation, it minimised mistakes and ensured that the code implementation meets design and implementation requirements set forth. Further, as there was variation in programming skill among code contributors, knowledge sharing was facilitated by code reviews. This was also a critical opportunity for engineers to learn more about the other code being contributed to the project.

\subsection{Continuous Integration}
\label{sec:GD:implementation:practices:CI}
\subsubsection{Continuous Integration}

Via GitHub Actions\footnote{https://github.com/features/actions}, continuous integration was set up. Each Pull Request (PR) was set up to trigger automated runs of written tests and a full simulation in addition to static code analysers such as linters. These checks must all pass for the PR to be merged into the main branch. Automated testing and code analysis saved time and facilitates regression testing, as all tests--existing and new--were run for each change. Running a full simulation also served as a good stress-test for the system to make sure that it does not crash on a similar full simulation. Further, automated tests were run on a reference system (Ubuntu 20.04 with Go 1.15.5 and Node 14), helping to prevent system-specific quirks or bugs from polluting the codebase.
Via GitHub Actions\footnote{https://github.com/features/actions}, continuous integration was set up. Each Pull Request (PR) was set up to trigger automated runs of written tests and a full simulation in addition to static code analysers such as linters. These checks must all pass for the PR to be frequently merged into the main branch. Automated testing and code analysis saved time and facilitates regression testing, as all tests--existing and new--were run for each change. Running a full simulation also served as a good stress-test for the system to make sure that it does not crash on a similar full simulation. Further, automated tests were run on a reference system (Ubuntu 20.04 with Go 1.15.5 and Node 14), helping to prevent system-specific quirks or bugs from polluting the codebase.

\subsection{Continuous Development}
\subsubsection{Continuous Deployment}

On receiving PR approval, passing automated tests and finally merging into the main codebase, the visualisation website is automatically rebuilt with the latest changes. This saved time as manual builds were not required. The builds were produced on a reference system (identical to that mentioned in~\ref{sec:GD:implementation:practices}), ensuring consistent builds free from system-specific quirks. Further, automated builds meant that the website always runs on the latest codebase.
On receiving PR approval, passing automated tests and finally merging into the main codebase, the visualisation website is automatically rebuilt with the latest changes. This saved time as manual builds were not required. The builds were produced on a reference system (identical to that mentioned in the Continuous Integration section), ensuring consistent builds free from system-specific quirks. Further, automated builds meant that the website always runs on the latest codebase.
Binary file removed 16_results/images/meme.jpg
Binary file not shown.
1 change: 0 additions & 1 deletion 16_results/index.tex

This file was deleted.

Empty file.
Empty file.
Empty file added 16_results_and_eval/iigo.tex
Empty file.
File renamed without changes
5 changes: 5 additions & 0 deletions 16_results_and_eval/index.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
\chapter{Results \& Evaluation}

\include{16_results_and_eval/iigo.tex}
\include{16_results_and_eval/foraging.tex}
\include{16_results_and_eval/disaster.tex}
Binary file removed 17_evaluation/images/meme.jpg
Binary file not shown.
1 change: 0 additions & 1 deletion 17_evaluation/index.tex

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ \chapter{Simulations Configs}
\section{Baseline Config}
\label{sec:Config_Appendix:baseline}

\lstinputlisting[language=json]{19_appendix/json_configs/baseline_config.json}
\lstinputlisting[language=json]{19_appendix_config/json_configs/baseline_config.json}
28 changes: 28 additions & 0 deletions 20_appendix_roles/index.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
\chapter{Roles}

\section{Overall Group Responsibilities}
\label{sec:roles_appendix:overall}

\begin{table}[!h]
\centering
\begin{tabular}{|l|l|l|l|l|}
\hline
\multicolumn{1}{|c|}{\multirow{2}{*}{\textbf{Team}}} & \multicolumn{2}{l|}{\textbf{Design}} & \multicolumn{2}{l|}{\textbf{Infra}} \\ \cline{2-5}
\multicolumn{1}{|c|}{} & \textbf{Area} & \textbf{Reps} & \textbf{Area} & \textbf{Reps} \\ \hline
1 & IITO/IIFO & Naim & Core & \begin{tabular}[c]{@{}l@{}}LH\\ Yusuf\end{tabular} \\ \hline
2 & Core & Yannis & IITO/IIFO & Eirik \\ \hline
3 & IIGO & Ezgi & IIGO & \begin{tabular}[c]{@{}l@{}}Neelesh\\ Preet\end{tabular} \\ \hline
4 & IIGO & Rudolfs & IIGO & James K. \\ \hline
5 & Enviroment & Asimina & Enviroment & James T. \\ \hline
6 & Voting & Tae & Voting & Ning \\ \hline
\end{tabular}
\caption{List of roles across the entire class}
\label{table:roles_appendix:overall}
\end{table}

\input{20_appendix_roles/teams/team1.tex}
\input{20_appendix_roles/teams/team2.tex}
\input{20_appendix_roles/teams/team3.tex}
\input{20_appendix_roles/teams/team4.tex}
\input{20_appendix_roles/teams/team5.tex}
\input{20_appendix_roles/teams/team6.tex}
36 changes: 36 additions & 0 deletions 20_appendix_roles/teams/team1.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
\section{Team 1}
\label{sec:roles_appendix:team1}

\begin{table}[!h]
\centering
\begin{tabular}{|l|l|}
\hline
\textbf{Team Member} & \textbf{Areas} \\ \hline
Lin H. Lee & Infra, Vis, Report \\
Darrick L. & Infra, Vis \\
Olly L. & Design, Vis, Report \\
Naim G. & Design, Infra, Report, Sim \\
Yusuf I. & Infra \\
Ethan S.K. & Vis \\
Emily M. & Infra, Report, Sim, Agent \\
Michalis P. & Infra, Report, Sim, Agent \\ \hline
\end{tabular}
\caption{Areas of work team 1 members have contributed to}
\label{sec:roles_appendix:team1}
\end{table}

\begin{table}[!h]
\centering
\begin{tabular}{|l|l|}
\hline
\textbf{Key} & \textbf{Meaning} \\ \hline
Infra & Worked on infrastructure code or assisted in code review \\
Design & Worked on the design of the game \\
Vis & Worked on the visualisation/website \\
Report & Contributed to the reports \\
Sim & Worked on the simulation and analysis \\
Agent & Worked on team 1's agent \\ \hline
\end{tabular}
\end{table}

Note: the above tables says nothing about the amount of work a person put in merely the breadth of topics they contributed to.
2 changes: 2 additions & 0 deletions 20_appendix_roles/teams/team2.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
\section{Team 2}
\label{sec:roles_appendix:team2}
2 changes: 2 additions & 0 deletions 20_appendix_roles/teams/team3.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
\section{Team 3}
\label{sec:roles_appendix:team3}
2 changes: 2 additions & 0 deletions 20_appendix_roles/teams/team4.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
\section{Team 4}
\label{sec:roles_appendix:team4}
2 changes: 2 additions & 0 deletions 20_appendix_roles/teams/team5.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
\section{Team 5}
\label{sec:roles_appendix:team5}
2 changes: 2 additions & 0 deletions 20_appendix_roles/teams/team6.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
\section{Team 6}
\label{sec:roles_appendix:team6}
Empty file added main.synctex(busy)
Empty file.
11 changes: 5 additions & 6 deletions main.tex
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,10 @@
\usepackage{tikz}
%\usepackage{algpseudocode}
\usepackage{tabularx}
%\usepackage{multirow}
\usepackage{multirow}
\usepackage{makecell}
\usepackage{appendix}

\def\checkmark{\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;}


Expand Down Expand Up @@ -50,8 +51,6 @@
% This keeps the order of the sections in the side view in keeping with the order of the document.

\input{00_introduction/index.tex}
\input{01_roles/index.tex}
\input{02_specification/index.tex}
\input{03_gamedesign/index.tex}
\input{04_environment/design.tex}
\input{06_iito/index.tex} % yeah, wrong numbering; I KNOW [Ezgi]
Expand All @@ -65,12 +64,12 @@
\input{13_team5_agentdesign/index.tex}
\input{14_team6_agentdesign/index.tex}
\input{15_simulations/index.tex}
\input{16_results/index.tex}
\input{17_evaluation/index.tex}
\input{16_results_and_eval/index.tex}
\input{18_conclusion/index.tex}

\begin{appendices}
\input{19_appendix/sim_configs.tex}
\input{20_appendix_roles/index.tex}
\input{19_appendix_config/sim_configs.tex}
\end{appendices}

% \input{00_example/example.tex}
Expand Down

0 comments on commit aef8aa0

Please sign in to comment.