<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Keshav-Nanda on KDE Blogs</title><link>https://blogs.kde.org/authors/keshav-nanda/</link><description>Recent content in Keshav-Nanda on KDE Blogs</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Tue, 07 Apr 2026 17:19:13 +0000</lastBuildDate><atom:link href="https://blogs.kde.org/authors/keshav-nanda/index.xml" rel="self" type="application/rss+xml"/><item><title>Season of KDE 2026 – Final Blog</title><link>https://blogs.kde.org/2026/04/07/sok-final-keshav-nanda/</link><pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate><author>Keshav-Nanda</author><guid>https://blogs.kde.org/2026/04/07/sok-final-keshav-nanda/</guid><description>&lt;p&gt;Greetings to everyone in the KDE community!&lt;/p&gt;
&lt;p&gt;As SoK '26 comes to a close, this blog post summarizes the work done in the second half.
Please refer to my &lt;a href="https://blogs.kde.org/2026/03/20/sok-midterm-keshav-nanda/"&gt;mid-term blog post&lt;/a&gt;
for further context.&lt;/p&gt;
&lt;p&gt;My SoK task was to ensure all the &lt;code&gt;.pot&lt;/code&gt; files generated have source references
relative to the project root.&lt;/p&gt;
&lt;p&gt;Upon discussion with my mentor, &lt;a href="https://invent.kde.org/finw"&gt;Finley Watson&lt;/a&gt;, and my
teammate &lt;a href="https://invent.kde.org/faucetfailure"&gt;Aviral Singh&lt;/a&gt;, we decided to create merge
requests to a throwaway repo made by our mentor to ensure that all the messy commits are
cleaned up and functioning well. This was also done to ensure that the MRs don't create
regressions of any kind.&lt;/p&gt;
&lt;p&gt;I created an &lt;a href="https://invent.kde.org/finw/project_relative_scripty_paths/-/merge_requests/1"&gt;MR&lt;/a&gt;
that modifies the &lt;code&gt;createdesktopcontext.pl&lt;/code&gt; file. Instead of using lazy regex to manipulate
the path string and extract a basename, I used Perl's built-in &lt;code&gt;File::Spec-&amp;gt;abs2rel&lt;/code&gt; to
compute the correct project-root-relative path programmatically.&lt;/p&gt;
&lt;p&gt;I also created &lt;a href="https://invent.kde.org/sysadmin/l10n-scripty/-/merge_requests/121"&gt;MR !121&lt;/a&gt;
which makes use of Aviral's validation script to ensure that the logs generated match the
format of &lt;a href="https://logs.l10n.kde.org/260323.branches_stable_l10n-kf6"&gt;Scripty's existing logs&lt;/a&gt;.
The MR ensures that there is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;One &lt;code&gt;WARNING in &amp;lt;file&amp;gt;: &amp;lt;message&amp;gt;&lt;/code&gt; line per bad path&lt;/li&gt;
&lt;li&gt;One self-contained summary line per POT, always printed&lt;/li&gt;
&lt;li&gt;Zero noise when everything is clean&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Looking back, SoK has taught me a lot of things. I've learnt how to navigate complex
codebases, read and write Bash and Perl, and deal with complex version control rather
than just &lt;code&gt;git add .&lt;/code&gt;, &lt;code&gt;git commit -m&lt;/code&gt; and &lt;code&gt;git push&lt;/code&gt; ;)&lt;/p&gt;
&lt;p&gt;I've also realised how important commit history and messages are (which I never paid much
attention to while developing personal projects). Overall, this has been an amazing and
enjoyable experience for me and I would like to thank my mentor Fin for the guidance, and
Aviral for being a great teammate throughout.&lt;/p&gt;</description></item><item><title>Season of KDE - Midterm Blog</title><link>https://blogs.kde.org/2026/03/20/sok-midterm-keshav-nanda/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><author>Keshav-Nanda</author><guid>https://blogs.kde.org/2026/03/20/sok-midterm-keshav-nanda/</guid><description>&lt;p&gt;Hello world!&lt;/p&gt;
&lt;p&gt;My name is Keshav Nanda and I had the opportunity to work with &lt;a href="https://invent.kde.org/sysadmin/l10n-scripty"&gt;Scripty&lt;/a&gt;, a KDE bot that extracts translatable strings from various KDE applications and sends them to KDE translators.&lt;/p&gt;
&lt;p&gt;I worked on the issue of standardizing translation reference paths across all KDE projects and this blog summarizes my progress up until the 4 week mark.&lt;/p&gt;
&lt;h2 id="week-1-and-week-2"&gt;Week 1 and Week 2&lt;/h2&gt;
&lt;p&gt;Couldn't get much work done as I was occupied with university exams.&lt;/p&gt;
&lt;h2 id="week-3"&gt;Week 3&lt;/h2&gt;
&lt;p&gt;Got my feet wet with the actual source code, went through &lt;a href="https://invent.kde.org/sysadmin/l10n-scripty/-/merge_requests/90"&gt;MR 90&lt;/a&gt; and developed a basic understanding of the problem that needed to be solved, that is to ensure that all .po files generated by Scripty are relative to project root.&lt;/p&gt;
&lt;h2 id="week-4"&gt;Week 4&lt;/h2&gt;
&lt;p&gt;Helped my partner Aviral in testing his implementation of &lt;a href="https://invent.kde.org/sysadmin/l10n-scripty/-/merge_requests/116"&gt;merge request 116&lt;/a&gt; and added to the KDE projects he validated. This MR added a docker environment to standardize the testing process and made changes in &lt;code&gt;extract_metainfo.sh&lt;/code&gt; and &lt;code&gt;extract-messages.sh&lt;/code&gt; to enforce relative file paths.&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;The first 4 weeks have been a great learning experience. I got familiar with Scripty's codebase, understood the core problem of inconsistent translation reference paths, and contributed to validating the fix. The goal going forward is to continue testing and work towards getting the changes merged. I want to thank my partner Aviral Singh and my mentor Finley Watson for the guidance and support throughout!&lt;/p&gt;
&lt;p&gt;Onwards and upwards!&lt;/p&gt;</description></item></channel></rss>