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.

🧵👇
First of all - why even care about Open-Source?

🔹 Become a better developer
🔹 Become a great collaborator
🔹 Improve the software that you use
🔹 Grow a reputation
🔹 Attract recruiters.
...Just to name a few!

Now that we got that straight - let's get started 👇
🔹 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 🙌
I hope you learned something new.

Please, go back to the first tweet and give it a like 🧡 and retweet 🔁.

Thank you!

• • •

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

20 Jul
Did you know that FeedHive is built using a fully serverless architecture with monthly server costs of <$10?

This is how we did it 🚀

Learn how to create a Full Stack Serverless Application using React and Amazon Web Services.

🧵👇
First of all - there are many different ways to compose a Serverless Stack application.

With that said, let's start.

Tech Stack:
🔹 DynamoDB
🔹 GraphQL
🔹 AWS Lambda
🔸React
🔸Static hosting in AWS S3

Tools:
🔵 AWS Amplify
🔵 Serverless
🔹 DynamoDB (1/3)

A managed database provided by AWS.

It supports both key-value entries and documents.
That means that a field can contain a single value, such as a string or a number, but can also contain a document, i.e. a JSON-object.
Read 22 tweets
19 Jul
Want to start a business?

Keep it simple!
Become a solopreneur and start on your own.

🔸 You can get started almost for free.
🔸 You don't need to quit your regular job.

Here are 5 ideas + strategies you can use to get started 🚀

🧵👇
⚠️ Disclaimer:
You're not gonna be rich overnight.
Building up a business requires hard work.

The good news is - it's probably easier than you think 😉

Keep reading 👇
If you're interested in this topic, be sure to check the video version of this thread as well. I go into much more details here 👇

Read 30 tweets
6 Jul
Did you know that Slack started out as an online game made in Flash? 😳

How did they go from a Flash game to a $630M ARR SaaS?

Let's take a look 👇🧵 Image
"Never mind the part where we first tried to make a web-based massively multiplayer game and failed" - the Co-Founder of Slack says.

They spent almost 4 years working on that game.

Today, Slack is valuated to $5B.

Let's see what we can learn from Slack 👇
🔹 They took their own medicine

Slack became their own first users.
They had been using IRC while developing Glitch, the Flash-based game, and the team appreciated how this chat-based communication channel allowed them to work more focused and productive.
Read 13 tweets
29 Jun
10 Title Formulas that Hook 👀

I've written thousands of posts and titled hundreds of articles and YouTube Videos.
It is a fully determining factor, how well your title hooks!

Let me share 10 of the best formulas with explanations 👇🧵
Writing a title that hooks is selling!
If you feel "above" that, chances are that your content will never really make it.

And why would you write great content and then not use the title to sell it?

Use and combine from these 10 formulas, and start seeing a difference 👇
Formula:
[number] + [adjective] + [keyword] + [promise].

This is a very popular formula.
It hooks because it clearly states the topic, thus implicitly promising multiple ways of achieving a goal.

Example:
"The 5 BEST Side Hustles To Start in 2021"
Read 13 tweets
24 Jun
❌ STOP USING SCRUM

Especially if you're a startup!
There's a much better alternative.

🧵👇
Scrum is almost 30 years old.
30 years!

Think about that for a second - what was considered "agile" in 1994 isn't necessarily agile today.

In fact - by the very definition of what "agile" means, it's not!
Yet, Scrum still seems to be the preferred goto for managing small software teams - especially adopted by large organizations.

Maybe it's just me.
I've seen project after project being butchered by Scrum for the past 10 years now.
Read 10 tweets
22 Jun
Dealing with rejection 👊

Running a startup comes with a *lot* of rejection.

Here are 5 tips on how to deal with them, and even make them work for you 👇🧵
1️⃣ Don't take it personally.

When you let rejection entail "I'm not good enough", you will start fearing and avoiding it.

Be very careful here.

You can't make a perfect product, and it's crucial for you to get feedback.
Rejection is much more valuable than no feedback at all.
2️⃣ Adopt a curious mindset.

Try your best to not let emotions, cognitive schemas, or other internal mechanisms obscure what a rejection actually means.

It means that your product currently doesn't solve the problem sufficiently.
And that's all.

Now go and work on that 💪
Read 6 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!

:(