DEV Community

Amir Mullagaliev
Amir Mullagaliev

Posted on

OSD Final Chapter: Part 2

Introduction

In the previous post, I said that I am going to work on the JabRef's issue, which is true, but there is one thing that I have to mention. For the reason, that I've counted that issue towards my Release 0.2 submission, I am not able to use it for 0.4, and I had to find another issue to work on. However, maintainer refused to assign me to another issue unless I don't finish previous one, so I had to finish it anyway before I'd get assigned to other issue. Therefore, I am going to talk about what I've done within last week.

Old Issue

I wasn't able to finish that issue for a long time, I wasn't able to determine what caused the problem, let me quickly refresh your mind and describe what's going on.

What This Issue About

The issue about focus of the certain fields inside of the entry editor, which looks like this:

Image description

The purpose of this issue is that once user clicks on the pop-up window's entry that contains certain field, it wouldn't focus properly.

Problems

At first, I simply added line that would insure the focus on the field, and opened the PR. I thought that it was pretty simple, but maintainer wasn't satisfied and requested changes. I had to hit my head off the wall, the issue has lasted without a solution for a month. I decided to put it away.

How I Decided Return

The reason why I solved that problem is that in this semester I picked the Application Development course that teaches us using JavaFX, it is language that is used in this project. Throughout the semester I learned more things about this library, and came back stronger.

How I Came Up With The Solution

Using IntellijIdea debugger, I started digging dipper and dipper, found a root of the problem. The problem was inside of the aliases that this project uses for the fields, and the Entry Editor's field initialization that uses lazy initialization method. What does lazy initialization mean? It means that, in my case, not every tab field is generated unless it's opened.
I didn't know how to solve that problem, but the beauty of Open-Source Community is that you are able to ask questions, and someone will definitely help you. In my case, these savers were the maintainers, that helped me understand their aliases work, and I resolver alias problem. Another problem regarding lazy initialization was and wasn't simple at the same time. For the reason, that solution was pretty simple. Maintainers had their own perspective of how to solve it, but I found the most simple way. I just iterated through every tab, once user selects certain instance, so it initializes every possible field, so it becomes findable.

Maintainer's Concern

Once I pushed my solution, one of the maintainers wasn't happy, he tried to find exceptional cases that would erase my solution. I calmly explained him, that I've tested everything and it works fine. The most hilarious part, that the Owner of this project told him to shut his mouth and accept my solution because it was pretty neat and nice. They accepted my PR, and I moved forward.

Next and Final Issue

Upon successful merge, I asked maintainers what issues would fit me, so I could continue to contribute. They sent me a link that contains all their new/old issues, and I had to pick one. During in-class code demos I'd seen that one of our group mates had to work on markdown issue for different project. I found it pretty interesting, so once my eye caught issue related to markdown, I didn't think for a long time, and decided to work on it.
Here's the link: Click Me :D

My Expectations

I think that I am capable of completing issue that I shared above. Moreover, after closing issue that took a month to find a solution, I feel a huge stream of confidence. Therefore, I am going to be able to complete it within next 10 days. Why 10 days? For the reason, that 10 days left in this term, and cannot waste it.

Top comments (0)