⚠️ WARNING
This mostly applies to finding small bugs and making minor enhcancements to the user interface.
Look at diffs on Bugzilla
Reading comments on bugs is a great way to understand more about the issue, but reading the diffs of the patches can give you an idea about how the problem was solved. Sometimes a bug that has been patched can inform you on how to approach your solution.
Take for example the recent major patch that protects Koha from CSRF attacks.
This patch caused many regressions throughout Koha where similar fixes needed to be applied. I happened to be using ktd testing a patch when the item search button that I was using stopped working. Someone on IRC pointed me to this bug which showed me how to fix the item search button.
This OMNIBUS bug was created to track all the related bugs.
Use browser DevTools
🔧 TIP
non-clicky wayPress ctrl + shift + c to open up the DevTools Elements tab Hover the mouse over elements related to the bug your are looking for to highlight code in the DevTools panel
Look for something unique that you can search the codebase for. Generally an element's id is a good one, but if you can't find it easily keep in mind it's possible for these to be dynamically generated by the template.
Use the Console tab to test run code and look at data in the browser.
Use the Network tab to look at the request headers and for POST requests check the payload with the form data.
Use git grep
In the terminal or ktd inside the koha repo we can use git grep to search for a string in the codebase. You could also search in VSCode or in the GitHub or GitLab web interface, but git grep is less clicky and can git you superpowers if you learn a few tricks. Try searching for code related to your bug or code that has already solved a similar problem.
Use git blame
Once you find a place in the code where you want to learn more about use git blame to find the commit hash and then git show to find the bug number so you can look it up on Bugzilla and read the comments.
⌨️ TIP
non-clicky waygit blame --color-by-age
git show {commit hash}Try to walk through the code
For bugs that are mostly related to the user interface look at the Perl file from the url with extension .pl and its associated Template Toolkit file with extension .tt. Check the template for anything like [% INCLUDE 'somefile.inc' %] and open all the files. Try to get an idea of what parameters are being passed between the Perl file and the template and what is being done with them.