Skip to content

Commit

Permalink
[TEAM CONTRIBUTIONS] POC (#235) (#237)
Browse files Browse the repository at this point in the history
Co-authored-by: mya <hussam52@mcmaster.ca>
Co-authored-by: Ayushi Amin <amina23@mcmaster.ca>
Co-authored-by: tbrar06 <brart5@mcmaster.ca>
Co-authored-by: Nivetha Kuruparan <niv.kuru@gmail.com>
  • Loading branch information
5 people authored Nov 7, 2024
1 parent ab561ff commit 001da29
Show file tree
Hide file tree
Showing 2 changed files with 100 additions and 76 deletions.
Binary file modified docs/projMngmnt/POC_Team_Contrib.pdf
Binary file not shown.
176 changes: 100 additions & 76 deletions docs/projMngmnt/POC_Team_Contrib.tex
Original file line number Diff line number Diff line change
Expand Up @@ -24,135 +24,120 @@

\section{Demo Plans}

\wss{What will you be demonstrating}
For our proof of concept demonstration, we will showcase the core functionality of our energy-efficient
Python code refactoring tool. The demonstration will focus on the following key aspects:
\begin{enumerate}

\item \textbf{Code Smell Detection:} We will show how we used Pylint to identify inefficient code
patterns (code smells) in Python source code that may lead to higher energy consumption.
\item \textbf{Refactoring:} Using the Rope library, we'll demonstrate how our tool will
apply refactorings to address the detected code smells.
\item \textbf{Energy Consumption Measurement:} We will show how we utilized CodeCarbon to measure
and compare the energy consumption of the original code versus the refactored version.
\item \textbf{Functionality Preservation:} We will demonstrate that the refactored code
maintains its original functionality by running the original test suite against both versions of the code.
\item \textbf{Performance Metrics:} We will display performance reports comparing the original and refactored
code, highlighting improvements in energy efficiency.

\end{enumerate}

\section{Team Meeting Attendance}

\wss{For each team member how many team meetings have they attended over the
time period of interest. This number should be determined from the meeting
issues in the team's repo. The first entry in the table should be the total
number of team meetings held by the team.}

\begin{table}[H]
\centering
\begin{tabular}{ll}
\toprule
\textbf{Student} & \textbf{Meetings}\\
\midrule
Total & Num\\
Name 1 & Num\\
Name 2 & Num\\
Name 3 & Num\\
Name 4 & Num\\
Name 5 & Num\\
Total & 11\\
Sevhena Walker & 11\\
Nivetha Kuruparan & 11\\
Tanveer Brar & 11\\
Mya Hussain & 11\\
Ayushi Amin & 11\\
\bottomrule
\end{tabular}
\end{table}

\wss{If needed, an explanation for the counts can be provided here.}
We aim to have all team members present for any team meetings we hold. If one person cannot attend the meeting, we usually reschedule to a different time.

\section{Supervisor/Stakeholder Meeting Attendance}

\wss{For each team member how many supervisor/stakeholder team meetings have
they attended over the time period of interest. This number should be determined
from the supervisor meeting issues in the team's repo. The first entry in the
table should be the total number of supervisor and team meetings held by the
team. If there is no supervisor, there will usually be meetings with
stakeholders (potential users) that can serve a similar purpose.}

\begin{table}[H]
\centering
\begin{tabular}{ll}
\toprule
\textbf{Student} & \textbf{Meetings}\\
\midrule
Total & Num\\
Name 1 & Num\\
Name 2 & Num\\
Name 3 & Num\\
Name 4 & Num\\
Name 5 & Num\\
Total & 4\\
Sevhena Walker & 4\\
Nivetha Kuruparan & 4\\
Tanveer Brar & 4\\
Mya Hussain & 4\\
Ayushi Amin & 4\\
\bottomrule
\end{tabular}
\end{table}

\wss{If needed, an explanation for the counts can be provided here.}
We aim to have all team members present for any meetings we have with our supervisor. If one person cannot attend the meeting, we usually reschedule to a different time.

\section{Lecture Attendance}

\wss{For each team member how many lectures have they attended over the time
period of interest. This number should be determined from the lecture issues in
the team's repo. The first entry in the table should be the total number of
lectures since the beginning of the term.}

\begin{table}[H]
\centering
\begin{tabular}{ll}
\toprule
\textbf{Student} & \textbf{Lectures}\\
\midrule
Total & Num\\
Name 1 & Num\\
Name 2 & Num\\
Name 3 & Num\\
Name 4 & Num\\
Name 5 & Num\\
Total & 12\\
Sevhena Walker & 11\\
Nivetha Kuruparan & 8\\
Tanveer Brar & 8\\
Mya Hussain & 6\\
Ayushi Amin & 6\\
\bottomrule
\end{tabular}
\end{table}

\wss{If needed, an explanation for the lecture attendance can be provided here.}
We aim to have at least one team member present for lectures to make sure we don't miss any critical information regarding deliverables.

\section{TA Document Discussion Attendance}

\wss{For each team member how many of the informal document discussion meetings
with the TA were attended over the time period of interest.}

\begin{table}[H]
\centering
\begin{tabular}{ll}
\toprule
\textbf{Student} & \textbf{Lectures}\\
\midrule
Total & Num\\
Name 1 & Num\\
Name 2 & Num\\
Name 3 & Num\\
Name 4 & Num\\
Name 5 & Num\\
Total & 3\\
Sevhena Walker & 3\\
Nivetha Kuruparan & 3\\
Tanveer Brar & 3\\
Mya Hussain & 3\\
Ayushi Amin & 3\\
\bottomrule
\end{tabular}
\end{table}

\wss{If needed, an explanation for the attendance can be provided here.}

\section{Commits}

\wss{For each team member how many commits to the main branch have been made
over the time period of interest. The total is the total number of commits for
the entire team since the beginning of the term. The percentage is the
percentage of the total commits made by each team member.}

\begin{table}[H]
\centering
\begin{tabular}{lll}
\toprule
\textbf{Student} & \textbf{Commits} & \textbf{Percent}\\
\midrule
Total & Num & 100\% \\
Name 1 & Num & \% \\
Name 2 & Num & \% \\
Name 3 & Num & \% \\
Name 4 & Num & \% \\
Name 5 & Num & \% \\
Total & 396 & 100\% \\
Ayushi Amin & 89 & 23\% \\
Tanveer Brar & 44 & 11\% \\
Mya Hussain & 59 & 15\% \\
Sevhena Walker & 156 & 39\% \\
Nivetha Kuruparan & 48 & 12\% \\
\bottomrule
\end{tabular}
\end{table}

\wss{If needed, an explanation for the counts can be provided here. For
instance, if a team member has more commits to unmerged branches, these numbers
can be provided here. If multiple people contribute to a commit, git allows for
multi-author commits.}
Some people might have higher commit counts because they commit more frequently or make smaller, more granular changes, whereas others might commit less often with larger, consolidated changes. Additionally some group members squash and merge when merging PRs and others forget sometimes.

\section{Issue Tracker}

Expand All @@ -166,22 +151,61 @@ \section{Issue Tracker}
\toprule
\textbf{Student} & \textbf{Authored (O+C)} & \textbf{Assigned (C only)}\\
\midrule
Name 1 & Num & Num \\
Name 2 & Num & Num \\
Name 3 & Num & Num \\
Name 4 & Num & Num \\
Name 5 & Num & Num \\
Sevhena Walker & 25 & 24 \\
Mya Hussain & 10 & 19 \\
Nivetha Kurparan & 18 & 23 \\
Tanveer Brar & 9 & 20 \\
Ayushi Amin & 12 & 21 \\
\bottomrule
\end{tabular}
\end{table}

\wss{If needed, an explanation for the counts can be provided here.}
The numbers in the \textbf{Assigned} column give a better picture of each team members contribution. Many commits were sometimes authored by the same person due to differences in team responsibilities (logistics and management). Furthermore, the issues here refer to what we can call ``work'' issues. Issues with the \texttt{lecture}, \texttt{team-meeting}, \texttt{sup-meeting}, and \texttt{ta-meeting} labels are not included in this tally.

\section{CICD}

\wss{Say how CICD will be used in your project}

\wss{If your team has additional metrics of productivity, please feel free to
add them to this report.}

The section outlines the plan to include CI/CD for this project. The plan will streamline development, testing and deployment processes, while ensuring consistent performance improvements.

\subsection{Source Control and Branching Strategy}
\begin{itemize}
\item \textbf{Repository Setup}: Code is hosted on GitHub for version control and collaboration.
\item \textbf{Branching Strategy}:
\begin{itemize}
\item \texttt{main}: Production-ready code.
\item \texttt{dev}: Primary development branch.
\item \texttt{docs}: Feature branch of dev that is meant for documentation commits.
\end{itemize}
Based on deliverables, temporary branches are created on team and individual level and discarded once merged into one of the above branches.
In future, \texttt{dev} will be diverged into multiple feature branches for initial commits that are eventually merged into it. These include component specific branches such as \texttt{refactoring}, \texttt{analyser}, \texttt{energy}, \texttt{test} and \texttt{plugin}.
\item \textbf{Merging Policy}: All pull requests should have at least two reviews before merging, as outlined in the Development Plan.
\end{itemize}

\subsection{Build and Testing Pipeline}
GitHub Actions will be used for CI/CD to automate testing and code analysis on pull requests. They will include the following:
\begin{itemize}
\item \textbf{Build Steps}
\begin{itemize}
\item \textbf{Static Code Analysis \& Linting}: \texttt{PyLint} will be used to handle both code smells for static analysis and enforce PEP 8 style guide.
\end{itemize}
\item \textbf{Testing}:
\begin{itemize}
\item \textbf{Unit Tests}: Unit tests will be written using \texttt{PyTest}.
\item \textbf{Code Coverage}: Test code coverage will be tracked using \texttt{coverage.py}.
\item \textbf{Performance Testing}: Metrics such as memory usage and execution time will be tracked using \texttt{cProfile}.
\end{itemize}
\end{itemize}

\subsection{Continuous Deployment}
With every stable version, the product will need to be continuously deployed.
\begin{itemize}
\item \textbf{Environment Setup}: To standardize environment settings across platforms, Docker containers will be used.
\item \textbf{Deployment}:
\begin{itemize}
\item \textbf{Refactoring Library}: The library will be rebuilt and updated on its public facing source.
\item \textbf{VS Code Extension}: With each update to main branch, the VS Code extension will automatically be built and updated on its public facing link.
\end{itemize}
\end{itemize}

\section{Additional Productivity Metrics}
The team does not have any additional metrics of productivity.
\end{document}

0 comments on commit 001da29

Please sign in to comment.