-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Hi, everybody!
For those who don't know me, my name is Leandro Doctors (allentiak on IRC), and I'm the Debian Clojure Team's GSoC 2021 intern. My mentor is Louis-Philippe Véronneau[*] (pollo on IRC). My co-mentor is Utkarsh Gupta (utkarsh2102 on IRC). My 'no-mentor' :) is Elana Hashman (ehashman on IRC). In this message, I will summarize what I've been up to during the Coding I period (June 7th - July 16th). *************************************************************************************************** TL;DR: my updated `data-xml-clojure` package was accepted[1] in experimental on Wednesday night :-) *************************************************************************************************** [1] https://tracker.debian.org/news/1244465/accepted-data-xml-clojure-020alpha6-1-source-into-experimental/ Now, let's tell the full story. During the first days of the "Coding I" phase, I did some research on the `clj` dependencies. And after the precious feedback from Louis-Philippe, Elana, Utkarsh, and Alex Miller (the upstream developer of `clj`, among many other libraries), I came up with the following packaging strategy. 1) update `org.clojure:data.xml` (`data-xml-clojure`) to 0.2.0-beta6. 2) package `org.clojure:tools.gitlibs` (`tools-gitlibs-clojure`). 3) consider updating `libjsch-agent-proxy-java`, `jgit`, `libtools-cli-clojure` (all of them already in Debian). 4) consider packaging `com.cognitec.aws:*` packages. According to my original proposal, I should have completed all four tasks during Coding I. Looking back, the main lesson from these past weeks is a known classic: my timeline was too optimistic: I definitely underestimated the difficulty of the packaging process. Out of the four tasks, I only finished the first one. There were many challenges I had to overcome in order to update the library from version 0.0.8 to 0.2.0-alpha6: This what I did: First, I patched the source code so: - - we avoid needlessly packaging `data-codec-clojure` (not currently in Debian). - - we can ignore Clojure-Script-related dependencies. Then, I completely overhauled the packaging code (this is, what goes inside `debian/`). - - added support for automatically tracking newer releases. - - the package now builds with Leiningen, instead of plain Java. - - it now actually supports autopkgtest (the existing test was trivial). All this improved the quality of the package. I also improved the Clojure Packaging Tutorial[2] to make the process easier to follow. [2] https://wiki.debian.org/Clojure/PackagingTutorial Looking back, it is almost as if I had started packaging the library from scratch... But, more that what I produced, I think the most important part of all this is what I learned during these weeks. As it was the first time I ever packaged anything in Debian, I had to learn the basics, bump by bump. (And, oh my, I surely did bump quite a few times!) - - Basic packaging workflow. - - Setup `sbuild`[3] to make it work with `gbp`[4] (when I had rebuilt bidi-clojure from scratch, I had used plain `sbuild`.) - - Learn how to patch upstream files with `quilt`[5] (actually, via the `dquilt` frontend). This was the first really difficult task to do, since it took me quite some time to grasp it. Looking back, I think I was simply scared of breaking something :) - - Understanding `debian/` files. - - Understanding `debian/tests` (autopkgtest) files. This was particularly difficult, since the doc wasn't clear about it. So I then improved the Clojure Packaging Tutorial[2] to make the process easier to follow. [2] https://wiki.debian.org/Clojure/PackagingTutorial [3] https://wiki.debian.org/sbuild [4] https://manpages.debian.org/unstable/git-buildpackage/gbp.1.en.html [5] https://wiki.debian.org/UsingQuilt Definitely, all this was worth it. After all, my updated `data-xml-clojure` package was accepted[1] in experimental on Wednesday :-) [1] https://tracker.debian.org/news/1244465/accepted-data-xml-clojure-020alpha6-1-source-into-experimental/ Now that I've ~~learned the basics of packaging~~ bumped enough to get my package accepted, I'm hopeful I can ramp up and catch up with (at least most of) my original schedule during Coding II. `tools-gitlibs-clojure`, you're next :-) Thank you very much Louis-Philippe, Elana, Utkarsh, and Alex for your precious support during the last few weeks! Best, Leandro [*] As far as Google is concerned, my official GSoC mentor is Utkarsh, not Louis-Philippe. But that's for administrative reasons. -----BEGIN PGP SIGNATURE----- Version: Mailvelope v4.4.1 Comment: https://www.mailvelope.com wsFcBAEBCAAGBQJg9g8QAAoJED4EAsO6whyAQ/8P/0CscF0EcY2AtJ5cpP0d UgGE5FV++t/a2CgbWErFVkyuO0kE4qxG1rxU+YfmJsj9+gvGjy6D9FFqon4x rCQdPsEQs9FG80mhJLfeDSlGNKmekxh1fd5QB6wXYGgQThe85JdCSk0e/42y Lbk5n3Ytkd65g25XAeCmhqKf8WpedS/rE8sxaBLOj02jQtCTN8ojk48eOCCb Tlda9dOUD7Q/jmcfCi2DYCfh6Pk40lv9gBozMPry2G1SqBRJpSic2UoWb7U+ ZNQ/XkpxrtvwCW6KlmhqI7fzJgS3zg8ZpOzpB1INt0HC858jfnRsF5rFt5uw roNHFzuiBirb5QSMlFCMtX9zz5zXGWVrZn5y4P37TMeMkr6XwV+RSAx1Ro+f 9fDilYfTXQy86rPu2F1Z6yIUlpJo9LQ1NyH0ZAlYxqRSAzRIyYUn+RFALryW XeBOI+naLom2da0oW8TzkAdXxVezL3J96joqjE/XAF0QR/cPpbOeHsCSXmLm pAHvxiI9GYFb0/R6PjBps99mu7kstBczL87bgXhhhbAvPbWQX9I67CuiKBcJ UdCEAnnCQtcyoi6sHq4J/61Lae4srkEqRZc/qK6TrwbnCYabWFyBkkYyFIMX PORcXgIjn2kjvPhQMV7cml3EPT2HXJe3HOpHUTl9/HB2+lMg8HAQG1tnyYt3 5b4Q =fkRN -----END PGP SIGNATURE-----
