[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Thank you very much. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Thanks everybody for coming,… Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,If you are packaging software and you want\Nme to work on with you, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,this is how you can do that. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,It is a very self-??? talk: Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I just want to explain some of the things\Nthat I like, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,some practice that I prefer about Debian\Npackaging, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and I don't pretend this is any sort of\Nofficial, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,permanent or final thing. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I just wanted to share some ideas that I\Nhave about the way that I work with Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,packages, in the hope that maybe, hmm,\Nfor two hopes: Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,One is that I hope that I can show you\Nsomething that you have not heard of, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,or maybe you were doing differently, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,or maybe you think it is the right think\Nto do and it is just nice to see somebody Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,somebody else doing it. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,My second hope is that you can tell me\Nwhat I am doing wrong, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and you can help me learn and improve\Non my own packaging techniques. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,If you see something that I am proposing\Nup here, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and you think there is a problem with it,\NI would like to hear about it too. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I just want to see more of the culture\Nwithin Debian, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,of people who are doing packaging,\Nexplaining what they are doing, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and so I thought I would just step up and\Nexplain: Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"Here is some of the practice that I do", Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,In the hope that other people will do the\Nsame and explain what they are doing, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and maybe they can learn from me and\NI can learn from them. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Without much further ????, I am just going\Nto dive into it. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,If you have questions, I am perfectly\Nhappy to be interrupted, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,we have some folks with walking mics\Nin the crowd: Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,you can just raise your hand. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I you have got a question or an\Ninterruption or whatever, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,that is fine. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I ??? I got the whole 15 minutes,\NI think there are 20 minutes, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I ??? the whole time, so there will be\Nalso time for questions at the end Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,if you prefer. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,But I do not mind being interrupted. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,So, this is all on this web page here, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,you could probably skip this talk and go\Nread the web page, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,but then you would not have the nice\N??? actions, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and it is easier to tell me that I am\Nwrong in person, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,so I would like to have that happen. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I put this up on the Debian wiki, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,because I want anyone to be able to find\Nit. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,If you thing you have got some good ideas,\Nyou should put it on the Debian Wiki too: Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,other people can take advantage of the\Nideas that you have got. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,First baseline is: I really like revision\Ncontrol. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,And I know that it makes me a certain\Nflavor on nerd, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,but when we are working with things that\Nare as complicated as software packages, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,hmmm, I think a lot of people don't get\Nthat in Debian we are not just working on Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,one software package: Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,you are actually probably, if you are doing\Na responsibly work, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,on at least two software packages, and\Nmaybe 5. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,So you have got the version that is\Nunstable and you have got Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,the version that you try to maintain for\Nstable as well. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,And we are committing to doing maintenance\Nwork. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,A lot of our work in the project is ???\Nin nature: Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,we want to clean up the mess and we want\Nus to stay out of the way and Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,to make sure things work, functionally,\N Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,for people who are relying on the\Noperating system to not get in their way. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,So revision control I think is really\Nhelpful because it means you can Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,keep track of what changes you have done\Non different branches of the project Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,while you are maintaining both of them. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Basically, ??? require working with\Nthe revision system I am comfortable with, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I prefer Git, I am not going to have a\Nreligious word about it. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,If upstream uses Git, I am even happier,\Nand I try to make my packaging depend on Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,upstream's revision control. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I like to use 'git-buildpackage', and I\Nlike to use it with debhelper. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,If you have not tried out\N'git-buildpackage', Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,we are going to have a\N'git-buildpackage' skill share session Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,later on today actually, and I welcome\Nyou to come and share your tricks with it, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,or learn some tricks from other people. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,It is a particular way that you can keep\Nyour Debian packaging in a Git repository, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and it helps you to keep track of all of\Nthe changes that ave happened within Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,your packaging and within upstream to\Nmake sure you are not accidentally Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,making other changes. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,So it is very easy to go back and review\Nwhat you have done. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I find that really useful. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I definitely also like to keep upstream's\Nsource code in the same revision control Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,system. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I like to keep the tarballs in the\Nrevision control system because it means Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,that if someone is interested, they can\Nuses a tool called 'debcheckout'. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,You can use 'debcheckout' with a name of\Na package: Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,you say just "I am really interested in\Npackage 'foo', Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,let me see the source code for that": Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,debcheckout foo Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,You get the source code, and you get the\Nsource code from a revision control Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,system that you can now track and you\Ncan just propose changes on. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,You can also extract the tarball from that\Nrevision control system. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,'debcheckout' actually works even if you\Ndo not have upstream stuff in there, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,but I like to keep it all in one revision\Ncontrol system, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,it is just easier to find everything when\Nyou want. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Some of these things that I prefer have\Nto do with what the upstream software Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,developer has done, so I am less inclined\Nto try the package an upstream software Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,project if they just throw tarballs here\Nover the wall to an FTP side Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,every now and then. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,It makes it more difficult for me to know\Nwhat they are doing, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and why they are doing it. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,So i like it, I have already said, when\Nupstream uses Git, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I also like when upstream signs their\Nreleases, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and say "hey, this is specific release", Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Because that is a signal that I can use,\Nor somebody else that understands the Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,project: as said "we think that this\Nsomething that other people can use", Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,or "this is a particular version we would\Nlike other people to test". Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,There are a lot of other situations where\Nmaybe it is not so important. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,And having that be cryptographically\Nsigned is really useful. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I care about cryptographic signature on\Nsoftware because I want to know that Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,what I am running is related to the code\Nthat somebody else out should be run. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,And if you don't verify your software\Ncryptographically, anyone could Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,intercept the network connection\Nbetween you and that software, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and modify the software before it gets\Nto you. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,And the cryptographic signature just says: Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"look, this is a version that I am OK\Nwith. I am putting it out there and Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,it comes from me". Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,And so I can have a trace back to that\Npoint. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,??? just talk about briefly about how you\Ndo cryptographic verification of upstream. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,You might know upstream: you might know\Nthem personally, you know their key Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,already, that is fine. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,That is not the usual case: we work on\Nthe Internet. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,In the situation where your upstream is\Nsigning their tarballs Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and you have not met them, you do not\Nhave to sign their key, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,you do not have to say "I announce this\Nis their key". Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,This is probably the same one that is\Nsigning every release, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,so you should keep track of that. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Debian has a nice way to keep track of\Nthat: Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,you can tell Debian how to find the new\Nversion of the upstream tarball. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,This is in the Debian 'watch' file. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,If you type 'man uscan', you can learn\Nmore about Debian 'watch', Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and Debian 'watch' has now a feature that\Nlets you say Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"that is not only this way you find the\Ntarball, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,but upstream publishes signatures\Nand the signatures look like this". Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,You know, they got a '.sig' at the end. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,So there is a particular arcane way to\Nspecify that, but if you specify that, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,then 'uscan' can find not only the\Nupstream tarball but can find the Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,upstream signature and, if you drop\Nupstream's signing key - Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,which of course I did not put on the wiki\Npage, someone should add it that and Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,fix it - you can put the upstream signing\Nkey in 'debian/upstream/signing-key.asc'. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,And then if you do that, when you say\N'uscan', you can tell… Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Maybe some people here do notk\Nnow how to use 'uscan'. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,'uscan' is a very simple tool,\Nyou run it from a software package that Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,has a 'debian' directory, or even one\Nlevel up if you keep all of your software Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,packages in one folder. You can go one\Nlevel up and say 'uscan', and it will look Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,in all of the folder that are children\Nof it, and look for new version by Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,trying to find for new upstreams versions\Nin 'debian/watch'. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,And if you have configured 'debian/watch'\Nproperly, it can find the new upstream Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,signatures, and if you have got the\N'upstream/signing-key.asc', then Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,it will actually verify the signature for\Nyou as part of fetching the new Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,upstream tarball. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,So you can get all of those things just\Nby setting ???? that way. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,There is a hand up down there, could we\Nget the mic down to the hand ?\N Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Or to the person who has that hand, it is\Nnot just a hand. [public laugh] Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,[someone] Publish a tarball and a hash, '.sha1',\Nand sign that hash, '.sha1.asc'. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Can 'uscan' cope with this and check the\Nsignature on the hash and that the hash Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,belongs to that tarball ? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,[Daniel] I do not believe that 'uscan' can\Ndo that currently. So anybody out there Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,who wants to make things better for the\Nworld should go hack on 'uscan': Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,that is a pretty straightforward thing\Nthat we should fix because I agree Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,that is common pattern. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,[someone] I have no answer to this\Nquestion by I have another question: Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,how do you convince upstreams who do\Nnot release tarballs or who do Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,not set tags in Git ? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,[Daniel] Who do not make tags in Git ? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,[someone] Yes, if there is no tags you\Ncan not check out a tarball. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Is there any good way to convince\Nupstream to do this ? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,[Daniel] Git has this nice feature, which\Nis that you can create a tag, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,which is associate with a particular\Nrevision, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and you would like to have a tag\Neverywhere that a tarball has been Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,released from. I am tempted to pull up\Na Git view and show people some tags. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,The question that you ask is a social\None, not just a technical one, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and I actually find that my upstreams\Nare pretty responsive. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Usually I frame my request as "hey, it\Nlooks like you made this tarball from Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,this particular commit 'id'. If you could\Ntag you releases, it would be really Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,helpful to me, and here is the command\Nthat I would use to tag the release". Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,And I say "git tag…" and of course I\Ncan never remember so first I look it up, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,but it is either 'tag name' 'commit id' or\N'commit id' 'tag name'. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,But I would look it up and I would write\Nthe e-mail so that all they have to do is Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,they read it, understand my argument,\Nand execute one command. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,And then it starts them ?????? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,And if you say 'tag -s' then your tag will\Nbe cryptographically signed, which Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I think is a really good thing to do too. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,So, cryptographic verification of\Nupstream. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,As I said, I want to keep upstream's code\Nin the revision control system. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I also like to keep… Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,In my ideal case upstream is using Git:\NI am using Git for packaging. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I actually like to keep upsteam's Git\Nhistory fully in my repository, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,so that I do not just have the tarballs,\Nbut I actually have all of their commits. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,And that turns out to be really useful\Nfor two specific cases: Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,In one case, there is a common scenario\Nwhere upstream will fix a bug, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,but they have not made a release yet. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,And that bug is really, really obviously\Nproblematic for the folks who are Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,using Debian, so want to fix it. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,All I can do, because I have their full\Nrevision history, I can use Git to "cherry Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,pick" the upstream commit. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,And then I "cherry pick" that upstream\Ncommit and I can have it applied Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,separately and release an Debian version\Nthat has the fix, even before upstream Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,has made a release with the fix. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,So one nice thing about having upstream\Nrevision is that I can pull fixes from Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,upstream before they decided\Nto release it. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,The other advantage is the other\Nway around. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Often when I am doing packaging,\NI discover a problem, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and maybe I can fix the problem. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,And if that maybe I am already shipping\Na Debian package that fixes the problem. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,If my Debian fixes can be directly applied\Nto upstream, then I can use whatever Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,their preferred upstream patch\Nsubmission guidelines are, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,whether it is a Github pull request, or\Na patch to a mailing list, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,or a "hey can you pull this from my Git\Nrepository over here", e-mail… Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,The fact that I am using the same Git\Nhistory that they are using makes it Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,much easier for me to push my changes\Nback to them. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,So, it sort of smooth the interaction if\Nyou can consolidate and use the same Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,revision control system as their. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Towards that aim, I use a system now\Ncalled 'patch q', Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,which is part of 'git buildpackage'. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,So 'git buildpackage' is 'gbp', 'patch q'\Nis 'pq', Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,so to deal with 'patch q' you say\N'gbp pq' Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and then you have some commands. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,And what that does, is it takes… Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,How many of you are Debian packagers ? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,How many of you package\Nsoftware for Debian ? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,A very large percentage, but not everyone. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I hope some folks are considering starting\Npackaging if you have not done it yet. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Of those of you who package software,\Nhow many of you package software Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,with modifications, how many of you ship\Na modified version of upstream sources ? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Beyond the 'debian' directory, just Debian\Npatches ? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,So the common way to do that, for the\NDebian 3.0 ??? packaging skill, is that in Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,your 'debian' directory you have a\N'patches' sub-directory that has a set of Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,individual patches that apply certain\Nchanges, and they are applied in order Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,based on the file called\N'debian/patches/series'. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,So maintaining that is kind of a drag\Nwhen upstream makes big changes: Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,then all of sudden you have got this set\Nof patches and they do not quite apply… Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I is a drag even you do not have it in\Nthe 'debian/patches/' directory. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,But what Debian 'patch q' does is it maps\Nthat directory of patches into a little Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,branch on your Git revision history. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,So when you get a new upstream version,\Nyou can say 'patch q rebase', Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and it treats it just as Git: it takes the\N'patch q'… Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,You have already imported the new version,\Nand it re-applies your patches, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and sometimes that means some minor\Nadjustments. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Git is really good at figuring out what\Nthe right minor adjustments are to make, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and so all of the sudden the 'patch q' is\Nre-based, you refresh it in your revision Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,control system, and there you go. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,So I like to use 'git-buildpackage' 'patch q',\Ntagging, as already brought up, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,thank you for that, I like to to tag\Neverything that I release, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I like to push that as soon as I can,\Nso that other people who are following Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,my work can now where my releases\Ncome from. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,The reason that I like other people\Nfollowing my work is Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,they can fix my bugs easier. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I make mistakes, everybody makes mistakes,\Nand it is really important to me that Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,if someone catches one of my mistakes,\NI can accept their feedback, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,their criticism, their improvements,\Nas easily as possible. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I want a low barrier to entry for people\Nto help me fix my problems, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,it is selfishness. So I try to patch it\Nand publish this things for people Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,can find it. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I am ??? on these pretty fast because\Nwere are almost at the time.\N Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I like to put in some place where other\Npeople get to the them, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,at the moment I like to put them in\N'collab-maint', Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,it has some problems but it is better\Nthan not publishing your stuff, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and it is nice because it is sort of\Na public use. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I like to standardize how of my branches\Nare named, so if I am working on Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,something that has got a stable version,\Nthat is for Jessie, I will name the branch Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,'jessie', because I ??? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,???? multiple branches ??? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I try to push as frequently as I have made\Nsomething that looks sensible. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I do not feel obliged to push my commits\Nto a public repository when I am still Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,experimenting, I actually really like to\Nexperiment, and I also like to keep track Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,of my experiments while I am doing them. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,So I try to push when there is a sensible\Nset of changes, and I am trying to get Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,myself to a point where I can understand\Nwhat I have done, even if it wrong. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,If I can get myself to a conceptual point\Nwhere it is done, I will push my changes Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,so other people can see what I am\Nworking on, and then work from there. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,That is OK to push something that is\Nwrong, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,as long as you push something that\Npeople can understand.