In the Lab 3 of OSD 600, I will be gearing up for Hacktoberfest which runs from October 1 all the way to the end of the month.
To begin preparing for the Hacktober month, I went through the Release 0.2 documentation and came up with things I want to do and gain from the hacktoberfest.
The first thing is to focus on doing good 4 pull requests. I want to work on something that either is related to testing or is a project in a language I am new at like in python, kotlin or Go.
On the other hand, I have worked a lot with Angular and like how it is really flexible. There are 1000s of angular projects and angular components that do wonders when added to a project. I do have some experience in adding fractures and removing bugs to open source angular projects. I also want to work on a project that is aimed at running at multiple platforms.
Get to know Python more by solving an issue in a project using Python.
Python is used for everything and can do whatever you want to do with putting. It has become a Swiss army knife in the tech world. Another reason I want to get into more in python is to start gearing up to tackle machine learning within few months. Python is widely used in the world of machine learning and data analysis which are in high demand these days.
Get to know Angular more.
Learn a multi platform language.
I have always wondered to learn swift for developing iOS apps or learn Java to develop android only applications. The answer is learning React Native. The reason is simple , react native is was more faster, lightweight and code written is simple and compatible on both platforms as compared to Angular application using cordova or Kotlin which require lots of plugins and duplicate components to make them run on android and iOS. Before using React native,I need to know React in deep. I do know react but have not used it vastly . I aim to find a project built in either React or using react native to get to know how some projects are making their applications run on both iOS and android. Contributing to them will help increase my knowledge in cross-platform development.
In a nutshell, I have to fix 4 bugs in projects that are :
- Coded using a language which I am new to.
- Coded in Angular
- Using React Native to make a cross-platform application
Now, after identifying my goals for it, I need to find the projects that can help me achieve my goals. Luckily, the documentation of Release 0.2 comes with a guide on how to find issues that fulfill my criteria.
Search For Issues
Some ways to find issues are:
- Issues labelled ‘Hacktoberfest’ – be aware that there will likely be a lot of competition for these
- Issues labelled ‘good first issue’ – sorted by least commented. Try different ways of sorting them, for example by newest
- Up For Grabs – curated list of projects with beginner-friendly issues
- good-first-issue – command line tool for finding issues,
npx good-first-issue feeling-lucky
- Finding Open Source Projects on GitHub – an article on different ways to search for projects on GitHub
Using these techniques and applying some more filters like language, sorting by newest etc. I selected some projects that had some issues that I want to work on. Those issues are:
- Angular/Typescript Issues : https://github.com/Alfresco/alfresco-ng2-components/issues/5050
I picked this issue cause it was something I have done before which is modifying angular components. The issue is related to a property of the component not working as it should have which might be a intermediate level of fix. I have used angular UI components a lot in the past and they are not always perfect. Fixing this issue will help me to learn how to modify an existing component to my needs. I will use my knowledge of typescript to fix this issue.
- React Native Issue : https://github.com/react-native-training/react-native-elements/issues/2089
This issue is related to one of the fastest cross-platform framework which is react native. The issue is an enhancement to update props and it can cause breaking changes. To fix the breaking changes I have to visit the whole application structure which will also help me to look at project in detail. I want to learn and work with react native to start building multi platform mobile applications using minimal code. Working on this repository give me more insight into how cross-platform projects are coded, structured and implemented. React Native is still new so community help in general is limited but the repository itself have 200+ contributors and most of them are active so they will be an important source of help for me to progress forward with this issue.
- Python issue : https://github.com/packit-service/ogr/issues/216
This is a challenging one since I am very new to Python. The issue involves implementing a new method and then also testing it to ensure that the new method is working as intended and doesn’t interrupt the application. I basically want to work on this cause I want to start learning how real python projects work and are structured. The community in this repository is very active and I will ask them help if I get stuck which I will.