[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.00,0:00:02.49,Default,,0000,0000,0000,,Thank you very much. Dialogue: 0,0:00:03.15,0:00:05.06,Default,,0000,0000,0000,,Thanks everybody for coming,… Dialogue: 0,0:00:08.67,0:00:12.19,Default,,0000,0000,0000,,If you are packaging software and you want\Nme to work on with you, Dialogue: 0,0:00:12.19,0:00:13.53,Default,,0000,0000,0000,,this is how you can do that. Dialogue: 0,0:00:13.53,0:00:15.16,Default,,0000,0000,0000,,It is a very self-centered talk: Dialogue: 0,0:00:15.16,0:00:18.52,Default,,0000,0000,0000,,I just want to explain some of the things\Nthat I like about, Dialogue: 0,0:00:18.52,0:00:21.37,Default,,0000,0000,0000,,some practice that I prefer\Nabout Debian packaging, Dialogue: 0,0:00:21.37,0:00:25.24,Default,,0000,0000,0000,,and I don't pretend this is any sort of… Dialogue: 0,0:00:25.24,0:00:27.30,Default,,0000,0000,0000,,official, permanent or final thing. Dialogue: 0,0:00:27.30,0:00:30.41,Default,,0000,0000,0000,,I just wanted to share some ideas\Nthat I have about Dialogue: 0,0:00:30.41,0:00:33.38,Default,,0000,0000,0000,,the way that I work with packages,\Nin the hope that maybe… Dialogue: 0,0:00:33.38,0:00:34.62,Default,,0000,0000,0000,,For two hopes: Dialogue: 0,0:00:34.62,0:00:38.21,Default,,0000,0000,0000,,One is that I hope that I can show you\Nsomething that you have not heard of, Dialogue: 0,0:00:38.21,0:00:39.99,Default,,0000,0000,0000,,or maybe you were doing differently, Dialogue: 0,0:00:39.99,0:00:42.14,Default,,0000,0000,0000,,or maybe you think it is\Nthe right think to do Dialogue: 0,0:00:42.14,0:00:44.47,Default,,0000,0000,0000,,and it is just nice to see\Nsomebody else doing it. Dialogue: 0,0:00:44.47,0:00:47.44,Default,,0000,0000,0000,,My second hope is that you can tell me\Nwhat I am doing wrong, Dialogue: 0,0:00:47.44,0:00:51.05,Default,,0000,0000,0000,,and you can help me learn and improve\Non my own packaging techniques. Dialogue: 0,0:00:51.05,0:00:53.34,Default,,0000,0000,0000,,If you see something that\NI am proposing up here, Dialogue: 0,0:00:53.34,0:00:56.63,Default,,0000,0000,0000,,and you think there is a problem with it,\NI would like to hear about it too. Dialogue: 0,0:00:56.63,0:00:58.74,Default,,0000,0000,0000,,I just want to see more of the culture\Nwithin Debian, Dialogue: 0,0:00:58.74,0:01:00.89,Default,,0000,0000,0000,,of people who are doing packaging,\Nexplaining what they are doing, Dialogue: 0,0:01:00.89,0:01:02.82,Default,,0000,0000,0000,,and so I thought I would\Njust step up and explain: Dialogue: 0,0:01:02.85,0:01:05.38,Default,,0000,0000,0000,,"Here is some of the practice that I do", Dialogue: 0,0:01:05.38,0:01:09.25,Default,,0000,0000,0000,,In the hope that other people will do the\Nsame and explain what they are doing, Dialogue: 0,0:01:09.25,0:01:13.05,Default,,0000,0000,0000,,and maybe they can learn from\Nme and I can learn from them. Dialogue: 0,0:01:13.05,0:01:16.92,Default,,0000,0000,0000,,Without much further ado I am\Njust going to dive into it. Dialogue: 0,0:01:16.92,0:01:20.90,Default,,0000,0000,0000,,If you have questions, I am perfectly\Nhappy to be interrupted, Dialogue: 0,0:01:20.90,0:01:24.19,Default,,0000,0000,0000,,we have some folks with\Nwalking mics in the crowd: Dialogue: 0,0:01:24.19,0:01:26.52,Default,,0000,0000,0000,,you can just raise your hand. Dialogue: 0,0:01:26.52,0:01:29.25,Default,,0000,0000,0000,,If you have got a question or an\Ninterruption or whatever, Dialogue: 0,0:01:29.25,0:01:30.35,Default,,0000,0000,0000,,that is fine. Dialogue: 0,0:01:30.35,0:01:33.11,Default,,0000,0000,0000,,I doubt I will go the whole 15 minutes,\NI think there are 20 minutes, Dialogue: 0,0:01:33.11,0:01:36.22,Default,,0000,0000,0000,,I doubt I will go the whole time,\Nso there will be also Dialogue: 0,0:01:36.22,0:01:38.34,Default,,0000,0000,0000,,time for questions at\Nthe end if you prefer. Dialogue: 0,0:01:38.34,0:01:40.14,Default,,0000,0000,0000,,But I do not mind being interrupted. Dialogue: 0,0:01:40.14,0:01:41.98,Default,,0000,0000,0000,,So, this is all on this web page here, Dialogue: 0,0:01:41.98,0:01:44.79,Default,,0000,0000,0000,,you could probably skip this talk and go\Nread the web page, Dialogue: 0,0:01:44.79,0:01:47.23,Default,,0000,0000,0000,,but then you would not have the nice\Nin-person interactions, Dialogue: 0,0:01:47.23,0:01:49.75,Default,,0000,0000,0000,,and it is easier to tell me that I am\Nwrong in person, Dialogue: 0,0:01:49.75,0:01:51.48,Default,,0000,0000,0000,,so I would like to have that happen. Dialogue: 0,0:01:51.48,0:01:53.43,Default,,0000,0000,0000,,I put this up on the Debian wiki, Dialogue: 0,0:01:53.43,0:01:56.24,Default,,0000,0000,0000,,because I want anyone\Nto be able to find it. Dialogue: 0,0:01:56.24,0:02:00.24,Default,,0000,0000,0000,,If you think you have got some good ideas,\Nyou should put it on the Debian Wiki too: Dialogue: 0,0:02:00.24,0:02:05.01,Default,,0000,0000,0000,,other people can take advantage of the\Nideas that you have got. Dialogue: 0,0:02:07.58,0:02:11.09,Default,,0000,0000,0000,,First baseline is:\NI really like revision control. Dialogue: 0,0:02:11.10,0:02:14.27,Default,,0000,0000,0000,,And I know that it makes me\Na certain flavor on nerd, Dialogue: 0,0:02:14.27,0:02:19.01,Default,,0000,0000,0000,,but when we are working with things that\Nare as complicated as software packages, Dialogue: 0,0:02:19.01,0:02:19.89,Default,,0000,0000,0000,,hmmm… Dialogue: 0,0:02:22.59,0:02:25.43,Default,,0000,0000,0000,,I think a lot of people don't get\Nthat in Debian you are not Dialogue: 0,0:02:25.43,0:02:27.16,Default,,0000,0000,0000,,just working on one\Nsoftware package: Dialogue: 0,0:02:27.16,0:02:30.12,Default,,0000,0000,0000,,you are actually probably, if you\Nare doing a responsibly work, Dialogue: 0,0:02:30.12,0:02:33.01,Default,,0000,0000,0000,,on at least two software packages,\Nand maybe 5. Dialogue: 0,0:02:33.01,0:02:35.15,Default,,0000,0000,0000,,So you have got the version\Nthat is unstable, Dialogue: 0,0:02:35.15,0:02:39.26,Default,,0000,0000,0000,,and you have got the version that you\Ntry to maintain for stable as well. Dialogue: 0,0:02:39.26,0:02:45.17,Default,,0000,0000,0000,,And we are committing to\Ndoing maintenance work. Dialogue: 0,0:02:45.17,0:02:52.39,Default,,0000,0000,0000,,A lot of our work in the project is\Njanitorial in nature: Dialogue: 0,0:02:52.39,0:02:55.49,Default,,0000,0000,0000,,we want to clean up the mess and\Nwe want us to stay out of the way Dialogue: 0,0:02:55.49,0:02:57.45,Default,,0000,0000,0000,,and make sure things work,\Nfunctionally, Dialogue: 0,0:02:57.45,0:03:00.97,Default,,0000,0000,0000,,for people who are relying on the\Noperating system to not get in their way. Dialogue: 0,0:03:00.97,0:03:04.26,Default,,0000,0000,0000,,So revision control I think is really\Nhelpful because it means you can Dialogue: 0,0:03:04.26,0:03:07.91,Default,,0000,0000,0000,,keep track of what changes you have done\Non different branches of the project Dialogue: 0,0:03:07.91,0:03:09.80,Default,,0000,0000,0000,,while you are maintaining both of them. Dialogue: 0,0:03:09.80,0:03:14.44,Default,,0000,0000,0000,,Basically, I'd require working with\Nthe revision system I am comfortable with, Dialogue: 0,0:03:14.44,0:03:17.74,Default,,0000,0000,0000,,I prefer Git, I am not going to have a\Nreligious war about it. Dialogue: 0,0:03:17.74,0:03:21.29,Default,,0000,0000,0000,,If upstream uses Git, I am\Neven happier, and I try to make Dialogue: 0,0:03:21.29,0:03:25.68,Default,,0000,0000,0000,,my packaging depend on\Nupstream's revision control. Dialogue: 0,0:03:29.34,0:03:34.65,Default,,0000,0000,0000,,I like to use 'git-buildpackage', and I\Nlike to use it with debhelper. Dialogue: 0,0:03:34.65,0:03:36.79,Default,,0000,0000,0000,,If you have not tried out\N'git-buildpackage', Dialogue: 0,0:03:36.79,0:03:39.88,Default,,0000,0000,0000,,we are going to have a\N'git-buildpackage' skill share session Dialogue: 0,0:03:39.88,0:03:43.88,Default,,0000,0000,0000,,later on today, and I welcome you\Nto come and share your tricks with it, Dialogue: 0,0:03:43.88,0:03:46.29,Default,,0000,0000,0000,,or learn some tricks from other people. Dialogue: 0,0:03:46.29,0:03:50.48,Default,,0000,0000,0000,,It is a particular way that you can keep\Nyour Debian packaging in a Git repository, Dialogue: 0,0:03:50.48,0:03:55.89,Default,,0000,0000,0000,,and it helps you to keep track of all of\Nthe changes that have happened within Dialogue: 0,0:03:55.89,0:03:59.29,Default,,0000,0000,0000,,your packaging and within upstream to\Nmake sure you are not accidentally Dialogue: 0,0:03:59.29,0:04:00.81,Default,,0000,0000,0000,,making other changes. Dialogue: 0,0:04:00.81,0:04:03.68,Default,,0000,0000,0000,,So it is very easy to go back and\Nreview what you have done. Dialogue: 0,0:04:03.68,0:04:05.88,Default,,0000,0000,0000,,I find that really useful. Dialogue: 0,0:04:05.88,0:04:09.23,Default,,0000,0000,0000,,I definitely also like to keep\Nupstream's source code Dialogue: 0,0:04:09.23,0:04:11.06,Default,,0000,0000,0000,,in the same revision control system. Dialogue: 0,0:04:11.06,0:04:13.82,Default,,0000,0000,0000,,I like to keep the tarballs in the\Nrevision control system Dialogue: 0,0:04:13.82,0:04:16.03,Default,,0000,0000,0000,,because it means that\Nif someone is interested, Dialogue: 0,0:04:16.03,0:04:18.24,Default,,0000,0000,0000,,they can uses a tool called\N'debcheckout'. Dialogue: 0,0:04:18.24,0:04:20.71,Default,,0000,0000,0000,,You can use 'debcheckout' with\Na name of a package: Dialogue: 0,0:04:20.71,0:04:23.38,Default,,0000,0000,0000,,you just say "I am really\Ninterested in package 'foo', Dialogue: 0,0:04:23.38,0:04:27.05,Default,,0000,0000,0000,,let me see the source code for that":\N'debcheckout foo' Dialogue: 0,0:04:27.05,0:04:30.37,Default,,0000,0000,0000,,You get the source code, and\Nyou get the source code… Dialogue: 0,0:04:30.37,0:04:32.85,Default,,0000,0000,0000,,from a revision control system\Nthat you can now track Dialogue: 0,0:04:32.85,0:04:36.24,Default,,0000,0000,0000,,and you can just propose changes on. Dialogue: 0,0:04:37.27,0:04:40.99,Default,,0000,0000,0000,,You can also extract the tarball from that\Nrevision control system. Dialogue: 0,0:04:40.99,0:04:44.63,Default,,0000,0000,0000,,'debcheckout' actually works even if you\Ndo not have upstream stuff in there, Dialogue: 0,0:04:44.63,0:04:47.33,Default,,0000,0000,0000,,but I like to keep it all in one\Nrevision control system, Dialogue: 0,0:04:47.33,0:04:50.43,Default,,0000,0000,0000,,it is just easier to find everything\Nwhen you want. Dialogue: 0,0:04:50.71,0:04:53.70,Default,,0000,0000,0000,,Some of these things that\NI prefer have to do with Dialogue: 0,0:04:53.70,0:04:55.85,Default,,0000,0000,0000,,what the upstream software\Ndeveloper has done, Dialogue: 0,0:04:55.85,0:04:59.59,Default,,0000,0000,0000,,so I am less inclined to try the package,\Nan upstream software project, Dialogue: 0,0:04:59.59,0:05:01.78,Default,,0000,0000,0000,,if they just throw tarballs\Nhere over the wall Dialogue: 0,0:05:01.78,0:05:03.44,Default,,0000,0000,0000,,to an FTP side every now and then. Dialogue: 0,0:05:03.44,0:05:06.34,Default,,0000,0000,0000,,It makes it more difficult for me to\Nknow what they are doing, Dialogue: 0,0:05:06.34,0:05:07.58,Default,,0000,0000,0000,,and why they are doing it. Dialogue: 0,0:05:07.58,0:05:10.32,Default,,0000,0000,0000,,So i like it, I have already said,\Nwhen upstream uses Git, Dialogue: 0,0:05:10.32,0:05:12.66,Default,,0000,0000,0000,,I also like it when upstream\Nsigns their releases, Dialogue: 0,0:05:12.66,0:05:15.22,Default,,0000,0000,0000,,and says "hey, this is specific release", Dialogue: 0,0:05:15.22,0:05:18.77,Default,,0000,0000,0000,,because that is a signal\Nthat I can use, Dialogue: 0,0:05:18.77,0:05:21.89,Default,,0000,0000,0000,,or somebody else that\Nunderstands the project. Dialogue: 0,0:05:22.14,0:05:25.43,Default,,0000,0000,0000,,As said, "we think that this is\Nsomething that other people can use", Dialogue: 0,0:05:25.43,0:05:28.93,Default,,0000,0000,0000,,or "this is a particular version that\Nwe would like other people to test". Dialogue: 0,0:05:28.93,0:05:32.26,Default,,0000,0000,0000,,There are a lot of other situations where\Nmaybe it is not so important. Dialogue: 0,0:05:32.26,0:05:35.13,Default,,0000,0000,0000,,And having that be cryptographically\Nsigned is really useful. Dialogue: 0,0:05:35.13,0:05:38.73,Default,,0000,0000,0000,,I care about cryptographic signature on\Nsoftware because I want to know that Dialogue: 0,0:05:38.73,0:05:44.03,Default,,0000,0000,0000,,what I am running is related to the code\Nthat somebody else out should be run. Dialogue: 0,0:05:44.03,0:05:46.72,Default,,0000,0000,0000,,And if you don't verify your\Nsoftware cryptographically, Dialogue: 0,0:05:46.72,0:05:48.91,Default,,0000,0000,0000,,anyone who can intercept\Nthe network connection Dialogue: 0,0:05:48.91,0:05:52.52,Default,,0000,0000,0000,,between you and that software, can\Nmodify the software before it gets to you. Dialogue: 0,0:05:52.52,0:05:54.56,Default,,0000,0000,0000,,And the cryptographic signature just says: Dialogue: 0,0:05:54.56,0:05:58.12,Default,,0000,0000,0000,,"look, this is a version\Nthat I am OK with. Dialogue: 0,0:05:58.12,0:06:00.39,Default,,0000,0000,0000,,I am putting it out there\Nand it comes from me". Dialogue: 0,0:06:00.39,0:06:03.71,Default,,0000,0000,0000,,So I can have a trace back\Nto that point. Dialogue: 0,0:06:06.38,0:06:10.57,Default,,0000,0000,0000,,Just let me talk about briefly about\Nhow you do cryptographic verification Dialogue: 0,0:06:10.57,0:06:13.31,Default,,0000,0000,0000,,of upstream\NOne is you might know upstream: Dialogue: 0,0:06:13.31,0:06:16.94,Default,,0000,0000,0000,,you might know them personally, you\Nknow their key already, that is fine. Dialogue: 0,0:06:16.94,0:06:20.52,Default,,0000,0000,0000,,That is not the usual case:\Nwe work on the Internet. Dialogue: 0,0:06:20.75,0:06:23.66,Default,,0000,0000,0000,,In the situation where your upstream\Nis signing their tarballs Dialogue: 0,0:06:23.66,0:06:26.52,Default,,0000,0000,0000,,and you have not met them,\Nyou do not have to sign their key, Dialogue: 0,0:06:26.52,0:06:29.05,Default,,0000,0000,0000,,you do not have to say\N"I announce this is their key". Dialogue: 0,0:06:29.05,0:06:32.56,Default,,0000,0000,0000,,But it is probably the same one\Nthat is signing every release, Dialogue: 0,0:06:32.56,0:06:34.16,Default,,0000,0000,0000,,so you should keep track of that. Dialogue: 0,0:06:34.16,0:06:37.80,Default,,0000,0000,0000,,Debian has a nice way to\Nkeep track of that: Dialogue: 0,0:06:37.80,0:06:41.98,Default,,0000,0000,0000,,you can tell Debian how to find the new\Nversion of the upstream tarball. Dialogue: 0,0:06:41.98,0:06:43.72,Default,,0000,0000,0000,,This is in the Debian 'watch' file. Dialogue: 0,0:06:43.72,0:06:49.53,Default,,0000,0000,0000,,If you type 'man uscan', you can learn\Nmore about Debian 'watch', Dialogue: 0,0:06:49.53,0:06:52.09,Default,,0000,0000,0000,,and Debian 'watch' now has\Na feature that lets you say Dialogue: 0,0:06:52.09,0:06:54.77,Default,,0000,0000,0000,,"that is not only this way\Nyou find the tarball, Dialogue: 0,0:06:54.77,0:06:58.49,Default,,0000,0000,0000,,but upstream publishes signatures\Nand the signatures look like this". Dialogue: 0,0:06:58.49,0:07:00.60,Default,,0000,0000,0000,,You know, they got a '.sig' at the end. Dialogue: 0,0:07:00.60,0:07:04.86,Default,,0000,0000,0000,,So there is a particular arcane way to\Nspecify that, but if you specify that, Dialogue: 0,0:07:04.86,0:07:07.34,Default,,0000,0000,0000,,then 'uscan' can find\Nnot only the upstream tarball, Dialogue: 0,0:07:07.34,0:07:09.26,Default,,0000,0000,0000,,it can find the upstream signature. Dialogue: 0,0:07:09.26,0:07:12.47,Default,,0000,0000,0000,,And, if you drop\Nupstream's signing key Dialogue: 0,0:07:12.47,0:07:14.80,Default,,0000,0000,0000,,- which of course I did not\Nput on the wiki page, Dialogue: 0,0:07:14.80,0:07:16.59,Default,,0000,0000,0000,,someone should\Nedit that and fix it - Dialogue: 0,0:07:16.59,0:07:24.19,Default,,0000,0000,0000,,you can put the upstream signing\Nkey in 'debian/upstream/signing-key.asc'. Dialogue: 0,0:07:25.98,0:07:29.98,Default,,0000,0000,0000,,And then if you do that, when you say\N'uscan', you can tell… Dialogue: 0,0:07:31.68,0:07:34.21,Default,,0000,0000,0000,,Maybe some people here do not\Nknow how to use 'uscan': Dialogue: 0,0:07:34.21,0:07:35.64,Default,,0000,0000,0000,,'uscan' is a very simple tool, Dialogue: 0,0:07:35.64,0:07:39.04,Default,,0000,0000,0000,,you run it from a software package\Nthat has a 'debian' directory, Dialogue: 0,0:07:39.04,0:07:43.08,Default,,0000,0000,0000,,or even one level up if you keep all of\Nyour software packages in one folder. Dialogue: 0,0:07:43.08,0:07:46.09,Default,,0000,0000,0000,,You can go one level up\Nand say 'uscan', Dialogue: 0,0:07:46.09,0:07:49.59,Default,,0000,0000,0000,,and it will look in all of the folders\Nthat are children of it, Dialogue: 0,0:07:49.59,0:07:50.92,Default,,0000,0000,0000,,and look for new versions Dialogue: 0,0:07:50.92,0:07:54.27,Default,,0000,0000,0000,,by trying to find a new upstream\Nversion in 'debian/watch'. Dialogue: 0,0:07:54.27,0:07:56.65,Default,,0000,0000,0000,,And if you have configured\N'debian/watch' properly, Dialogue: 0,0:07:56.65,0:07:58.58,Default,,0000,0000,0000,,it can find the new upstream signatures, Dialogue: 0,0:07:58.58,0:08:02.08,Default,,0000,0000,0000,,and if you have got the\N'upstream/signing-key.asc', Dialogue: 0,0:08:02.08,0:08:04.48,Default,,0000,0000,0000,,then it will actually verify\Nthe signatures for you Dialogue: 0,0:08:04.48,0:08:06.67,Default,,0000,0000,0000,,as part of fetching the\Nnew upstream tarball. Dialogue: 0,0:08:06.67,0:08:10.36,Default,,0000,0000,0000,,So you can get all of those things just\Nby setting a pre-packaging that way. Dialogue: 0,0:08:10.36,0:08:13.41,Default,,0000,0000,0000,,There is a hand up down there, could we\Nget the mic down to the hand ?\N Dialogue: 0,0:08:14.15,0:08:15.10,Default,,0000,0000,0000,,Thanks. Dialogue: 0,0:08:15.10,0:08:18.56,Default,,0000,0000,0000,,Or to the person who has that hand,\Nit is not just a hand. Dialogue: 0,0:08:18.56,0:08:20.66,Default,,0000,0000,0000,,[public laugh] Dialogue: 0,0:08:21.38,0:08:27.22,Default,,0000,0000,0000,,[attendee] Publish a tarball,\Nand a hash, '.sha1', Dialogue: 0,0:08:27.22,0:08:31.75,Default,,0000,0000,0000,,and sign that hash,\N'.sha1.asc'. Dialogue: 0,0:08:31.75,0:08:36.14,Default,,0000,0000,0000,,Can 'uscan' cope with this and\Ncheck the signature on the hash Dialogue: 0,0:08:36.14,0:08:38.40,Default,,0000,0000,0000,,and that the hash belongs\Nto that tarball ? Dialogue: 0,0:08:38.40,0:08:41.36,Default,,0000,0000,0000,,[Daniel] I do not believe that 'uscan'\Ncan do that currently. Dialogue: 0,0:08:41.36,0:08:44.97,Default,,0000,0000,0000,,So anybody out there who wants to\Nmake things better for the world Dialogue: 0,0:08:44.97,0:08:48.07,Default,,0000,0000,0000,,should go hack on 'uscan': that is a\Npretty straightforward thing Dialogue: 0,0:08:48.07,0:08:51.14,Default,,0000,0000,0000,,that we should fix because\NI agree that is common pattern. Dialogue: 0,0:08:53.72,0:08:57.96,Default,,0000,0000,0000,,[attendee] I have no answer to this\Nquestion by I have another question: Dialogue: 0,0:08:57.96,0:09:01.90,Default,,0000,0000,0000,,how do you convince upstreams\Nwho do not release tarballs Dialogue: 0,0:09:01.90,0:09:06.48,Default,,0000,0000,0000,,or who do not set tags in Git ? Dialogue: 0,0:09:06.48,0:09:08.46,Default,,0000,0000,0000,,[Daniel] Who do not make tags in Git ? Dialogue: 0,0:09:08.46,0:09:11.70,Default,,0000,0000,0000,,[someone] Yes, if there is no tags\Nyou can not check out a tarball. Dialogue: 0,0:09:11.70,0:09:15.80,Default,,0000,0000,0000,,Is there any good way to\Nconvince upstream to do this ? Dialogue: 0,0:09:17.37,0:09:20.85,Default,,0000,0000,0000,,[Daniel] Git has this nice feature, which\Nis that you can create a tag, Dialogue: 0,0:09:20.85,0:09:23.73,Default,,0000,0000,0000,,which is associated with\Na particular revision, Dialogue: 0,0:09:23.73,0:09:26.98,Default,,0000,0000,0000,,and you would like to have a tag Dialogue: 0,0:09:26.98,0:09:30.98,Default,,0000,0000,0000,,everywhere that a tarball\Nhas been released from. Dialogue: 0,0:09:30.98,0:09:34.98,Default,,0000,0000,0000,,I am tempted to pull up a Git\Nview and show people some tags. Dialogue: 0,0:09:34.98,0:09:38.98,Default,,0000,0000,0000,,The question that you ask is a\Nsocial one tho, not just a technical one, Dialogue: 0,0:09:38.98,0:09:42.29,Default,,0000,0000,0000,,and I actually find that my upstreams\Nare pretty responsive. Dialogue: 0,0:09:42.29,0:09:44.51,Default,,0000,0000,0000,,Usually I frame my request as Dialogue: 0,0:09:44.51,0:09:48.76,Default,,0000,0000,0000,,"hey, it like you made this tarball\Nfrom this particular commit 'id'. Dialogue: 0,0:09:48.76,0:09:52.26,Default,,0000,0000,0000,,If you could tag you releases,\Nit would be really helpful to me, Dialogue: 0,0:09:52.26,0:09:55.43,Default,,0000,0000,0000,,and here is the command\Nthat I would use to tag the release". Dialogue: 0,0:09:55.43,0:09:57.20,Default,,0000,0000,0000,,And I say "git tag…" Dialogue: 0,0:09:57.20,0:09:59.94,Default,,0000,0000,0000,,and of course I can never\Nremember so first I look it up, Dialogue: 0,0:09:59.94,0:10:03.04,Default,,0000,0000,0000,,but it is either 'tag name' 'commit id'\Nor 'commit id' 'tag name'. Dialogue: 0,0:10:03.04,0:10:05.76,Default,,0000,0000,0000,,But I would look it up and\NI would write the email so that Dialogue: 0,0:10:05.76,0:10:07.49,Default,,0000,0000,0000,,all they have to do is they read it, Dialogue: 0,0:10:07.49,0:10:08.60,Default,,0000,0000,0000,,understand my argument, Dialogue: 0,0:10:08.60,0:10:09.83,Default,,0000,0000,0000,,and execute one command. Dialogue: 0,0:10:09.83,0:10:13.30,Default,,0000,0000,0000,,I mean, it doesn't get them in the habit\Nbut it start them towards it Dialogue: 0,0:10:16.24,0:10:19.01,Default,,0000,0000,0000,,And if you say 'tag -s', Dialogue: 0,0:10:19.01,0:10:23.18,Default,,0000,0000,0000,,then your tag will be\Ncryptographically signed, Dialogue: 0,0:10:23.18,0:10:26.05,Default,,0000,0000,0000,,which I think is a really\Ngood thing to do too. Dialogue: 0,0:10:27.18,0:10:29.30,Default,,0000,0000,0000,,So, cryptographic verification\Nof upstream. Dialogue: 0,0:10:29.30,0:10:33.65,Default,,0000,0000,0000,,As I said, I want to keep upstream's code\Nin the revision control system. Dialogue: 0,0:10:33.65,0:10:35.56,Default,,0000,0000,0000,,I also like to keep… Dialogue: 0,0:10:35.56,0:10:38.98,Default,,0000,0000,0000,,In my ideal case upstream is using Git:\NI am using Git for packaging. Dialogue: 0,0:10:38.98,0:10:44.58,Default,,0000,0000,0000,,I actually like to keep upsteam's Git\Nhistory fully in my repository, Dialogue: 0,0:10:44.58,0:10:48.70,Default,,0000,0000,0000,,so that I do not just have the tarballs,\Nbut I actually have all of their commits. Dialogue: 0,0:10:48.70,0:10:52.14,Default,,0000,0000,0000,,And that turns out to be really useful\Nfor two specific cases: Dialogue: 0,0:10:52.14,0:10:55.56,Default,,0000,0000,0000,,In one case, there is a common scenario\Nwhere upstream will fix a bug, Dialogue: 0,0:10:55.56,0:10:57.67,Default,,0000,0000,0000,,but they have not made a release yet. Dialogue: 0,0:10:57.67,0:11:00.42,Default,,0000,0000,0000,,And that bug is really,\Nreally obviously problematic Dialogue: 0,0:11:00.42,0:11:02.20,Default,,0000,0000,0000,,for the folks who are using Debian,\N Dialogue: 0,0:11:02.20,0:11:03.46,Default,,0000,0000,0000,,so I want to fix it. Dialogue: 0,0:11:03.46,0:11:06.41,Default,,0000,0000,0000,,All I can do, because I have\Ntheir full revision history, Dialogue: 0,0:11:06.41,0:11:10.48,Default,,0000,0000,0000,,I can use Git to "cherry pick"\Nthe upstream commit. Dialogue: 0,0:11:10.48,0:11:12.58,Default,,0000,0000,0000,,And then I "cherry pick"\Nthat upstream commit Dialogue: 0,0:11:12.58,0:11:14.77,Default,,0000,0000,0000,,and I can have it applied separately, Dialogue: 0,0:11:14.77,0:11:17.11,Default,,0000,0000,0000,,and release a Debian version\Nthat has the fix, Dialogue: 0,0:11:17.11,0:11:19.75,Default,,0000,0000,0000,,even before upstream has made\Na release with the fix. Dialogue: 0,0:11:19.75,0:11:22.78,Default,,0000,0000,0000,,So one nice thing about\Nhaving upstream revision Dialogue: 0,0:11:22.78,0:11:28.67,Default,,0000,0000,0000,,is that I can pull fixes from upstream\Nbefore they decided to release it. Dialogue: 0,0:11:28.67,0:11:32.67,Default,,0000,0000,0000,,The other advantage is the other\Nway around. Dialogue: 0,0:11:32.67,0:11:35.52,Default,,0000,0000,0000,,Often when I am doing packaging,\NI discover a problem, Dialogue: 0,0:11:35.52,0:11:37.79,Default,,0000,0000,0000,,and maybe I can fix the problem. Dialogue: 0,0:11:37.79,0:11:41.79,Default,,0000,0000,0000,,And in fact maybe I am already shipping\Na Debian package that fixes the problem. Dialogue: 0,0:11:41.79,0:11:45.03,Default,,0000,0000,0000,,If my Debian fixes can be\Ndirectly applied to upstream, Dialogue: 0,0:11:45.03,0:11:50.02,Default,,0000,0000,0000,,then I can use whatever their preferred\Nupstream patch submission guidelines are, Dialogue: 0,0:11:50.02,0:11:53.68,Default,,0000,0000,0000,,whether it is a Github pull request,\Nor a patch to a mailing list, Dialogue: 0,0:11:53.68,0:11:58.38,Default,,0000,0000,0000,,or a "hey can you pull this from my Git\Nrepository over here", e-mail… Dialogue: 0,0:11:58.38,0:12:01.59,Default,,0000,0000,0000,,The fact that I am using the same\NGit history that they are using Dialogue: 0,0:12:01.59,0:12:05.52,Default,,0000,0000,0000,,makes it much easier for me\Nto push my changes back to them. Dialogue: 0,0:12:05.52,0:12:09.31,Default,,0000,0000,0000,,So, it sort of smooths the interaction\Nif you can consolidate Dialogue: 0,0:12:09.31,0:12:13.44,Default,,0000,0000,0000,,and use the same revision control\Nsystem as their. Dialogue: 0,0:12:13.44,0:12:14.66,Default,,0000,0000,0000,,Towards that aim, Dialogue: 0,0:12:14.66,0:12:16.69,Default,,0000,0000,0000,,I use a system now\Ncalled 'patch queue', Dialogue: 0,0:12:16.69,0:12:19.14,Default,,0000,0000,0000,,which is part of 'git-buildpackage'. Dialogue: 0,0:12:19.14,0:12:21.52,Default,,0000,0000,0000,,So 'git buildpackage' is 'gbp', Dialogue: 0,0:12:21.52,0:12:23.32,Default,,0000,0000,0000,,'patch queue' is 'pq', Dialogue: 0,0:12:23.32,0:12:28.78,Default,,0000,0000,0000,,so to deal with 'patch queue'\Nyou say 'gbp pq' Dialogue: 0,0:12:28.78,0:12:30.64,Default,,0000,0000,0000,,and then you have some commands. Dialogue: 0,0:12:30.64,0:12:34.07,Default,,0000,0000,0000,,And what that does, is it takes… Dialogue: 0,0:12:34.07,0:12:36.09,Default,,0000,0000,0000,,How many of you are Debian packagers ? Dialogue: 0,0:12:36.09,0:12:38.19,Default,,0000,0000,0000,,How many of you package\Nsoftware for Debian ? Dialogue: 0,0:12:38.19,0:12:40.10,Default,,0000,0000,0000,,[most attendees raise their hand] Dialogue: 0,0:12:40.10,0:12:42.10,Default,,0000,0000,0000,,A very large percentage, but not everyone. Dialogue: 0,0:12:42.10,0:12:46.56,Default,,0000,0000,0000,,I hope some folks are considering starting\Npackaging if you have not done it yet. Dialogue: 0,0:12:46.56,0:12:48.62,Default,,0000,0000,0000,,Of those of you who package software, Dialogue: 0,0:12:48.62,0:12:51.06,Default,,0000,0000,0000,,how many of you package software\Nwith modifications, Dialogue: 0,0:12:51.06,0:12:53.92,Default,,0000,0000,0000,,how many of you ship a\Nmodified version of upstream sources ? Dialogue: 0,0:12:53.92,0:12:55.60,Default,,0000,0000,0000,,[most attendees raise their hand] Dialogue: 0,0:12:55.60,0:12:58.43,Default,,0000,0000,0000,,Beyond the 'debian' directory,\Njust Debian patches ? Dialogue: 0,0:12:58.43,0:13:00.76,Default,,0000,0000,0000,,So the common way to do that, Dialogue: 0,0:13:00.76,0:13:03.41,Default,,0000,0000,0000,,for the Debian 3.0 quilt\Npackaging skill, Dialogue: 0,0:13:03.41,0:13:07.09,Default,,0000,0000,0000,,is that in your 'debian' directory you\Nhave a 'patches' sub-directory Dialogue: 0,0:13:07.09,0:13:11.04,Default,,0000,0000,0000,,that has a set of individual patches\Nthat apply certain changes, Dialogue: 0,0:13:11.04,0:13:15.97,Default,,0000,0000,0000,,and they are applied in order based on\Nthe file called 'debian/patches/series'. Dialogue: 0,0:13:15.97,0:13:20.66,Default,,0000,0000,0000,,So maintaining that is kind of a drag\Nwhen upstream makes big changes: Dialogue: 0,0:13:20.66,0:13:24.45,Default,,0000,0000,0000,,then all of sudden you have got this set\Nof patches and they do not quite apply… Dialogue: 0,0:13:24.45,0:13:28.42,Default,,0000,0000,0000,,It is a drag even you do not have it\Nin the 'debian/patches/' directory. Dialogue: 0,0:13:28.42,0:13:33.98,Default,,0000,0000,0000,,But what Debian 'patch queue' does is\Nit maps that directory of patches Dialogue: 0,0:13:33.98,0:13:38.31,Default,,0000,0000,0000,,into a little branch on your\NGit revision history. Dialogue: 0,0:13:38.31,0:13:43.16,Default,,0000,0000,0000,,So when you get a new upstream version,\Nyou can say 'patch queue rebase', Dialogue: 0,0:13:43.16,0:13:47.07,Default,,0000,0000,0000,,and it treats it just as Git:\Nit takes the 'patch queue'… Dialogue: 0,0:13:47.07,0:13:51.54,Default,,0000,0000,0000,,You have already imported the new version,\Nand it re-applies your patches, Dialogue: 0,0:13:51.54,0:13:53.78,Default,,0000,0000,0000,,and sometimes that means\Nsome minor adjustments. Dialogue: 0,0:13:53.79,0:13:58.42,Default,,0000,0000,0000,,Git is really good at figuring out what\Nthe right minor adjustments are to make, Dialogue: 0,0:13:58.42,0:14:01.59,Default,,0000,0000,0000,,and so all of the sudden\Nthe patch queue is re-based, Dialogue: 0,0:14:01.59,0:14:05.59,Default,,0000,0000,0000,,you refresh it in your revision\Ncontrol system… Dialogue: 0,0:14:05.59,0:14:08.22,Default,,0000,0000,0000,,and there you go. Dialogue: 0,0:14:08.22,0:14:11.81,Default,,0000,0000,0000,,So I like to use\Ngit-buildpackage patch queue, Dialogue: 0,0:14:11.81,0:14:14.83,Default,,0000,0000,0000,,tagging, as already brought up,\Nthank you for that, Dialogue: 0,0:14:14.83,0:14:17.01,Default,,0000,0000,0000,,I like to to tag\Neverything that I release, Dialogue: 0,0:14:17.01,0:14:18.73,Default,,0000,0000,0000,,I like to push that\Nas soon as I can, Dialogue: 0,0:14:18.73,0:14:21.74,Default,,0000,0000,0000,,so that other people\Nwho are following my work Dialogue: 0,0:14:21.74,0:14:24.78,Default,,0000,0000,0000,,can know where my releases\Ncome from. Dialogue: 0,0:14:24.78,0:14:27.43,Default,,0000,0000,0000,,The reason that I like other people\Nfollowing my work is Dialogue: 0,0:14:27.43,0:14:30.62,Default,,0000,0000,0000,,they can fix my bugs easier. Dialogue: 0,0:14:30.62,0:14:32.64,Default,,0000,0000,0000,,I make mistakes,\Neverybody makes mistakes, Dialogue: 0,0:14:32.64,0:14:36.22,Default,,0000,0000,0000,,and it is really important to me that\Nif someone catches one of my mistakes, Dialogue: 0,0:14:36.22,0:14:39.42,Default,,0000,0000,0000,,I can accept their feedback,\Ntheir criticism, their improvements, Dialogue: 0,0:14:39.42,0:14:41.23,Default,,0000,0000,0000,,as easily as possible. Dialogue: 0,0:14:41.23,0:14:45.61,Default,,0000,0000,0000,,I want a low barrier to entry for people\Nto help me fix my problems: Dialogue: 0,0:14:45.61,0:14:46.83,Default,,0000,0000,0000,,it is selfishness. Dialogue: 0,0:14:46.83,0:14:49.96,Default,,0000,0000,0000,,So I try to patch it and publish these\Nthings for people can find it. Dialogue: 0,0:14:49.96,0:14:54.52,Default,,0000,0000,0000,,I'm going to rattle through some of these pretty\Nfast because were are almost out of time. Dialogue: 0,0:14:54.52,0:14:57.66,Default,,0000,0000,0000,,I like to put my repo in some place\Nwhere other people get to the them, Dialogue: 0,0:14:57.66,0:15:00.35,Default,,0000,0000,0000,,at the moment I like to put them in\N'collab-maint', Dialogue: 0,0:15:00.35,0:15:03.64,Default,,0000,0000,0000,,it has some problems but it is better\Nthan not publishing your stuff, Dialogue: 0,0:15:03.64,0:15:06.50,Default,,0000,0000,0000,,and it is nice because it is sort of\Na public use. Dialogue: 0,0:15:07.78,0:15:10.17,Default,,0000,0000,0000,,I like to standardize how of\Nmy branches are named, Dialogue: 0,0:15:10.17,0:15:13.19,Default,,0000,0000,0000,,so if I am working on something\Nthat has got a stable version, Dialogue: 0,0:15:13.19,0:15:15.70,Default,,0000,0000,0000,,that is for Jessie, I will\Nname the branch 'jessie', Dialogue: 0,0:15:15.70,0:15:21.32,Default,,0000,0000,0000,,because I will probably making changes,\Nlike I said, editing multiple of software Dialogue: 0,0:15:21.32,0:15:26.15,Default,,0000,0000,0000,,I try to push as frequently as I have made\Nsomething that looks sensible. Dialogue: 0,0:15:26.15,0:15:29.74,Default,,0000,0000,0000,,I do not feel obliged to push\Nmy commits to a public repository Dialogue: 0,0:15:29.74,0:15:31.35,Default,,0000,0000,0000,,when I am still experimenting, Dialogue: 0,0:15:31.35,0:15:33.17,Default,,0000,0000,0000,,I actually really like to\Nexperiment, Dialogue: 0,0:15:33.17,0:15:36.85,Default,,0000,0000,0000,,and I also like to keep track of my\Nexperiments while I am doing them. Dialogue: 0,0:15:36.85,0:15:40.07,Default,,0000,0000,0000,,So I try to push when there is\Na sensible set of changes, Dialogue: 0,0:15:40.07,0:15:41.92,Default,,0000,0000,0000,,and I am trying to get myself Dialogue: 0,0:15:41.92,0:15:45.32,Default,,0000,0000,0000,,to a point where I can understand\Nwhat I have done, even if it is wrong. Dialogue: 0,0:15:45.32,0:15:48.10,Default,,0000,0000,0000,,If I can get myself to a conceptual\Npoint where it is done, Dialogue: 0,0:15:48.10,0:15:51.29,Default,,0000,0000,0000,,I will push my changes so other people\Ncan see what I am working on, Dialogue: 0,0:15:51.29,0:15:52.63,Default,,0000,0000,0000,,and then work from there. Dialogue: 0,0:15:52.63,0:15:54.88,Default,,0000,0000,0000,,That is OK to push something\Nthat is wrong, Dialogue: 0,0:15:54.88,0:15:57.91,Default,,0000,0000,0000,,as long as you push something that\Npeople can understand. Dialogue: 0,0:15:57.91,0:16:01.28,Default,,0000,0000,0000,,When you make a 'git commit'\N(if you are working with Git), Dialogue: 0,0:16:01.28,0:16:05.17,Default,,0000,0000,0000,,one of the things that helps me to think\Nfor commit messages… Dialogue: 0,0:16:05.17,0:16:08.64,Default,,0000,0000,0000,,People often think that commit messages\Nshould say "what change you made". Dialogue: 0,0:16:08.65,0:16:12.12,Default,,0000,0000,0000,,I think that the 'git patch' shows what\Nchange what change you have made, Dialogue: 0,0:16:12.12,0:16:16.68,Default,,0000,0000,0000,,and I thin your commit messages should\Nsay "why you made the change". Dialogue: 0,0:16:16.68,0:16:19.02,Default,,0000,0000,0000,,That is what people really want to read. Dialogue: 0,0:16:19.02,0:16:22.98,Default,,0000,0000,0000,,If you need to explain technically\Nwhy the thing that you did Dialogue: 0,0:16:22.98,0:16:25.68,Default,,0000,0000,0000,,maps to the conceptual thing\Nthat you wanted to do, Dialogue: 0,0:16:25.68,0:16:28.12,Default,,0000,0000,0000,,that is fine: do that in\Nyour commit message too. Dialogue: 0,0:16:28.12,0:16:31.07,Default,,0000,0000,0000,,But it is really important to say\Nwhy you made the change. Dialogue: 0,0:16:31.07,0:16:34.29,Default,,0000,0000,0000,,It is not just like\N"initialize variable to 'no'": Dialogue: 0,0:16:34.29,0:16:36.40,Default,,0000,0000,0000,,OK, we can see that from the patch, Dialogue: 0,0:16:36.40,0:16:39.82,Default,,0000,0000,0000,,but what you are really saying is\N"there was a crash if someone did 'x', Dialogue: 0,0:16:39.82,0:16:43.92,Default,,0000,0000,0000,,and we are avoiding that crash by\Nsetting this to 'no'. Dialogue: 0,0:16:43.92,0:16:46.34,Default,,0000,0000,0000,,So I like to send patches via email, Dialogue: 0,0:16:46.34,0:16:47.98,Default,,0000,0000,0000,,so I try to configure Git email, Dialogue: 0,0:16:47.98,0:16:51.56,Default,,0000,0000,0000,,which make it really easy to just\Npush patches back upstream. Dialogue: 0,0:16:51.56,0:16:55.20,Default,,0000,0000,0000,,If I am starting taking over a project\Nthat somebody else has past on, Dialogue: 0,0:16:55.20,0:16:58.34,Default,,0000,0000,0000,,and they did not use Git,\NI will try to restore all of the imports. Dialogue: 0,0:16:58.34,0:17:01.06,Default,,0000,0000,0000,,I would be happy to talk with people\Nabout how to do that, Dialogue: 0,0:17:01.06,0:17:02.80,Default,,0000,0000,0000,,if you have questions come find me. Dialogue: 0,0:17:02.80,0:17:04.52,Default,,0000,0000,0000,,I like to keep my files\Nnice and simple: Dialogue: 0,0:17:04.52,0:17:09.96,Default,,0000,0000,0000,,there is a tool 'wrap-and-sort', Dialogue: 0,0:17:09.96,0:17:13.58,Default,,0000,0000,0000,,that just canonicalizes your files\Nto make them look Dialogue: 0,0:17:13.58,0:17:16.40,Default,,0000,0000,0000,,in a simple and sensible way. Dialogue: 0,0:17:16.40,0:17:20.58,Default,,0000,0000,0000,,And it is nice because it\Nmeans that everything is… Dialogue: 0,0:17:20.58,0:17:23.68,Default,,0000,0000,0000,,It does things like alphabetize\Nyour list of build depends, Dialogue: 0,0:17:23.68,0:17:25.56,Default,,0000,0000,0000,,and brake them out one per line. Dialogue: 0,0:17:25.56,0:17:29.05,Default,,0000,0000,0000,,The nice thing about that,\Nsince you are using revision control, Dialogue: 0,0:17:29.05,0:17:31.28,Default,,0000,0000,0000,,when you make a change\Nto your build depends, Dialogue: 0,0:17:31.28,0:17:32.95,Default,,0000,0000,0000,,the changes become\Nvery easy to see: Dialogue: 0,0:17:32.95,0:17:35.51,Default,,0000,0000,0000,,"oh, they added one new package here,\Nthere is a single '+'". Dialogue: 0,0:17:35.51,0:17:37.71,Default,,0000,0000,0000,,One new dependency, they removed\Na build dependency Dialogue: 0,0:17:37.71,0:17:40.05,Default,,0000,0000,0000,,so you can see that kind of thing. Dialogue: 0,0:17:40.05,0:17:44.85,Default,,0000,0000,0000,,I like to use DEP-5 to format\NDebian copyright to be machine readable, Dialogue: 0,0:17:44.85,0:17:47.70,Default,,0000,0000,0000,,it is nice for people who are\Ndoing scans of the archive Dialogue: 0,0:17:47.70,0:17:49.79,Default,,0000,0000,0000,,and try reason about\Nwhat the patterns are, Dialogue: 0,0:17:49.79,0:17:51.28,Default,,0000,0000,0000,,and licensing of free software. Dialogue: 0,0:17:51.28,0:17:54.90,Default,,0000,0000,0000,,And if I am doing something really crazy,\Nthat is going to make a big change, Dialogue: 0,0:17:54.90,0:17:57.32,Default,,0000,0000,0000,,I like to use a feature branch in\Nrevision control. Dialogue: 0,0:17:57.32,0:18:01.70,Default,,0000,0000,0000,,So we have got one minute left,\NI want to open it up for other questions. Dialogue: 0,0:18:01.70,0:18:05.70,Default,,0000,0000,0000,,it's kind of rambling Dialogue: 0,0:18:10.33,0:18:13.76,Default,,0000,0000,0000,,[attendee] You said you are using\N'wrap-and-sort' which is nice, Dialogue: 0,0:18:13.76,0:18:18.93,Default,,0000,0000,0000,,I had learned that Config::Model editors\N- 'cme' - do the same job, Dialogue: 0,0:18:18.93,0:18:25.54,Default,,0000,0000,0000,,and somehow does a better job:\Nit also enhances standard version Dialogue: 0,0:18:25.54,0:18:31.19,Default,,0000,0000,0000,,if it does not fit, or it makes VCS\Nfields properly has it should be. Dialogue: 0,0:18:31.19,0:18:36.76,Default,,0000,0000,0000,,'cme fix dpkg-control' fixes your\Ncontrol file. Dialogue: 0,0:18:36.76,0:18:40.13,Default,,0000,0000,0000,,[Daniel] 'cme' ? And it is in\Nwhat package ? Dialogue: 0,0:18:40.13,0:18:42.92,Default,,0000,0000,0000,,[attendee] The package 'cme', in\Nunstable is cme Dialogue: 0,0:18:42.92,0:18:45.33,Default,,0000,0000,0000,,In Jessie it's libconfig-model-perl Dialogue: 0,0:18:45.33,0:18:47.76,Default,,0000,0000,0000,,[Daniel] You are developing in unstable,\Nthat is OK. Dialogue: 0,0:18:47.76,0:18:49.78,Default,,0000,0000,0000,,'cme'\NOK, thank you. Dialogue: 0,0:18:49.78,0:18:53.38,Default,,0000,0000,0000,,Other questions or suggestions,\Nor complains ? Dialogue: 0,0:18:56.79,0:19:01.66,Default,,0000,0000,0000,,[attendee] If you change the original\Nsource code, and do some commits, Dialogue: 0,0:19:01.66,0:19:06.81,Default,,0000,0000,0000,,how do you convert that into a series\Nof quilt patches ? Dialogue: 0,0:19:06.82,0:19:09.84,Default,,0000,0000,0000,,[Daniel] I use 'patch queue' for that\Nas well, so what I do is I say Dialogue: 0,0:19:09.84,0:19:12.79,Default,,0000,0000,0000,,"I want to move over to my \N'patch queue' view of the tree", Dialogue: 0,0:19:12.79,0:19:15.03,Default,,0000,0000,0000,,and then I make may changes, I make\Nmy commits, Dialogue: 0,0:19:15.03,0:19:18.06,Default,,0000,0000,0000,,and then I say\N'gbp pq export', Dialogue: 0,0:19:18.06,0:19:19.73,Default,,0000,0000,0000,,so that 'patch queue export', Dialogue: 0,0:19:19.73,0:19:21.56,Default,,0000,0000,0000,,and it takes the 'patch queue'\Nthat I am on Dialogue: 0,0:19:21.56,0:19:24.26,Default,,0000,0000,0000,,and dumps it back into\Nthe Debian patches directory. Dialogue: 0,0:19:24.26,0:19:28.26,Default,,0000,0000,0000,,If you have not use 'gbp pq', I\Nrecommend looking into it. Dialogue: 0,0:19:28.26,0:19:31.91,Default,,0000,0000,0000,,It takes a little while to get used to,\Nand I still screwed it up sometimes, Dialogue: 0,0:19:31.91,0:19:34.43,Default,,0000,0000,0000,,but it makes easy to fix your\Nmistakes too. Dialogue: 0,0:19:34.43,0:19:36.83,Default,,0000,0000,0000,,[organizer] Last question ? Dialogue: 0,0:19:36.83,0:19:38.67,Default,,0000,0000,0000,,[attendee] Do you think it is possible Dialogue: 0,0:19:38.67,0:19:42.47,Default,,0000,0000,0000,,to make this 'patch queue' branch\N"pullable" by upstream ? Dialogue: 0,0:19:45.85,0:19:49.06,Default,,0000,0000,0000,,[Daniel] I do not actually think it is\Npossible to make it directly Dialogue: 0,0:19:49.06,0:19:52.54,Default,,0000,0000,0000,,"pullable" by upstream: I think upstream\Ncan cherry pick patches from it, Dialogue: 0,0:19:52.54,0:19:54.89,Default,,0000,0000,0000,,but I do not see how to\Nmake it "pullable". Dialogue: 0,0:19:54.89,0:19:58.16,Default,,0000,0000,0000,,If someone else does, I would be\Nhappy to learn. Dialogue: 0,0:19:58.69,0:20:02.72,Default,,0000,0000,0000,,[organizer] This was "before last",\Nso last. Dialogue: 0,0:20:02.72,0:20:07.60,Default,,0000,0000,0000,,[attendee] Do you have a recording of\Nyou using the tools that you mentioned, Dialogue: 0,0:20:07.60,0:20:12.15,Default,,0000,0000,0000,,a video recording would be great,\Njust to show your workflow ? Dialogue: 0,0:20:12.15,0:20:15.44,Default,,0000,0000,0000,,[Daniel] I do not really know how\Nto do that: Dialogue: 0,0:20:15.44,0:20:20.32,Default,,0000,0000,0000,,if somebody wants to help me do that\NI would be happy to do it. Dialogue: 0,0:20:20.32,0:20:22.31,Default,,0000,0000,0000,,I am going to give one last plug, Dialogue: 0,0:20:22.31,0:20:25.60,Default,,0000,0000,0000,,I know we are out of time here,\Nsorry. Dialogue: 0,0:20:25.60,0:20:28.80,Default,,0000,0000,0000,,This tool is called 'gitk'. Dialogue: 0,0:20:28.80,0:20:31.10,Default,,0000,0000,0000,,This is an example… Dialogue: 0,0:20:31.10,0:20:32.42,Default,,0000,0000,0000,,- sorry we should leave - Dialogue: 0,0:20:32.42,0:20:35.96,Default,,0000,0000,0000,,but this the way that I visualize\Nmy revision control system. Dialogue: 0,0:20:35.96,0:20:38.20,Default,,0000,0000,0000,,We could do a whole other session\Nabout 'gitk'. Dialogue: 0,0:20:38.20,0:20:41.04,Default,,0000,0000,0000,,If you do not try to visualize your\Nrevision control system, Dialogue: 0,0:20:41.04,0:20:42.08,Default,,0000,0000,0000,,you are missing out: Dialogue: 0,0:20:42.08,0:20:44.38,Default,,0000,0000,0000,,I recommend try to find a way\Nto visualize stuff, Dialogue: 0,0:20:44.38,0:20:45.72,Default,,0000,0000,0000,,find one that works for you. Dialogue: 0,0:20:45.72,0:20:46.72,Default,,0000,0000,0000,,Thanks for coming. Dialogue: 0,0:20:46.72,0:20:48.84,Default,,0000,0000,0000,,[organizer] Thank you.