----BEGIN CLASS---- [13:30] #startclass [13:30] Roll call [13:30] Priyanka Saggu [13:30] Pravar Agrawal [13:30] Saurav [13:30] Md Salman Ansari [13:30] Siddhant N Trivedi [13:30] Poonam Chauhan [13:30] Rayan Das [13:30] Philemon Johnson [13:31] kanay bhandari [13:31] Today's speaker is utkarsh2102, whom many of you already know. [13:31] utkarsh2102, stage is yours. [13:31] you can type next to take questions whenever you want. [13:31] Hello everyone o/ [13:32] A quick introduction about myself. I am a 3rd year undergraduate student, pursuing CSE. [13:32] I have been contributing to open source in general for about 2 years, I guess. [13:33] As of today, I am a Debian Maintainer, maintainer Perl modules, Ruby gems, Golang applications, Python modules, and some JavaScript libraries. [13:34] I am sure everyone knows Debian, but for those who don't: Debian is a unix-like operating system consisting entirely of free and open-source software. More could be found at https://www.debian.org/ [13:35] ! [13:35] Out of all the packages that I maintain, some of the known ones are gitlab, diaspora, rails, speedtest-cli, etc, etc. [13:35] next [13:35] utkarsh2102, How did you start contributing to Debian? [13:36] kushal: ah. This goes back to 2017. [13:37] I was in my 1st year of undergraduation. Didn't know a lot of about computer science (in fact, didn't know anything at all!). [13:37] Roll call: Nilesh Patra. Slow internet connection :( [13:37] It was here, in dgplug, that I started everything. Starting with LYM, then PYM, then learning about open source. [13:38] Since then, I have been contributing to a lot of projects (trying to find the one that interests me the most!). [13:39] I liked typeshed (https://github.com/python/typeshed), wrote basic patches for the same. [13:40] ! [13:40] ! [13:40] ! [13:41] But then, life took a toll and everything became a bit of a mess (time management, academic, etc). It was then I was introduced to Debian by libregeekingkid4 (who's present here!). [13:41] My first contribution to Debian was on 1st January, this year. And I loved the community and the people there. [13:42] That's how I started. [13:42] Did a lot of packaging, bug fixes, fixed failing tests. [13:42] next [13:42] what was your first contribution? [13:43] sap143: my first contribution to Debian? It was a complete Ruby package :) [13:43] And in general, my first contribution to open source were a couple of doc fixes :P [13:44] I believe that's where most of us start :D [13:44] next [13:44] How are you, managing currently your college and open source contribution? [13:45] BhaveshSGupta: Heh, that's a tricky one. I am not sure if I have a definite answer to that. But here's something I do: [13:47] Mostly, I finish all my college stuff in college (all the assignments, etc) during breaks, and stuff (yes, I don't get to enjoy going out with my friends much). But helps in time management. [13:48] And when I am back home, I take a quick nap. And from 5ish PM to 12 or so, I divide my time for doing open source stuff, learning, documentation and blogging, and others. [13:48] I normally start with opening all the things I have to do in a different workspace in i3 (wm). And then keep doing them one by one; usually separated by a 3-minute break in between. [13:49] Hope that answers your question partly? [13:49] next [13:49] You have contributed actively in a lot of open source projects. So are you still active on almost all of them? If yes, what is your priority in terms of time while contributing? [13:51] gargantua_kerr: Out of all the projects I have contributed to, I liked 3. Typshed, CPython (just a couple of doc updates, though), and Debian. I was active in typeshed for a while (not from last couple of months :/). And I have been active in Debian for months now. [13:52] But as soon as my GSoC ends (doing it with Debian itself), I'll take out more time for CPython, probably! :D [13:52] ! [13:52] "what is your priority in terms of time while contributing?" -> not sure if I understand this correctly; could you raise that up as a new question, please? :D [13:52] next [13:52] ! [13:53] How do you find contributing on different languages? Like, you started with Python but now have contributions on Go, Ruby, JavaScript. So how did you move to different projects? [13:54] gandalfdwite: it is fun! I have been mostly inspired by people's blog on learning new languages (for instance, https://www.norvig.com/21-days.html; where it mentions about learning around "half a dozen of languages"). [13:55] I might not be fluent in writing Golang or Perl right now, but it is fun to read other people's code and figure out and learn new things :D [13:56] ! [13:57] To answer the other half of the question, I moved with the sole purpose of learning new things (new languages, new approaches, etc). Starting with a new language was kinda tricky (like I am dealing with Perl right now). [13:57] I have a difficulty in reading the logs and test failures. But there are people to help out, search engines to look up to :D [13:58] It is fun, mostly. But some test and build failures make me cry real hard :P [13:58] And I'd totally recommend everyone to learn at least half a dozen of languages; different paradigms maybe? [13:58] next [13:59] What I meant to say is do you prioritize time for contributing. What I mean to say is that if you have 10 hours, and 3 orgs to contribute to, how do you manage time? [14:01] gargantua_kerr: Ah! Usually, I only take up 1 org at a time, but when I am blocked by some issue that I can't think of, or need to free myself for a while, I take up the other. Typeshed has been interesting to deal with in such cases. I usually ask for help, but I like it! :D [14:02] Also, I don't really have a fixed time schedule, I just keep solving/completing issues one by one, in mostly a random order. Swtiching b/w languages and the orgs definitely helped me. Give it a try, maybe? :D [14:02] next [14:02] utkarsh2102: it's been mostly answered, thanks ;) the number of packages you maintain sounds like filling a full-time job to me ;) [14:03] schubisu: haha, as a fun fact: I am one of the paid developers for a project under Debian (Debian LTS, started by freexian). It provides support (in terms of security) to a release for up to 5 years, at least. [14:03] utkarsh2102: that's good to hear! [14:04] My job there is to provide security patches to the packages that are listed for support. [14:04] next [14:05] Yay! [14:06] ! [14:06] next [14:07] utkarsh2102: Sorry if this is a boring question, but I never fully understood the workflow of package maintaining. Can you give a short example of what I would need to do when maintaining a package in Debian? [14:08] schubisu: not a boring question, definitely. [14:08] Here's the basic workflow: [14:09] You take an upstream tarball; with the help of some tools in Debian (mostly dh_make), you create a template package out of that tarball. [14:10] By template, I mean, what basically happens is, the "debian/" directory is added to the upstream codebase. [14:11] Whatever work is to be done, happens under the debian/ directory. Because we don't tamper the upstream source code directly. If needed, we do it by the help of patches (inside the debian/ directory). [14:12] Under debian/ there are a couple of files which regulates the whole package management; you just need to replace some of the fields of the templates with the upstream data. [14:13] Once done, you build the package; test for any policy violation and the upstream tests. If something fails, you write a patch for it. If everything passes, you upload it to the Debian archive (which later becomes apt-installable). [14:14] Then once you're done with the initial packaging, you need to maintain it as well; meaning there might be situation where the other packages (Debian ships more than 50k packages) break your packages. So you need to take care of the regression. [14:15] And also, you need to do a timely upgrade of your package as well (wrt to the upstream release). So that the Debian users get the latest version of the library/gem to use :D [14:16] That is mostly it, I guess. [14:16] Feel free to ask if I failed to make you understand something? [14:16] Or if something wasn't clear and needs more detailing? [14:16] utkarsh2102: thanks, that are some keywords to look up, but I think I understood the main workflow [14:17] schubisu: perfecto :D [14:17] I normally hang around in the channel; feel free to ask anytime. [14:17] next [14:17] \o/ [14:17] utkarsh2102: how can I break other packages or vice versa, by modifying those capsuled fields? [14:18] sorry :) tell me when you don't have time now [14:18] utkarsh2102: and one more; who decides if your updated makes it into the current Debian release or is withheld for the next? [14:19] schubisu: there are often times when one package is a dependency of others; for instance, rails. Rails is used by 100s of libraries. A lot of them use different version of rails. This means, when rails is upgraded in Debian, the packages that are dependent on a particular version of rails breaks as well. [14:20] utkarsh2102: so is it the Rails maintainers duty to run all tests for reverse dependencies? [14:20] add: schubisu [14:21] In such cases, we either ask the upstream to use the newer version of rails. But when they're not willing to do that themselves, we need to do it by writing patches or embedding the version; or whatever it takes to make sure it doesn't break. [14:22] schubisu: ideally, yes! Since I maintain rails, I generally test all the reverse dependencies as well. And it is my duty to fix the breaking packages. [14:22] utkarsh2102: wow, that's a lot of work and also a big responsibility [14:23] But sometimes, people just upload a package without checking the reverse dependencies (not common, but happens). This triggers a lot of failures. And we need to fix them asap. [14:24] schubisu: upgrading Rails is a big task in itself; see here: https://salsa.debian.org/ruby-team/rails/wikis/Transition-to-Rails-6-for-Debian-Bullseye [14:24] Around 300 packages to look after while upgrading rails. [14:25] Even more. [14:26] Also, a slight correction: I am one of the maintainer of rails. Praveen has been maintaing it for quite sometime now. [14:27] I guess, there are 3 maintainers at the moment. Because if one doesn't have time (because life happens), then there's at least someone else to look after. [14:27] ! [14:27] next [14:28] how much of your time does a package check and fix take? and if it is really badly broken, do you drop a package? [14:29] jasonbraganza: there's no such time I can mention; a few failures can be fixed in an hours; some take months to deal with :( [14:29] aah. thank you :) [14:30] and for the second part of my question, i meant as in it’s broken. you can’t fix it. upstream disclaims responsibility, worst case scenario [14:30] And in case it is badly broken (or say, it is unmaintained by the upstream), we need to check how many people use it and how many packages depends up on it. [14:31] aah, very pragmatic. thank you :) [14:31] If it is a leaf dependency (that is, no packages depend on it), we generally remove it. But if there are packages that are dedpending on it, then it becomes our (painful) job to fix it, whatever it takes :D [14:31] that is what i was trying to understand [14:32] this sounds like a thankless job, and you have my utmost gratitude for doing it :) [14:32] And in some cases, where the package is a dependency of others and it is important to keep, we become the upstream sometimes :D [14:33] Haha, I just get to learn a lot; I am myself quite thankful for the help I get from others :D [14:33] (and on some days, I sob in the corner of my room :D) [14:34] But there are a lot of people I look up to, and it helps me keep going :D [14:34] (one of them are you, jasonbraganza!) [14:34] next [14:34] when you said you get paid, utkarsh2102, did you mean helicopter money or vada pao money? [14:35] and thank you :) [14:35] jasonbraganza: haha. I get paid 75 Euro per hour (5975 INR at the moment) for every hour I work. [14:36] aah. so somewhere in between :) [14:36] hehe, yeah. A great side job to have D: [14:36] :D* [14:38] any other questions anyone? [14:38] ! [14:38] next [14:39] utkarsh2102: What's your side job? And you told you work about 14 hours per day during DebConf talk. So how do you manage things like Academics and spend time with family? [14:40] ! [14:41] kurianbenoy: my side job is to write security patches (or sometimes get them from the upstream) for a project started by a company called Freexian, know as "Debian LTS". Provides support to a release for upto 5 years (in terms of security, etc). And they pay 75 Euros per hour those who work for them :D [14:42] ! [14:43] And to answer the other part of the question, yes. I used to go on a stretch of 14 hours a day (becuase things have been a mess, and I wanted to distract myself). I still work for around 10-12 hours a day. [14:43] I take short breaks of 3 minutes every hour or so and that's my family time :D [14:44] As for college stuff, I try to cover everything in college itself. During exams, I work for around 7 hours. And focus on *not* flunking the papers :D [14:44] next [14:44] What is your suggestion to beginners that how to and from where to get started contributing to Debian? [14:46] raydeeam: Hold on a minutes, I wrote it down for someone. Sharing it in the form of paste. (I should blog, but later this month maybe). [14:46] utkarsh2102: okay :) [14:48] raydeeam: I wrote https://paste.debian.net/1096976/ for someone who emailed me with his query. [14:49] Also includes some pointers with other DDs as well (just not mine!). [14:49] utkarsh2102: thanks [14:50] But in general, there are lots of things to work in Debian. Packages (mostly every language), documentation, writing scripts (python, shell), kernel development and testing. Almost all sorts of work. Let me know if you're interested in something particular :D [14:50] next [14:51] What was your initial motivation, that got you to start contributing to Open Source projects? [14:53] snowmanstark: I started contributing when I first learned about it here in dgplug training sessions, back in 2017. [14:53] And then I hoped to a lot of different projects until I found something I loved to work on. [14:55] To be honest, my main motivation was to improve myself and work with others (who are a lot better than I am). Getting reviews on your work by such people is certainly helps me learn (and I crave for it, too)! [14:56] Later on Debian became more than a project to me. It's like a beautiful family now, and meeting them all this year at DebConf, Brazil was amazing! :D [14:58] Also, a part of a reason was I always felt "I wasn't good enough", so a couple of people pushed me towards working with others and improve and gain a little confidence, at least. [14:58] ! [14:59] And it certainly did help, so I never quit; this what keeps me going mostly (and then there are some people I look up to; so that counts as well) :D [14:59] next [15:00] snowmanstark: also, I'd want to add that I later learned that people are working on sooo manyyy beautiful things, so being a part of it definitely keeps me going as well. [15:01] Debian has a women mentoring program as well. What do you say one should straight away jump in into the program and start right from the very basics OR One should prepare well (as in some pre-requisites) before sending the email. Also, what would be your suggestions on the pre-requisites. Can you please put some shadow on the program as whole. :) [15:04] priyankasaggu119: oh yes, definitely. Just jump in! And the people there will definitely get you started. Sruthi (a core dev from India) is willing to help get more contributors (and then turn them into core devs) (from India) as a part of the diversity team. [15:05] Thank you utkarsh2102. I will look forward for it. :) Also, sorry this is a better statement (s/put some shadow/shed some light. ) [15:06] Though she's officially a part of the team and trying to encourage more on "women core devs", I, on the other hand, am helping everyone (mostly from India) to be become maintainers, and then core devs. [15:06] If I can help you get started in any way, I'd be more than happy! :D [15:07] Let me know if you're interested. Also, I'll drop in Sruthi's mail ID if that's what you want, maybe? [15:07] utkarsh2102, I will catch up with you after the session. [15:07] Basically, everyone in Debian would love to help. You just need to take a step forward ;) [15:07] Perfecto :D [15:07] next [15:07] Thank you, That will be a great help too. :) [15:07] \o/ [15:07] :D [15:08] utkarsh2102: thank you, that was a really interesting interview [15:08] I think we should end the session now, as utkarsh2102 also mentioned that he'll be happy to take questions at any later point in the channel ----END CLASS----