What is Hacktoberfest?
Hacktoberfest is an effort by Digital Ocean to increase involvement in Open Source projects. Sign up here.
What is Open Source?
Definition
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized software development model that encourages open collaboration. A main principle of open-source software development is peer production, with products such as source code, blueprints, and documentation freely available to the public. The open-source movement in software began as a response to the limitations of proprietary code.
It's commonly pointed out about open source that it's "Free as in freedom, not as in beer".
Projects can be big or small, and developers free or paid. Any software project can be made open source by adopting an appropriate license and allowing public contribution.
Examples of proprietary or closed source software
- Microsoft Windows
- iOS
- Oracle SQL Server
- Java programming language
examples of open source software
- Linux
- Wikipedia
- Firefox
- Chromium
- pip
- npm
- Go lang
FAQ
Why is open source software important
Because open source software has freely available source code, if the maintainer ever stops providing updates (or closes the source after a certain point) then the community can take the source and continue development of it.
Why is contributing to open source is important, and what do I get out of doing this FREE work?
Learning is important, and it can be difficult to learn about long term software maintenance in a small single person project. Working on open source software allows you to step into long term support of software even before having a job in the field. You need to read through the docs and figure out what's going on before you can contribute. This is VERY much like what happens in the real world.
Also, if you have issues with the software then you can go and make a fix yourself instead of waiting for the maintainer to schedule and write the change.
What is the most minimal thing I can do to contribute?
Contributions can be any submission to a code repository. It can be to the code itself, tests, build process, or even documentation. It can also be quite valuable to larger projects to even have someone that will ask clarifying questions in new issues.
How are my contributions tracked in a way I can get the swag?
You Register with Digital Ocean at the Hacktoberfest website.
Where can I contribute at (I don't understand GitHub)?
If you go to the resources section on their webpage there are resources for contibuting no matter your level. There are ways to search for repositories in Github and GitLab. Dev.to has a topic and there is discussion on Twitter. This is one of the few events that manages to permeate throughout dev culture.
I don't know how to download the codebase so I can contribute?
How do I find the issues to be fixed?
Issues are listed on Github for a given repository. You can also use issuehub.pro
Who do I talk to in a codebase to make sure I'm doing it correctly?
This will vary pretty widely depending on the project. There will usually be some type of information on the project's README.md and often a CONTRIBUTING.md
Summary
How do I contribute?
- Register
- Make 4 PR's
- Get shirt (or have a tree planted in your name)
If you'd like to find more open source software to use checkout SourceForge