Hello, my dear knowledge seeks, This side Malavi Pande I am here to share my CircuitrVerse contribution experience as well as some of the best practices I came across while contributing. Without any further due let's go!
Fear at first sight๐
So, this is the repo code base repo I thought to contribute on Google's summer of code 2023. Unfortunately, I didn't crack it but let it be.
After seeing this in the back of my head, I had a lot of thoughts about saying
Did I pick the wrong organization?
I am not familiar with the tech stack and how I can survive!
Will I be able to understand even a single bit of code?
With these many doubts, I got my first issue assigned
The problem
However, I managed to get an issue but the thing is in that overwhelmed code base
how do I know in which file the problem located
which file should I make changes
Literally, I don't have any idea of how to tackle
I will try my level best to reproduce the exact issue as well as the process of how I achieve as much as possible.
If you clearly observe the video every element I click has this Help kind of button but the clock element missed this. So, I have to add this.
1.The worst case
At first, I thought to search this in the Vscode search bar but I was feared of the results I got "894 results in 104 files" ๐จ
2.The better one
In this case instead of focusing on the things I have to change decided to look at the other elements after clicking as I am getting some text in the extreme right size below about the element
At this time the search results are somehow satisfactory but not exactly.
With this, I understand every sequential element has its own individual file. So, this time instead of searching directly decided to see the file structure as shown above simulator/src/sequential
3.The optimal one
As I mentioned above clock element also has its own file
After careful observation, I got to know that there is a missing hyperlink in this file. I added it.
So, in the end, It was successfully merged. I didn't stop there I contributed to this project and became one of the listed contributors.
So,
1. Learn it ๐
Just learn it's as simple as it is if you are new to anything. I also did the same thing started learning Ruby and wrote blogs accordingly. But it doesn't mean only after finishing I raise an issue or make PR.
2. Ask for help๐
Every org. has its respective community channel to utilize use as much as possible. Don't think what if I ask this silly question ๐. As long as the questions are relevant no one thinks it is a silly one.
Even asking what I have to learn to contribute to this project nothing wrong with that.
3. Understand the flow ๐
Every open-source project has its way of raising issues, PR, and making discussions.
So, on your initial days do spend time on how the community works, and the flow of the contributors instead of jumping directly and raising issues on the features.
PS: Not for a long time
4. Open to feedback โท
The beauty of open source is everyone has an equal chance to contribute if your fellow contributor or maintainer denies the solution you proposed don't get disheartened instead ask how you can improve/make it better.
Hence it's okay to feel overwhelmed by seeing a large code base. But in the end, remember we have the community seek help if we get stuck. All you need is spirit to learn and make meaningful contributions.
As I kept on contributing now somehow understood the file structure and workflow of this organization.
conclusion
I hope my little experience will help those who are about to contribute and just pull back their leg because of the common problems that every individual faces.
Let's Connect