DEV Community

Cover image for My first DEV PR and post!
Glenn Carremans
Glenn Carremans

Posted on • Updated on

My first DEV PR and post!

Yesterday my very first DEV PR got merged!
I didn't have any experience in Ruby so I wanted to do something easy, I came across this Issue/Feature request from @jess .

3 year badge #1562

Is your feature request related to a problem? Please describe. Let's award 3 year badges when members hit their 3 year mark!

Even though the Issue wasn't approved yet I felt pretty confident that it wouldn't be an issue because it was a suggestion from a DEV co-founder ๐Ÿ˜‚

The PR itself was fairly easy, I could base my code on the already available 2 year anniversary badge with little changes required.

Added 3 year anniversary badge #1732

What type of PR is this? (check all applicable)

  • [ ] Refactor
  • [X] Feature
  • [ ] Bug Fix
  • [ ] Documentation Update


Added 3 year anniversary badge, I hope to get this badge some day ๐Ÿ˜‰ Btw this is the very first time I ever did anything in Ruby so please let me know if I did anything wrong.

Related Tickets & Documents

Closes #1562

Mobile & Desktop Screenshots/Recordings (if there are UI changes)

Added to documentation?

  • [ ]
  • [ ] readme
  • [X] no documentation needed

[optional] What gif best describes this PR or how it makes you feel?

happy birthday

After that the PR got reviewed and merged very quickly by @ben .

I hope to stay in this awesome community long enough to receive this badge!

This is my very first blog post on DEV (and first blog post in general) I hope to not only lurk and comment but in the future make more blog posts, also a little more technical posts.

And besides my very first DEV PR and post I have also received my very first DEV Badge! ๐ŸŽ‰

Top comments (13)

ben profile image
Ben Halpern

This was one of those tasks I was sure we were going to put off for way too long.

We still don't have a four-year badge designed, but I feel like this part of the code now could probably be refactored to account for an arbitrary number of years, and maybe take an environment variable to determine how many to iterate through.

Anyone who wants to refactor this so we don't need to add a new method every year is welcome to submit another PR at some point in the next 11 or so months. ๐Ÿ˜„

glennmen profile image
Glenn Carremans

Interesting, this would indeed be a good improvement to be more future proof. Only thing you still would need to do is prepare the designs for the upcoming years but you could make a couple at once so you will be good for a few years ๐Ÿ˜‰

I am triggered by this challenge but am afraid that my knowledge in Ruby isn't good enough right now.

link2twenty profile image
Andrew Bone • Edited

I'd guess something like this

def self.award_x_year_badges(x)
  @n = {1=>"one", 2=>"two", 3=>"three",4=>"four", 5=>"five", 6=>"six", 7=>"seven", 8=>"eight", 9=>"nine", 10=>"ten"}
  s = x == 1 ? "" : "s"
  message = "Happy DEV birthday! Can you believe it's been #{@n[x]} year#{s} already?!"
  User.where("created_at < ? AND created_at > ?", (x).year.ago, (x * 365 + 2).days.ago).find_each do |user|
    achievement = BadgeAchievement.create(
      badge_id: Badge.find_by_slug("#{@n[x]}-year-club").id,
      rewarding_context_message_markdown: message,
    ) if achievement.valid?

for x in 1..10

Though I don't really know ruby either ๐Ÿ˜…

I'm not sure this line would work as expected

User.where("created_at < ? AND created_at > ?", (x).year.ago, (x * 365 + 2).days.ago).find_each do |user|
itachiuchiha profile image
Itachi Uchiha • Edited

This week my second pr merged. Iโ€™m so happy. This makes me feel better. Being part of the contributors is awesome.

Thanks @ben

dechamp profile image

dude!! So awesome! You totally encouraged me to try this myself. I literally looks at the repo the other day and was going to fix an issue (also not a ruby dev) but I was like... no they probably won't want me to. Thanks to you, I know I should!

glennmen profile image
Glenn Carremans

Awesome! I never expected that I was going to encourage anyone to contribute with my small PR and post ๐Ÿ˜‚ But so happy that I did!
I thought the same in the past with a Node project ( after a year, during Hacktoberfest, I finally did it and it was a lot of fun. I have tried different small projects/tweaks in the past, python, node and now ruby, always fun to step out of your comfort zone and just mess around.

dechamp profile image

Ya! you made a big step today. I was blown away by what happens when you put yourself out there. It helps others, so thank you!

nickytonline profile image
Nick Taylor

Congrats Glenn on getting your first PR merged! ๐Ÿ”ฅ

glennmen profile image
Glenn Carremans

Thanks! It wasn't that big of a change and I am sure anyone could have done it but it still feels great to be able to contribute to this community.

jamesmh profile image
James Hickey

Good stuff!

kyleboe profile image
Kyle Boe

Nice! I had one merged a couple weeks ago too. Feels good man.

Welcome to the PR-ty ! โ˜œ(๏พŸใƒฎ๏พŸโ˜œ)


glennmen profile image
Glenn Carremans

Awesome PR! Everyone needs a little music in their life ๐Ÿ˜‰

azelalynetan profile image
Azel Tan

Congrats!! Keep it up and treasure that feeling to keep going :)