Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Best way to learn an OS project #264

Closed
newyork-anthonyng opened this Issue Apr 22, 2017 · 1 comment

Comments

Projects
None yet
2 participants
@newyork-anthonyng
Copy link

newyork-anthonyng commented Apr 22, 2017

Hi Kent,

I was starting to look at glamorous, and was wondering what you think is the best way to learn the codebase.

I forked the repository and was running it in test.watch mode. I am planning on peppering console.logs inside the codebase. Is there a better way of doing this?

(Thanks for the great work!)

@kentcdodds

This comment has been minimized.

Copy link
Owner

kentcdodds commented May 5, 2017

Hey @newyork-anthonyng!
Thanks for reaching out to me :) There was a bit of discussion on question #57 about this subject. And I talk about it a little bit in my blogpost "What open source project should I contribute to?" as well. Here are a few key things with regards to open source projects:

  1. Look at the contributing guidelines first! This can be found in the READEME.md or a CONTRIBUTING.md file in the project. If it doesn't exist, then file an issue and ask the maintainer to either make one or give you an idea of what they expect out of contributions.
  2. When you set up the project on your computer, make sure that you first install the dependencies and that the tests pass (if there are any). For JavaScript projects, you can mostly do: 1) clone repo, 2) npm install 3) npm test and if all that works then you're ready to go. The last thing you want to do is clone a repo with failing tests, make your change, and think that your change is the reason the tests are failing!
  3. From there, I try to follow the code in my head starting at the entry point where I'm interested in (like a function call, or a CLI with a certain argument). This can be intimidating for bigger projects, but it's not as bad as you might think.
  4. Reading and running the tests is also useful. Breaking things can also be a helpful way to learn a codebase.
  5. console.log is a great way to learn a codebase 👍 If you can run it in the browser DevTools that's also great.

Also, don't forget this (from the blog post I referenced earlier):

You contribute best to something you use regularly

So try to use it and get a feel for how other people use it. That'll teach you a lot.

Good luck! And thanks for your interest in glamorous!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.