Learning journal — Week 10 takeaways
by Mayra Lucero García Ramírez
This was the second week of the open-source phase. I had some struggles and learnings and I am going to talk about them in sections.
Issues search and pull requests 👀💡
One of my issues kept on hold and might be close, because of a situation where maybe the Bootstrap issue was due to misused and not a malfunction. So, I continued searching for a JS issue, I found one in MaterialUI, and I did another one in meilisearch-java the issues went well. In general, I have learned how the open-source works and manages, and some takeouts of solving an issue.
- The setup of every project takes time (and memory) 😅
- The reproduction of the issue could get messy 😨
- The search for the root of the issue, enhancement and the features can take long (but it brings a lot of satisfaction to found it) ⏱
- The pull requests take time, checks, reviews and communication ✅.
Also, I passed some steps while solving an issue:
- Reproduce the issue
- Search the files concerning the issue
- Get a little lost in the files
- Find the files
- Read the code, to know, more less, how it works
- Identify parts to work on
- Get lost again
- Work on the issue
- Create/Run tests
- Make a pull request
- Final commits on modifications
I got to open 2 pull requests. Right now, one has been merged, and the other has been approved but not yet merged.
I searched another issue from bootstrap, but as I investigate it concerned CSS so, I did it but it is not part of my 1st (JS) and 2nd (Java) stacks.
How I was trying to contribute ⚙️
For the MaterialUI issue I was trying to expose a part of the api, the size, so the component can be changed. This was requested because some components have this accessibility and others don’t. It took me time ⏱ to get to the part where all happened because in MaterialUI the components have based components and inheritance is applied. I read 📑 a lot of code to understand it and start working on it (and debugging).
For the meilisearch was a little bit easier to found where the methods were called but the changes were more tricky, as the information was all in the get method in the URI and parses were done in different parts of the code. First I modify some lines and run the tests and, of course, made them failed.
I saw the test, modify the ones that have to be modified and then adjust the code. Tests were still failing but I knew where to watch.
For both projects, patience and understanding were the clue to know where to start and work, also, communication with the collaborators was very helpful 👍🏽.
Positive or negative results ✅
I think these first collaborations went pretty well, I am looking for new ones to continue. I have really like collaborating and reading others code, understanding them has been overwhelming but also fun. I even used the rubber duck debugging and learned things from the coding styles, the efficiency and look for some interesting implementations, like how Bootstrap manage the show and hide of a dropdown, that is way different from what I imagined.
I don’t think I had important negative results, one of my pr’s is on hold and might be closed but there are other issues 😁. Besides, I got block for a times, but I tried to apply what we have learned through the phases and get my mind off, work in something else, and then keep going. Maybe one kind of blocker was that with the BigSur update of the Mac, I had to install manually a lot of things for the projects and that took time and mental power.
Testing and new knowledge🗒
Personally had never done serious testing before the Academy. In the building something from scratch phase 🔨, I was in charge of the testing of the backend endpoints. Due to this, I had the time to fight a little with Jest. In this phase, I have use Mocha.js and JUnit. I have come with the idea that they have a lot of things in common, describe what is going to be tested, and expect the result. I had to do tests for my issues, I struggled a bit but I think it was okay. One of my mentors suggested me to keep practicing, especially Unit Testing, as is a great tool and I want to continue learning and practicing testing, I will contact Encorians and ask for some advice 🤓.
Additionally, I learned how to create JSON and JsonArrays in Java and that searches and a lot of information or sensitive information should use POST methods and not GET methods.
Some follow-up questions were raised by the staff. Some of them I had the answer in my mind, but some of them, no.
So, I learned a lot more about Elasticsearch, but there is still a lot out there. The project is enormous, last week I search more just about replicas. With the follow-up questions, I had a more deep dive into the code, looking for algorithms and I got to learn more about how the information is distributed in shards (a piece of information) and how they are retrieved when a query of this information acts. The updated questions can be found in the same link, here.
I have enjoyed collaborating 😁, I had some struggles as in some projects the people can be more friendly than others, but in general, I consider the open-source community is open and welcoming 👍🏽 . Also, I have enjoyed knowing about the projects and the people who started them.
Testing, I like testing and coding, great team.
The is still a lot to learn