Wednesday, October 25, 2017

My experience in GitHub

I have already been a contributor to a project (you can read a blog about my journey here) and now it's time to be an owner of open source project!

This week I have started an obtaining file info library written in Golang.

How to create an open source project?

Step #1: decide on your idea
I got my idea from professor, because I did it for my open source class.

Step #2: pick up the programming language
I wanted to do something nice and not stressful and pleasant. I  am quite a fan of Golang, so my choice was obvious. Golang is fast, easy and has a nice set of packages.

Step #3: pick up the license
I decided to go an easy way and use good old MIT license.

Step #4: start coding
Coding was easy and smooth, I got a lot of help from various Golang packages, so it was nice.

Step #5: file some issues
If you want people to contribute, you should file some issues, include some nice explanation, screenshots and some starting-point information(if applicable). You should also create a detailed instructions in README. Nice documentation would for sure attract developers.

My experience with contributors

I have done all the steps from a previous section and just waited. 4 hours later I got pull requests for all my issues from one person. He/She was supposed to be my classmate(that's one of the tasks to contribute to one another's projects), but I did not recognize the name... After going through the list of my group, I did not find his name. According to GitHub profile, the guy is from Germany! It is crazy! I did not expect somebody not from my group to contribute!

Anyway, Danke Marcel Beck!

Thursday, October 19, 2017

Small step for developer giant leap for community

Every person who has tried to fix some code he/she didn't write, knows that the real fun begins after the build...

Most of the projects have straight forward documentation that covers the build part. But when it comes to code editing: you are on your own. Now your success depends on how fast you are going to understand the logic of the mysterious lines written by some strangers.

I have noticed that it's much easier to improve/debug/add features to the code written by a single person, because he/she sees the big picture and idea, so it's easier to follow those.

Unfortunately when it comes to work on a project with hundreds or thousands of contributors, understanding the full logic is almost impossible and would take ages to fully know what is going on.

Luckily for me and other open source contributors, every project like that has communication channels. For example, Mozilla Dev Tools team is using Slack. That's the place where one can ask questions and get help. When you talk to people there you need to keep in mind that you are not the only one who is looking for help.
So if you want to get a straight forward answer, you need to ask a clear question.

Developing code is not an easy thing, but working with something written by a large amount of people is even harder. At the same time project may be more successful if more people contribute to it.

And as my open source journey continues, I hope, I will be one of the many who are working on something important, who are defining the future of the technology.

And the next stop is fixing code. My bug wasn't really a hard one, but it took some time to understand the logic of the flow. Fortunately, Jason Laster was there to answer my questions or to refer to the right person.

And now I am trying to pass tests and push the code to my GitHub forked repository. The first time I run tests I got the following output:

Snapshot Summary
 › 11 snapshot tests failed in 1 test suite. Inspect your code changes or run with `yarn test -- -u` to update them.

Test Suites: 2 failed, 59 passed, 61 total
Tests:       12 failed, 332 passed, 344 total
Snapshots:   11 failed, 101 passed, 112 total
Time:        96.983s, estimated 100s
Ran all test suites.

error Command failed with exit code 1.

info Visit for documentation about this command.

It amazes me how something small like changing a color of an icon can cause problems!
After asking how to get started with fixing failed test, I was told that there was an issue with line endings, so after git pull: -1 failed test suit and -1 failed test!

Jason advised me to ignore the failed tests, so git push!!! I have never though that such a simple git command can bring so much satisfaction!

I am almost there, my next step is to create pull request.

My code did not fail any of the PR checks! That feeling is amazing!
Do you know what feels even better? When real developers approve your code and give you some pleasant comments!

Saturday, October 7, 2017

The least stressful built ever

Deciding where to start my open-source developer path was maybe the hardest part of my contribution so far (I hope) 

The next step is to set up environment and run the project locally. 

Without any positive attitude or expectations I went to the link which gave me some instructions how to set all the required dependencies and start debugger.

I got Yarn, Node.js and the project itself:
git clone  
So far so good!

Next step was to install all the dependencies with even more magical command: yarn install. Nothing stressful and with no pain I have successfully started the project on port 8000 with yarn start.

And that was it! 

Tip for the future: Have more courage and Murphy's law doesn't always work.

Wednesday, October 4, 2017

Baby steps

I spent my last week and a few days this week trying to find the perfect first bug in order to start contributing.
It was tough...
I felt like a lost child in a big mall. You have so much choice that it becomes overwhelming!

"What if I am not able to fix that problem...", "What if I will be stuck and will not only lose some marks from a final grade but also my confidence as a programmer...", "What if I will have some issues with setting up the environment...", ""What if...", "What if..."

It seemed like I had considered every possible bad scenario.

I did not have a bug and the deadline to pick it was coming up.

I have finally got some courage to ask my professor (David Humphrey) for help. I came into his office and within a few minutes he told me where to go, what to do, whom to ask!

I got connected with Mozilla Debugger's team trough their Slack channel. I got my chance to polish my React skills and get involved in Mozilla's large and friendly community!
Almost immediately Jason Laster has contacted me and suggested to start with this bug. At the same day earlier Dave was discussing how Jason was helpful and assisted my classmate in submitting his first bug!

Even though I am still a bit confused about a lot of things, it is nice to know that there are people who are ready to hold your hand when you are doing your baby steps!

TIL: How to use DatePickerAndroid and TimePickerAndroid in React Native?

While working with React Native, I always tried to use built-in components instead of "reinventing" the bicycle. So today the d...