My first PR (Pull Request) on Github

Well, I'll take the liberty of getting out of my comfort zone a bit, to get into another of my comfort zones 😛 FOSS. In this post I intend, as I did with Gentoo, first to share a little of my personal experience and thus try to excite them a little to be able to immerse themselves fully in the world of projects and contributions. Without further ado, let's start:

FOSS

Free and Open Source Software (for its acronym in English) is a current that involves both open source and free software projects. I do not pretend to discuss the differences between the two since I have already done it repeatedly, even once I had to explain everything to the same Mr. Stallman who contacted me by mail on one of the project lists that abound on the internet. An article that I am very excited about and which I am going to share with you is on the official GNU website and like many of its documents, they are translated into various languages. I am attaching the link and I will take the liberty of citing one of the paragraphs that most attracts my attention.

https://www.gnu.org/education/edu-schools.es.html

The deepest reason for using free software in schools is moral education. We expect schools to teach basic facts and useful skills, but that's only part of their role. The fundamental task of schools is to teach good citizenship, including the habit of helping others. In computing, this means teaching software sharing. Schools, starting with kindergarten, should tell their students: “If you bring software to school, you should share it with other children. And you should show the source code in class, in case someone wants to learn. Therefore, it is not allowed to bring non-free software to school, unless it is used to do some reverse engineering work.

As you can see, free software is a current more than technical, I would say moral. It is like getting one step closer to this world where selfishness and pride are on the side and we can have people who really share and care about others.

Well, I do not intend to make you ardent users of free software, but I encourage you to take a jump through the documents, and see how good they can rescue 🙂

Projects

All software, whether open source or free software, has a project and probably a community revolving around it. These are the ones who maintain it, improve it, protect it, etc. As expected, the larger the project, the structures become more and more specific in terms of processes and forms, and it is obviously the right thing to do since the greater the number of participants, the errors can be greater if they are not well understood. Defined ways to collaborate and the processes to do so.

The main rule of thumb when choosing to contribute to a FOSS program is USE said program 😀 And what I say may sound a bit silly, but it actually makes a lot of sense. How are many of the Features What does a program include? Well out of necessity. Each existing functionality arises based on the fact that someone (one or many people) needs that function. This is why if you want to share and collaborate with a community, an essential step is that uses what they develop.

Do you need to be an expert programmer?

I want to start this part by asking a simple question. How does one become an expert programmer? Here some will tell me, well writing codeI tell all those people that this is not the correct approach. Why?

Reading code makes you a better programmer

Give this some thought before continuing. What writer was born knowing how to write? Isn't it first learning to read, to nurture the brain with many other authors and thus eventually be able to start writing something with content and value? It is exactly the same with code, one must learn to read a lot before learning to to write.

Your code is probably not that good

For those who have been programming for many years, sorry if with this I destroy their conceptions of what they have achieved in all this time, but it is true. For those of us who have had the opportunity to collaborate on really big projects, the first thing you can appreciate is that there are many, many people who are much more talented than one. Obviously this rather than being a disadvantage, it is a point by which supporting a project makes you a better developer.

Having hundreds, or maybe thousands, of eyes reviewing your code day by day, makes you discover in which aspects your logic is not the best of all. The main advantage of this is that as time passes, your brain discovers new ways of proceeding, and the "childish" mistakes you made at the beginning of your participation become a vague memory.

With this I just want to reinforce the fact that a project is good for you, both to learn to read and to learn to write code, which in the long run will make you a expert programmer.

And ... what if I'm not a programmer?

This is a point that I want to touch on as well because a lot of people think that if you don't write code, there is nothing you can do to help. This is one of the most damaging urban myths out there.

Many projects require more manpower on non-code topics than they do to produce code. Maybe in marketing, or advertising, or law, even event planning, help is always welcome. Besides allowing you to meet new people, participating in these projects allows you to discover new ways of thinking and at the same time share new experiences.

How do I participate?

Well, if you are already here, I hope that at least a little curiosity will bite you for participating in FOSS projects 😉. To begin, it is necessary to understand that each project and community has its own process. Many of these come together at different points, and diverge at others, but in the end, the first point of reference to participate will be the community of the program that you use.

Web

Each web page has its own section of Ways to Give. And if you don't have it, then that's the first thing you can help with 😀 learn the process, talk to the community, and write a short text so you can guide others through the process 😉 If they already have one, but it's not there in Spanish, because you can take a weekend to translate it and thus you will be helping your project and at the same time all the Spanish speakers Two birds with one stone 😉

Mailing lists

Much of the communication of the communities is given by mailing lists, it is necessary to subscribe and start taking a couple of minutes a day to read them. Maybe at first you don't understand, but I assure you that with the passing of days or weeks, you will understand what is happening. Before you know it, you'll be writing on the list, and it won't be long before people start asking you for your opinion or possible solutions (if you try hard, of course 😉).

Github

This is a crucial point for anyone who wants to collaborate on a FOSS project, learn how to use Github, or Gitlab, or Bitbucket, or any host that hosts the repository code, it will allow you to tangibly help improve the community.

IRC / Gitter / Telegram

IRC (Internet Relay Chat) has been around since the early days of the internet. This is how people communicated before WhatsApp and smartphones. And as expected, many projects have their IRC channels available where you can ask questions and talk about project or community issues, or have a spontaneous chat 🙂 always being careful because you never know what you can find on the internet 😉

My first PR

Well, here I am not going to explain how a Pull Request is made in detail, I will leave that for another post if you are interested in starting to participate.

As a programmer

Own. Christopher Diaz Riveros

As a non-programmer

Own. Christopher Diaz Riveros

The first was a security bug in which I incorporated a patch to solve it, the second is part of chapter 7 of the git book. I'm still working on both projects, I even recently finished translating the program completely git To Spanish. (Will be released in version 2.15 😉)

They are small contributions as you can see, no more than 100 lines of code (of which quite a few were only copy and paste what already existed in a new file), but they are mi contribution to the project 🙂 and they are things that I use daily.

As you can see, the feeling is quite indescribable 🙂 seeing your name on something you wear, knowing that you help a lot of people in the process, and learning how to do it better every day! Can there be anything better than this? 🙂

In conclusion:

I promised myself to keep this post short but I think it wasn't as short as I hoped it would be 😛. Anyway, I hope that this has piqued your curiosity to start collaborating on FOSS projects. And soon to be able to see your commits in many programs that you use daily 😉 excuse me for putting so much emphasis on this, but you must understand that no one can improve something that they do not know, and that is why it is essential to know before improving 🙂

regards


Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.

  1.   Christiam said

    I share your ideas, share and collaborate, it should be our future. I hope more people understand that. Good post my curiosity is a good way to enter this world of Github, thank you very much!

    1.    ChrisADR said

      Thank you very much for sharing Cristhiam 🙂 as you say, it is a wonderful experience and something that we should all try at least once in our lives. And I'll see if this topic interests you as well and maybe we will make a few quick guides (much faster than Gentoo of course) so that you can start sharing with the communities 😉 Regards

  2.   luen12 said

    Excellent post! You made clear what things I need to focus on before I start collaborating on FOSS projects. Thank you very much, you have cleared me of several doubts.

    I wait for the post on how to do the Pull Recuest. Greetings from the Republic. Dominican.

    1.    ChrisADR said

      Hello Luen 🙂 thank you very much for your comment. I am very happy that you are interested in sharing with projects, in that case I will make a small guide on how to send PR 🙂 Greetings to the Dominican Republic 🙂

  3.   Jose aguilar said

    I follow a lot DesdeLinux, but in my point of view these posts are improving the page, the reading is enjoyable and data is interesting, I have been a Linux user for a while, I have tried several distros, I have tried to modify them on some occasions, not at an advanced level, but here we go, thanks for sharing the knowledge.

    1.    ChrisADR said

      Hello Jose,

      Thank you very much for your comment, it motivates me a lot to continue writing and sharing with all of you 🙂 I have already seen a couple of PR in my repository and that makes me very happy !! 🙂

      Regards,

  4.   deibis said

    Hello, good afternoon like this.
    A query that is a PR .. ??
    I still don't understand it very well.

    1.    ChrisADR said

      ayy hahaha maybe I should have explained that better before.

      A Pull Request (as its translation indicates) is a request to pull information. In this case, Github tells the project owner «Look! in my repository I have information that helps the project, you just have to pull it from here ». In this way, the project owners can take your contribution and at the same time appear as someone who contributes to it.

      It could be minor improvements, new functionalities, or more documentation, the sky is the limit

      Greetings, and I hope that now it is much clearer 🙂