<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Anthony Gakio</title>
    <description>The latest articles on DEV Community by Anthony Gakio (@gak1o).</description>
    <link>https://dev.to/gak1o</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2195428%2F233a3c17-9f24-405f-ac7a-c8bac387d775.jpeg</url>
      <title>DEV Community: Anthony Gakio</title>
      <link>https://dev.to/gak1o</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gak1o"/>
    <language>en</language>
    <item>
      <title>Hacktoberfest 2024: A Comedy of PRs (Or: How I Learned to Stop Worrying and Love the Merge Conflicts)</title>
      <dc:creator>Anthony Gakio</dc:creator>
      <pubDate>Sat, 26 Oct 2024 05:02:29 +0000</pubDate>
      <link>https://dev.to/gak1o/hacktoberfest-2024-a-comedy-of-prs-or-how-i-learned-to-stop-worrying-and-love-the-merge-conflicts-2nhc</link>
      <guid>https://dev.to/gak1o/hacktoberfest-2024-a-comedy-of-prs-or-how-i-learned-to-stop-worrying-and-love-the-merge-conflicts-2nhc</guid>
      <description>&lt;p&gt;Dear Future Employers: Please note that any resemblance to actual git disasters in this post is purely coincidental, and I definitely know what I'm doing now.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 1: The Great Beginning&lt;/strong&gt;&lt;br&gt;
Started Hacktoberfest with the confidence of a developer who just discovered Stack Overflow. "How hard could it be?" I whispered to my rubber duck debugger, who somehow already looked disappointed in me.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The First PR: A Tragedy in Multiple Commits&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Found an "easy first issue" labeled bug. Just had to fix a simple typo in the documentation. Somehow ended up:&lt;/p&gt;

&lt;p&gt;Refactoring the entire codebase&lt;br&gt;
Breaking the CI/CD pipeline&lt;br&gt;
Making the repository sentient&lt;br&gt;
Getting banned from three Discord servers&lt;br&gt;
Learning what "git rebase" means the hard way&lt;/p&gt;

&lt;p&gt;The maintainer's response: "👍" (After 47 commits and an apologetic fruit basket)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Documentation Quest&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Decided to play it safe and stick to documentation. Found a repo that needed help with their README. Spent three hours crafting the perfect markdown table, only to discover I was editing a README from 2019 in a forked repo that hadn't been touched since the invention of fire.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Great Dependencies War&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Me: "I'll just update a few dependencies."&lt;br&gt;
Narrator: "They would, in fact, not just update a few dependencies."&lt;br&gt;
Current status of the project:&lt;/p&gt;

&lt;p&gt;4,394 security vulnerabilities fixed&lt;br&gt;
7,289 security vulnerabilities created&lt;br&gt;
Package.json file now longer than "War and Peace"&lt;br&gt;
Node_modules folder so large it has its own gravity&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The TypeScript Incident&lt;/strong&gt;&lt;br&gt;
Decided to help convert a JavaScript project to TypeScript.&lt;br&gt;
typescriptCopy&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Before:
function add(a, b) { return a + b }

// After:
function add&amp;lt;T extends number | string | boolean | undefined | null | bigint | symbol | object | unknown | any | void | never&amp;gt;(
  a: T,
  b: T &amp;amp; { readonly [P in keyof T]: T[P] }
): Promise&amp;lt;Awaited&amp;lt;T&amp;gt;&amp;gt; {
  return new Promise((resolve) =&amp;gt; resolve(a as any + b as any))
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The maintainer ghosted me so hard they deleted their GitHub account.&lt;br&gt;
The CSS Adventure&lt;br&gt;
"I'll just fix this small UI bug," I said, adding one line of CSS.&lt;br&gt;
Three days later:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cssCopy.button {
  position: relative !important;
  position: absolute !important;
  position: fixed !important;
  position: static !important;
  /* I don't know which one works but one of them does */
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;The AI Assistant Incident&lt;/strong&gt;&lt;br&gt;
Tried using AI to help with my PRs. It generated perfect code that passed all tests. Plot twist: it was for a completely different project. Somehow my contribution to a weather app ended up in a repository for managing nuclear reactors. Still got merged though. 🤷‍♂️&lt;br&gt;
The Final Push&lt;br&gt;
By October 30th:&lt;/p&gt;

&lt;p&gt;PRs Submitted: 47&lt;br&gt;
PRs Accepted: 3&lt;br&gt;
Stack Overflow Questions Asked: 392&lt;br&gt;
Stack Overflow Questions Marked as Duplicate: 391&lt;br&gt;
Times Git Force Pushed: [REDACTED]&lt;br&gt;
Coffee Consumed: Yes&lt;br&gt;
Rubber Ducks Consulted: 7&lt;br&gt;
Rubber Ducks That Quit: 6&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lessons Learned&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;"git push --force" is not the answer. (It's git push --force-with-lease, obviously)&lt;br&gt;
When a maintainer says "LGTM," it doesn't mean "Let's Go To McDonald's"&lt;br&gt;
The "S" in HTTPS stands for "Suffering"&lt;br&gt;
Your local branch is always behind origin/main, even immediately after pulling&lt;br&gt;
The best time to make a backup is right before you say "I don't need a backup"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Looking Forward to 2025&lt;/strong&gt;&lt;br&gt;
Next year's goals:&lt;/p&gt;

&lt;p&gt;Learn what Docker actually does&lt;br&gt;
Figure out why everyone keeps talking about "Kubernetes" but nobody can spell it&lt;br&gt;
Finally understand what "yarn" does differently from "npm" (besides taking up disk space)&lt;br&gt;
Maybe read the git documentation (just kidding)&lt;br&gt;
Learn to spell "committment" correctly in commit messages&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Thoughts&lt;/strong&gt;&lt;br&gt;
Would I do it all again? Absolutely. Will I prepare better next year? Also absolutely. Will that preparation help? Absolutely not.&lt;br&gt;
To all the maintainers who had to deal with my PRs: I'm sorry. To all the junior developers who looked at my merged code: I'm even more sorry.&lt;br&gt;
Remember, in the end, we're all just trying our best to contribute while secretly hoping nobody looks too closely at our variable naming conventions.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This post was written using Vim because I still haven't figured out how to exit it. Send help.&lt;br&gt;
_&lt;br&gt;
_Disclaimer: No repositories were permanently harmed in the making of this Hacktoberfest journey. The same cannot be said for my git history.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hacktoberfest</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
