Week 5: Refactoring

mpalhutchinson

mpa-LHutchinson

Posted on October 10, 2024

Week 5: Refactoring

Introduction

This week I was tasked with adding 3 small changes on my release 0.1 project, all on separate commits. Then, I would use git rebase to squash all the commits into one commit, merging it with the main branch. Compared to other labs I found this one to be simpler and less time consuming since I wasn't adding anything major to my project, and the only thing I had to do was combine them into one commit.

Getting started

To get started, I pulled the most recent changes to the main branch and created a new branch called "refactoring". While working on these changes, I made sure to add a commit after each one, instead of working on all the changes in the same commit.

The changes

My first change was actually to fix a bug I notice in my code. The last lab was to add the TOML file functionality. If I tried to run the code with a TOML file that had the api key as undefined, eg.

api =

The program would error out. I fixed this so now it simply provides a warning message, and continues with whatever api key the user provided as an environment variable instead.

The second change was another bug fix, I noticed that if the user simply runs the program without any extra arguments, eg.

node index.js

Nothing would print out. But it's supposed to print a welcome message. I figured out that since I added proper exit conditions to the code, it would exit before it could ever reach the check. To fix this, I just moved the check to the top of the code instead of the bottom.

The last change I added was a simple variable rename. In both files that are used to run the program, a variable named "modelChange" was defined to keep track of which model the AI would use. Since the user is not always changing the default model, I thought it would provide more clarity if I renamed this to "modelNumber". Every instance of modelChange was renamed to modelNumber.

Rebasing

Once I committed all my changes, it was time for the rebase. I ran the interactive rebase command:

git rebase main -i

And I opened the interactive rebase in my editor. I had to refresh on my unix commands a little (like pressing I to go into insert mode and typing :wq to save) but once I did I made sure the last 2 commits were squashed into the first commit. After saving this rebase, I did an amend commit to rewrite the commit message, indicating that it was a refactor and listing the changes I made. Finally, I merged this one commit into main. Here is the commit:

fac3141

Conclusion

Overall this lab was a simple introduction to rebasing and squashing several commits into one. Not only did I learn about git rebase, but I was able to freshen up on my unix commands and fix my project. I'm glad I had an easy lab this week since there's a lot to do in other courses and hacktoberfest.

💖 💪 🙅 🚩
mpalhutchinson
mpa-LHutchinson

Posted on October 10, 2024

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

What was your win this week?
weeklyretro What was your win this week?

November 29, 2024

Where GitOps Meets ClickOps
devops Where GitOps Meets ClickOps

November 29, 2024

How to Use KitOps with MLflow
beginners How to Use KitOps with MLflow

November 29, 2024

Modern C++ for LeetCode 🧑‍💻🚀
leetcode Modern C++ for LeetCode 🧑‍💻🚀

November 29, 2024