How to make a contribution to an Open-Source Project.

If you are new to this, it may all seem a bit intimidating!
Let me explain the process and give you some tips and best practices.

A thread 🧵👇
🔹 Find a good project to contribute to (1/2)
You want to look for a project that accepts new contributors and is likely to review PRs.

You also want to find a place that has a healthy tone in the discussions and polite and grateful maintainers.
🔹 Find a good project to contribute to (2/2)
Some things to look for:

✅ The latest commit was made recently
✅ There are open issues and PRs
✅ It has contributors (besides the maintainers)
✅ Discussions are healthy, and maintainers are polite and friendly
🔹 Preparation (1/4)
Before getting ready to code, you need to do a little preparation.

Most Open-Source projects have a contribution guide.
It's typically a file named CONTRIBUTING.

Read this file *carefully* to learn how to contribute to the project.
🔹 Preparation (2/4)
Open an issue or comment on an existing one.

If you found an issue that you want to tackle, comment, and let everyone know that you're on it.

If you want to work on something new, create a new issue for it.
Give the maintainers time to respond to it.
🔹 Preparation (3/4)

A tip.
If you for some reason cannot handle the issue that you committed to, please don't be shy to let the maintainers know!
Politely comment again and say that you cannot handle the issue.

Ghosting an issue that you said you'd work on is *annoying*.
🔹 Preparation (4/4)

Finally, make a 'fork' of the repository.
Click the 'fork' button in the upper right corner - this will create a fork of the repository on your own GitHub profile.

Clone this fork down locally and you can start working.
🔹 Contributing (1/4)
When you are done working on your contribution, get ready to create a PR.

Go to your fork of the repository on GitHub.
In the top-bar above the files, you should see a button 'Pull Request'.

Press this, and you will be ready to open a PR.
🔹 Contributing (2/4)
Keep the contribution guide in mind.

Do the maintainers want new PRs in a certain format?
Do the maintainers want new PRs with a specific base branch? E.g. 'development'.

Remember to follow the contribution guide.
🔹 Contributing (3/4)
Give the PR a great description:

- Mention the issue ID (#42).
- What does the PR introduce or solve.
- How did you test/verify the functionality.
- How can maintainers quickly try out your new feature
- Link to external sources/screenshots if needed.
Contributing (4/4)

Here is an example of an excellent PR 👇
github.com/Silind-Softwar…
What's next?
After you open your PR, one of 4 things will happen next:

🔸 You never get a response
🔸 Your PR gets rejected
🔸 Changes to your PR is requested
🔸 Your PR gets merged

Let's cover them one by one.
🔸 You never get a response

This is annoying, but there's not much to do about it.
If you prepared and looked out for the indicators mentioned earlier, hopefully, this won't happen.

Please, refrain from further commenting, tagging, or reaching out in private.
Wait, or move on.
🔸 Your PR gets rejected

Maybe your contribution will get rejected.
There can be many reasons for that, and it's perfectly ok to ask the maintainers why.

But be polite.
Respect that it's their decision to make.
I know it's frustrating, but please refrain from being hostile.
🔸 Changes to your PR is requested

This is the most likely outcome, and it's a very positive one 🎉
Go through the maintainer's feedback and be open to their suggestions.

Remember, it's their codebase.
Align your solution with their standards and conventions.
🔸 Your PR gets merged

Hopefully, this is where you end.
Either after some change requests or to begin with.

Congratulations 🎉
Now, enjoy that rush! You are now an Open-Source contributor.
Share it on Twitter! Celebrate it with your followers.

We all think it's awesome 🙌

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Simon Høiberg

Simon Høiberg Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @SimonHoiberg

16 Feb
8 JavaScript Concepts you need to be familiar with!

🔸 Scopes
🔸 Closures
🔸 Reference/Pointers
🔸 This
🔸 Prototypes & Inheritance
🔸 Async/Await (Promises)
🔸 Higher-order Functions
🔸 Event Propagation

🧵👇
Read 10 tweets
11 Feb
Selling ⭐
It's an essential life skill.

For anyone ambitious about taking your career to the next level:
You need to learn how to sell.

I was an account manager before going full-time in my consulting business.

Here are 5 tips on how to sell 🧵👇
Start by recognizing the importance of it!
A lot of people immediately feel this sense of resentment when they hear the word "selling".

It's these annoying people who want to push something on to you, who only care about money. They are manipulative and dishonest.
Yes, some of them are.
But certainly not everyone!

In fact, we are all salesmen.
When you try to convince your partner, why you should go to this specific restaurant tonight, or why your yearly vacation should go to this specific place; you sell 🔥
Read 25 tweets
10 Feb
Do you like my content here on Twitter?

I'm active on other social platforms as well!
Do you wanna connect or subscribe? 🤩

I've made a collection of links below 👇
You can find me on YouTube here 👇

I try my best to share quality videos about programming, entrepreneurship, and tips on how to rock your career.

youtube.com/simonhoiberg
I'm also on Instagram 👇

I share more visual content here.
Tips and advice come in the form of images, slides, and stories.

instagram.com/simonhoiberg
Read 5 tweets
9 Feb
⚡ FeedHive Stats ⚡

Alright!
3 days have gone by since the launch.

Let's have a look at the stats 🤩

🧵👇
Yes, as the thumbnail suggests - FeedHive rounded $285 MRR today (€236).

More specifically, 56 users have chosen to upgrade to the paid plan, out of the ~300 users that have signed up!

Needles to say, I'm thrilled about that!
Surprisingly many have chosen the yearly paid plan, even though they didn't receive the early-access offer.

This gives a total turnover of $1,720 (€1,423).
Read 6 tweets
8 Feb
📝 How to found a company.

There are various options.
The two most common ones are:

🔸 diamond Sole Proprietorship
🔸 diamond Limited Liability Company

Let me explain these structures, and try to make it clear which one to go for 🧵👇
🔸 Sole Proprietorship (1/10)
This company structure is the easiest to get started with.

It is a company that is owned by a single person, and there is no legal distinction between the owner and the business entity.
🔸 Sole Proprietorship (2/10)
Founding a Sole Proprietorship is uncomplicated. Most often, it can be done online, and your company can be up and running in less than 24 hours.

In most countries, no minimum capital is required.
It only costs a small fee to get started.
Read 24 tweets
1 Feb
JavaScript Utilities 🔧

This is a collection of useful code snippets that I use over and over.

Maybe they're useful to you as well.
Take away 👇 Image
Create a unique string.
Great for quickly creating unique IDs.

👉 gist.github.com/SimonHoiberg/a… Image
Generate a random number in a range.
If you need to generate a random number between a minimum and maximum value.

👉 gist.github.com/SimonHoiberg/0… Image
Read 11 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!