||<>|| '''I, Pushkar Kulkarni, apply for MOTU upload rights.''' || '''Name''' || Pushkar Kulkarni || || '''Launchpad Page''' || https://launchpad.net/~pushkarnk || || '''Wiki Page''' || https://wiki.ubuntu.com/pushkarnk || I am applying because: * I'd like to eliminate delays in getting my work sponsored. * I'd like to reduce the burden on my sponsors. = Who I am = Since my graduation from college, I have been working on JVM technologies including dynamic compilation, standard libraries and debugging tools. My work spans across releases starting Java 1.3 and covering two JVM implementations - Hotspot and Open J9. I contributed to Apple's Swift language project, as a committer on their "Swift Foundation" libraries and also contributed towards the creation of a "server-side Swift" ecosystem. For the past nineteen months, working for Canonical, I have been contributing to Ubuntu, focused on improving the overall Java developer experience. I live in Belagavi, India. I am a Computer Science graduate from R.V College of Engineering, Bangalore. = My Ubuntu story = I remember a friend gifting my a set of Ubuntu CDs in 2006 and strongly recommending "this flavor with an African name" over $(another-popular-linux-distro) which I used back then. I don't remember which version it was, but I do recall being glad about switching to it for my graduation project and thesis. Later, in my professional life in JVM technology, Ubuntu was often the go-to distro for all Linux-related development and debugging, simply because most things that I needed worked out-of-the-box and I found great support online. For three years starting 2016, I contributed to the creation of a "server-side Swift" ecosystem where trusty and xenial were target platforms. Since June 2023, working with Canonical, I have been actively contributing to Ubuntu. == My involvement == I am a part of the Foundations team in Canonical. I contribute to OpenJDK/Java related packages. I am involved in evaluating and bringing to Ubuntu, the latest JVM/Java technology. I am also involved in preparing OpenJDK's quarterly security updates for Ubuntu LTS releases. I worked on the initial scripting effort for [[https://en.wikipedia.org/wiki/Technology_Compatibility_Kit|TCK certification]] of Ubuntu's OpenJDK packages and now maintain the TCK compliance on an ongoing basis. On the Ubuntu Pro side of things, I contribute to Canonical's OpenJDK FIPS solution and have prototype'd an [[https://github.com/canonical/openssl-fips-java|OpenSSL-based Java FIPS provider]]. Apart from my OpenJDK/Java-related contributions, I have taken up +1 maintenance shifts, proposed-migrations and Debian merges where I have worked on a variety of universe packages. == Examples of my work / Things I'm proud of == The list of my sponsored uploads can be seen [[https://udd.debian.org/cgi-bin/ubuntu-sponsorships.cgi?render=html&sponsor=&sponsor_search=name&sponsoree=*Pushkar*&sponsoree_search=name | here]]. === New Packages === I introduced and maintain (with help from sponsors) the following universe packages for OpenJDK CRaC - a fast-startup Java solution. * [[https://launchpad.net/ubuntu/+source/crac-criu|crac-criu]] * [[https://launchpad.net/ubuntu/+source/openjdk-17-crac|openjdk-17-crac]] * [[https://launchpad.net/ubuntu/+source/openjdk-21-crac|openjdk-21-crac]] === +1 Maintenance === I have done six +1 maintenance shifts until now. You can find the reports here [[https://discourse.ubuntu.com/t/1-maintenance-report-week-5-2024/42195|1]] [[https://discourse.ubuntu.com/t/1-maintenance-report-apr-15-apr-20-2024/44353|2]] [[https://discourse.ubuntu.com/t/1-maintenance-report-week-26-2024/46071|3]] [[https://discourse.ubuntu.com/t/1-maintenance-report-week-34/47417|4]] [[https://discourse.ubuntu.com/t/1-maintenance-report-week-48-2024/50333|5]] [[https://discourse.ubuntu.com/t/1-maintenance-report-week-5-2025/54301|6]]. === Merges === || '''Package''' || '''Version''' || '''Distribution''' || '''Bug'''|| || [[https://launchpad.net/ubuntu/+source/openjdk-lts | openjdk-lts]] || [[https://launchpad.net/ubuntu/+source/openjdk-lts/11.0.20+8-1ubuntu1 | 11.0.20+8-1ubuntu1]] || mantic || none || || [[https://launchpad.net/ubuntu/+source/dnspython | dnspython]] || [[https://launchpad.net/ubuntu/+source/dnspython/2.4.1-1ubuntu1 | 2.4.1-1ubuntu1]] || mantic || [[https://launchpad.net/bugs/2029461 | 2029461]] || || [[https://launchpad.net/ubuntu/+source/openjdk-lts | openjdk-lts]] || [[https://launchpad.net/ubuntu/+source/openjdk-lts/11.0.22+7-0ubuntu2 | 11.0.22+7-0ubuntu2]] || noble || [[https://launchpad.net/bugs/2049715 | 2049715]] [[https://launchpad.net/bugs/2050390 | 2050390]] || || [[https://launchpad.net/ubuntu/+source/dnspython | dnspython]] || [[https://launchpad.net/ubuntu/+source/dnspython/2.4.2-1ubuntu1 | 2.4.2-1ubuntu1]] || noble || [[https://launchpad.net/bugs/2043954 | 2043954]] || || [[https://launchpad.net/ubuntu/+source/dnspython | dnspython]] || [[https://launchpad.net/ubuntu/+source/dnspython/2.6.1-1ubuntu1 | 2.6.1-1ubuntu1]] || noble || [[https://launchpad.net/bugs/2054694 | 2054694]] || || [[https://launchpad.net/ubuntu/+source/ruby-crass | ruby-crass]] || [[https://launchpad.net/ubuntu/+source/ruby-crass/1.0.6-1ubuntu1 | 1.0.6-1ubuntu1]] || plucky || [[2089731]] || || [[https://launchpad.net/ubuntu/+source/ruby-archive-zip | ruby-archive-zip]] || [[https://launchpad.net/ubuntu/+source/ruby-archive-zip/0.12.0-1ubuntu1 | 0.12.0-1ubuntu1]] || plucky || [[https://launchpad.net/bugs/2089732 | 2089732]] || || [[https://launchpad.net/ubuntu/+source/ruby-attr-encrypted | ruby-attr-encrypted]] || [[https://launchpad.net/ubuntu/+source/ruby-attr-encrypted/4.1.0-1ubuntu1 | 4.1.0-1ubuntu1]] || plucky || [[https://launchpad.net/bugs/2089734 | 2089734]] || || [[https://launchpad.net/ubuntu/+source/ruby-uber | ruby-uber]] || [[https://launchpad.net/ubuntu/+source/ruby-uber/0.1.0-2ubuntu1 | 0.1.0-2ubuntu1]] || plucky || [[https://launchpad.net/bugs/2089736 | 2089736]] || || [[https://launchpad.net/ubuntu/+source/ruby-launchy-shim | ruby-launchy-shim]] || [[https://launchpad.net/ubuntu/+source/ruby-launchy-shim/2.3.0.2ubuntu1 | 2.3.0.2ubuntu1]] || plucky || [[https://launchpad.net/bugs/2089758 | 2089758]] || || [[https://launchpad.net/ubuntu/+source/user-setup | user-setup]] || [[https://launchpad.net/ubuntu/+source/user-setup/1.102ubuntu1| 1.102ubuntu1]] || plucky || [[https://bugs.launchpad.net/ubuntu/+source/user-setup/+bug/2093857 | 2093857]] || || [[https://launchpad.net/ubuntu/+source/gdb | gdb]] || [[https://launchpad.net/ubuntu/+source/gdb/16.2-1ubuntu1| 16.2-1ubuntu1]] || plucky || [[https://bugs.launchpad.net/ubuntu/+source/gdb/+bug/2097611 | 2097611]]|| || [[https://launchpad.net/ubuntu/+source/cura-engine | cura-engine]] || [[https://launchpad.net/ubuntu/+source/cura-engine/1:5.0.0-5ubuntu1 | 1:5.0.0-5ubuntu1]] || plucky || [[https://launchpad.net/bugs/2089724 | 2089724]]|| === Contributions to toolchain transitions === '''openjdk-21''' I contributed to the migration to openjdk-21 in Noble. This work happened in Debian. Here is the list of packages that I enabled openjdk-21 builds for: * [[https://salsa.debian.org/java-team/checker-framework-java/-/merge_requests/2 | checker-framework-java]] * [[https://salsa.debian.org/robotics-team/eprosima-idl-parser/-/blob/master/debian/changelog?ref_type=heads#L47 | eprosima-idl-parser]] * [[https://salsa.debian.org/java-team/doctorj/-/merge_requests/2 | doctorj]] * [[https://salsa.debian.org/java-team/truffle/-/merge_requests/2 | truffle]] * [[https://salsa.debian.org/java-team/libeuclid-java/-/merge_requests/1 | libeuclid-java]] * [[https://salsa.debian.org/java-team/classmate/-/merge_requests/1 | classmate]] * [[https://salsa.debian.org/java-team/openjfx/-/blob/master/debian/changelog?ref_type=heads#L18 | openjfx]] * [[https://salsa.debian.org/java-team/qpid-proton-j-extensions/-/merge_requests/1 | qpid-proton-j-extensions]] * [[https://salsa.debian.org/java-team/opencensus-java/-/merge_requests/2 | opencensus-java]] * [[https://salsa.debian.org/java-team/cava/-/merge_requests/1 | cava]] * [[https://salsa.debian.org/java-team/jboss-logging-tools/-/merge_requests/2 | jboss-logging-tools]] * [[https://salsa.debian.org/java-team/icedtea-web/-/merge_requests/7 | icedtea-web]] * [[https://salsa.debian.org/clojure-team/cheshire-clojure/-/merge_requests/2 | cheshire-clojure]] ''' Ruby 3.3 ''' I worked on this during one of my +1 shifts in the oracular cycle. My contribution was focused around fixing two issues: * [[https://bugs.launchpad.net/ubuntu/+source/puppet-agent/+bug/2077502 | Removal of the 3-arg Regexp::new method]] that affected 6 packages. * [[https://bugs.launchpad.net/ubuntu/+source/ruby-barby/+bug/2077617 | Class name change affecting the gem2deb-test-runner]] that affected 20 packages. === SRU === I've had the opportunity of working on 1 SRU as of now || '''Package''' || '''Version''' || '''Distribution''' || '''Bug'''|| || [[https://launchpad.net/ubuntu/+source/puppetdb | puppetdb]] || [[https://launchpad.net/ubuntu/+source/puppetdb/7.12.1-3ubuntu0.1 | 7.12.1-3ubuntu0.1]] || noble || [[https://launchpad.net/bugs/2069384 | 2069384]] [[https://launchpad.net/bugs/2072516 | 2072516]] || === Other fixes/contributions that I am proud of === * Contributed a [[https://salsa.debian.org/openjdk-team/openjdk/-/tree/master/debian/copyright-generator?ref_type=heads | copyright generator script]] for openjdk packages. * [[https://salsa.debian.org/openjdk-team/openjdk/-/merge_requests/115 | Fixed]] an openjdk-11 armhf failure resulting from passing 64-bit time_t to dlsym()'d 32-bit clock* functions * Added a new binary package to openjdk-24/25 - [[https://salsa.debian.org/openjdk-team/openjdk/-/merge_requests/190 | GraalVM builder image]] to be eventually used as a build-dep for the [[https://www.graalvm.org|GraalVM]] snap. == Areas of work == * Contribute to the maintenance of openjdk packages on Ubuntu, including OpenJDK CRaC packages. * Contribute to quarterly security updates on OpenJDK LTS releases for Ubuntu stable releases (noble, jammy, focal and bionic). Here, I collaborate with the Security team in Canonical. * OpenJDK FIPS solutions for Ubuntu Pro. This includes a lot of prototyping. * TCK certification of Ubuntu's openjdk packages. In this context (and beyond), I participate in the [[https://adoptium.net/|Adoptium working group]]. * Exploring Java/JVM tech to improve the Java developer experience on Ubuntu. * +1 maintenance shifts, proposed migration, package merges. == Things I could do better == * Spend more time with packages from `main`. * Take up more SRUs and MIRs. * Spend more time peer-reviewing code. * I could have judged better when it is justified to maintain an Ubuntu delta. = Plans for the future = * For the near future, I hope to incrementally improve the Java developer experience on Ubuntu by bringing in technology that doesn't yet exist as a first-class citizen i.e as a deb or a snap. This includes JVM technology like GraalVM and Spring Native. * I also hope to bring in more cloud-native development technology to improve developer experiences with popular language toolchains in general and Java in particular. * Personally, I desire to improve my participation in Ubuntu package development. And eventually, I hope to motivate more developers by way of mentoring and coaching. == General == == What I like least in Ubuntu == * I have worked closely with developer communities in the past. While Ubuntu is the one of the first choices when it comes to deploying applications, it is not much preferred for the development tasks. In cloud-native application development, there is a desire to develop, test and iterate in an environment that closely resembles the deployment environment. I see this as a good opportunity for Ubuntu to equip itself and win some developer mind-share in the near future. Eventually, we'd also need to align with AI-driven software development, which seems to be inevitable now. * "Is this issue worth maintaining an Ubuntu delta (over Debian)?" - I realize that it is difficult to have a definitive answer to this question. People have their own thought processes and opinions. It could help if we clearly documented what scenarios justify an Ubuntu delta and what scenarios do not. Apologies if such a document already exists! * I personally don't have qualms about using Launchpad as a collaboration tool. But I do wonder if the Launchpad interface might act as a deterrent in on-boarding new people onto the Ubuntu developer community. Most developers today are used to collaboration interfaces with a much better user experience. ---- = Comments = ''If you'd like to comment, but are not the applicant or a sponsor, do it here. Don't forget to sign with `@``SIG``@`.'' ---- = Endorsements = ''As a sponsor, just copy the template below, fill it out and add it to this section.'' ---- == TEMPLATE == {{{ == == === General feedback === ## Please fill us in on your shared experience. (How many packages did you sponsor? How would you judge the quality? How would you describe the improvements? Do you trust the applicant?) === Specific Experiences of working together === ''Please add good examples of your work together, but also cases that could have handled better.'' ## Full list of sponsored packages can be generated here: ## https://udd.debian.org/cgi-bin/ubuntu-sponsorships.cgi === Areas of Improvement === }}} == Lukas 'slyon' Märdian == === General feedback === ## Please fill us in on your shared experience. (How many packages did you sponsor? How would you judge the quality? How would you describe the improvements? Do you trust the applicant?) I've only sponsored a handful of packages for Pushkar, mostly tiny targeted fixes. Pushkar did a good job with breaking those down to the minimal required change. Besides that, I've worked with him during my time at Foundations and appreciated his analytical skills and level-headed + structured approach. I've also met him at DebConf where I saw him engaging with the wider OSS community. '''I fully endorse his Ubuntu MOTU application.''' === Specific Experiences of working together === ''Please add good examples of your work together, but also cases that could have handled better.'' ## Full list of sponsored packages can be generated here: ## https://udd.debian.org/cgi-bin/ubuntu-sponsorships.cgi * dnspython, https://launchpad.net/bugs/2030475 A targeted fix to avoid a component-mismatch (dropping Recommends to Suggests in debian/control) * asterisk-espeak, https://launchpad.net/bugs/2051908 Adopt debian/rules build script to match upstream Makefile variables. Also, forwarded to Debian. But contained a slight oversight: Putting wrong bug number into debian/changelog. * wiredtiger, https://launchpad.net/bugs/2056102 Fix FTBFS in legacy code (dropped upstream), avoiding a buffer overflow. This had a slight oversight with the version string in debian/changelog (superflous "ppa1" suffix), which we dropped afterwards. * crack, https://launchpad.net/bugs/2077298 Another FTBFS, that turned out to become a sync. === Areas of Improvement === There are always new things to learn in Ubuntu. With new powers comes new responsibilities, so Pushkar should learn about dput[-ng] and additional helpers, such as https://git.launchpad.net/~ubuntu-server/+git/ubuntu-helpers/tree/cpaelzer/.dput.d/. Furthermore, he should be mindful about tiny oversights that might slip into uploads, like slightly wrong version strings or typos in debian/changelog. The aforementioned tools can help with that! -- [[LaunchpadHome:slyon]] <> == Athos Ribeiro == === General feedback === Pushkar seems to have some experience with transitions both in Debian and in Ubuntu, where he did get involved and helped pushing those to completion. This is quite valuable and giving him MOTU upload permissions would allow him to accomplish even more in that area. It would also help him getting additional experience for a future core-dev application if he wishes to do so. === Specific Experiences of working together === Pushkar helped with the ruby 3.3 transition while I was on a patch pilot shift. He was able to identify two specific, recurrent issue with backward compatibility and fixed most (if not all) affected packages. === Areas of Improvement === It would be nice to see more SRUs and involvement with other different processes around the distribution, such as FFes, MREs, etc. These should eventually happen more often with time so he can collect evidence to build a case for a core-dev application. == Vladimir Petko == === General feedback === I have sponsored several packages for Pushkar, including new packages (OpenJDK CRAC support). Pushkar provided good reviews for Java-specific changes during the Java 21 migration. He also performed quarterly security releases that required changes in openjdk packaging. He has done a wide range of packaging work, including the independent development and implementation of the new packages from the ground up. I fully endorse his MOTU application. === Specific Experiences of working together === crac-criu, https://bugs.launchpad.net/ubuntu/+bug/2076037. I was one of the package reviewers and sponsored the initial upload. Pushkar did a good job packaging the OpenJDK-specific extension of CRIU, and the review did not require many changes. libmina-sshd-java, https://bugs.launchpad.net/ubuntu/+source/libmina-sshd-java/+bug/2071358. The bug has a good root cause analysis and solution that allowed us to run the test rather than skip it. In this case, I had to add links to the upstream and Debian bugs in the patch header. === Areas of Improvement === It would be nice to get more involvement with SRU processes. ---- ## Uncomment the one that applies for you and please remove the others. ## ## [[CategoryCoreDevApplication]] ## [[CategoryMOTUApplication]] ## [[CategoryUniverseContributorApplication]] ## [[CategoryPerPackageUploaderApplication]]