CodeNewbie Community

Cover image for Getting Started with Open Source
Christina for Forem

Posted on • Updated on

Getting Started with Open Source

Hey CodeNewbies! I am Christina the Open Source Community Manager at Forem.

Forem is an open-source platform for empowering community like this new CodeNewbie community🎉.

Are you interested in Open Source? Looking for somewhere to contribute but don't know where to start?
The Forem team is always looking for open source contributors to help improve our projects!

Here are some resources to get started contributing and a list of beginner friendly issues you could work on.

Github Open Source Guides

If you don't know much about Open Source a great place to start is Github's Open Source Guides.

These are guides that will help you make open source contributions, whether you are a for first-time contributor or a veteran.

Documentation

Before opening issues or a PR you should always check out the contributor documentation.

Contributor documentation will help you get set up, give you details on opening issues and PRs, and help you know where to ask questions.

Documentation is also a great place to add your first contribution. As you are working through getting set up on a project note any issues you encounter or grammatical problems and create an issue for them!

Questions

It’s okay to ask questions!
Making your first contribution to open source can be scary or confusing. Asking questions is encouraged as you work through issues. Check out the Github developer guides for tips on asking good questions and effective communication.

Good First Issue

Many open source projects will have a label specific to new contributors called good first issue.

I'll highlight a few of our current good first issues. To see a full list you can check out the label here.

Refactoring

Refactor spec/requests/admin/configs_spec.rb #12283

Per @atsmith813's great suggestion in https://github.com/forem/forem/pull/12281, in an effort to make the specs in spec/requests/admin/configs_spec.rb more resilient to changes in our default SiteConfig values we should update them to remove the hardcoded defaults.

For example, we have

it "updates rate_limit_feedback_message_creation" do
  expect do
    post "/admin/config", params: { site_config: { rate_limit_feedback_message_creation: 3 },
                                    confirmation: confirmation_message }
  end.to change(SiteConfig, :rate_limit_feedback_message_creation).from(5).to(3)
end
Enter fullscreen mode Exit fullscreen mode

We should update this to check the default value rather than the hardcoded 5

it "updates rate_limit_feedback_message_creation" do
  expect do
    default_value = SiteConfig.get_field(:rate_limit_feedback_message_creation).dig(:default)
    post "/admin/config", params: { site_config: { rate_limit_feedback_message_creation: 3 },
                                    confirmation: confirmation_message }
  end.to change(SiteConfig, :rate_limit_feedback_message_creation).from(default_value).to(3)
end
Enter fullscreen mode Exit fullscreen mode

There are multiple specs that behave like this. To complete this task you should update all of them.

Use rate limit modal to alert users of rate limit exceeded warnings #11500

Describe the solution you'd like

A generic modal for rate limit warnings was added in https://github.com/forem/forem/pull/11102. It would be idea if all places in Forem that warned a user about rate limits used that model.

Start with app/services/rate_limit_checker.rb and trace back paths from there. Some examples:

  • creating too many reactions too quickly
  • updating an article or user too much too quickly
  • following too many users too quickly

Bugs

This one has an easy label and not a good first issue but still wanted to highlight it here for anyone interested in bug smashing.

All Profile Updates are Lost When 1 Field is Invalid #12284

Describe the bug

When you go to update your profile you can fill in multiple fields at a time. If you fill in many of those fields and then submit form, if 1 field is invalid you will receive an error message and none of the fields will have been saved. This can be very frustrating if you spent a lot of time filling them all out and only 1 was wrong.

Error: Screen Shot 2021-01-14 at 2 22 23 PM

Fields I had previously all filled out: Screen Shot 2021-01-14 at 2 25 34 PM

To Reproduce

  1. Go to edit profile page
  2. Fill in multiple fields but make the summary very long.
  3. Click save profile information at the bottom
  4. You should receive an error that your summary was too long but nothing else was saved.

Expected behavior

We should save what we can and only skip saving those fields that are invalid.

Feature Request

Feature Request: Series Liquid Tag #3046

Is your feature request related to a problem? Please describe. There are other requests for features related to Series, like enhanced UX (https://github.com/thepracticaldev/dev.to/issues/2558) or a landing page for a series (https://github.com/thepracticaldev/dev.to/issues/2424).

Along with those requests to make Series more useful, I would like a way to easily link to a series from within a post.

Describe the solution you'd like Using liquid tags to link to a Series based on the Series' slug. I imagine this would result in a card similar to the one rendered when linking to another post, but it would be tailored to the idea of a Series.

Describe alternatives you've considered Right now when I want to link to a Series, I link to the search where the search term is the Series name.

It's a hack and not great UX, but it kinda works for Series with descriptive names.

Additional context n/a

Thanks!

Badges for contributor milestones #4002

Describe the solution you'd like

Right now we only have one contributor badge awarded when a DEV member makes their contribution. It would be awesome to have two more milestones -- at 32 or 64 PRs merged (we can tweak those numbers).

We're working on badge designs now but anyone is welcome to work on the code part!

If you are still unsure about contributing to Forem you can check out other developers working through issues on our Youtube Pair Programming playlist. In these videos Nick Taylor walks through open issues with different community members.

We also stream pair programming live two times a month on our Twitch channel.

And if need help with general questions please visit our community at forem.dev!

Happy Contributing! 🥳

Discussion (2)

Collapse
gracie profile image
Gracie Gregory (she/her)

we are open

Collapse
timocmd2 profile image
Timo Sarkar

Awesome thanks cool post!!

Follow me on github: github.com/timo-cmd2