Bzr4Pkgs

Revision 2 as of 2009-01-21 19:49:43

Clear message

Dev Week -- Bazaar for packaging -- james_w -- Wed, Jan 21

UTC -4 (EST)

(01:01:23 PM) dholbach: next up is Mr james_w!
(01:01:29 PM) dholbach: big round applause for James!
(01:01:36 PM) ***rugby471 feels his life is now complete
(01:01:49 PM) rugby471: thanks daniel!!!
(01:01:50 PM) Ape3000: This was very good session and I really learned lots of things.
(01:01:51 PM) dinxter: thanks daniel
(01:01:52 PM) dholbach: http://daniel.holba.ch/harvest for more Harvest goodness :-)
(01:01:58 PM) ***porthose *applause
(01:02:10 PM) ian_brasil: thx
(01:02:15 PM) porthose: thanks daniel great session
(01:02:18 PM) enaut: thanks
(01:02:26 PM) Flimm: Harvest looks especially interesting
(01:02:34 PM) dholbach: james_w is going to talk about Bazaar and Packaging which is going to make 1) your life easier, 2) you very happy
(01:02:40 PM) james_w: \o/
(01:02:41 PM) dholbach: Rock On everybody!
(01:03:01 PM) james_w: I'm just getting set up still, I had a great idea about 10 minutes ago, so I'm changing the session a bit
(01:03:11 PM) cool2k: thnks it was great!!
(01:03:11 PM) james_w: is anyone still running Hardy?
(01:03:19 PM) Arc: nope
(01:03:53 PM) Flimm: Not me
(01:03:55 PM) furicle: Yes
(01:04:07 PM) Flimm: I borrow somebody else's comp to test stuff on Hardy
(01:04:42 PM) james_w: as Mr. Holbach said, we're going to be looking at bzr for packaging
(01:05:12 PM) james_w: we're actually going to fix that baobab bug again, but this time using bzr
(01:05:30 PM) james_w: for that we need some extra tools, so if you would all
(01:05:40 PM) james_w: sudo aptitude install bzr bzrtools bzr-svn bzr-builddeb
(01:05:44 PM) james_w: that would be fantastic
(01:08:00 PM) james_w: I'm working on a project called "Distributed Development" that aims to make bzr really useful for packaging
(01:08:09 PM) james_w: and at the same time use bzr for packaging more in Ubuntu
(01:08:25 PM) james_w: as part of that I have created the branches you can see at http://package-import.ubuntu.com/
(01:08:51 PM) james_w: these will be moved to launchpad soon, the launchpad developers are working hard to accommodate them.
(01:09:00 PM) james_w: until that time they live there
(01:09:12 PM) james_w: so you can click through there and find the gnome-utils branches
(01:09:22 PM) james_w: <Arc> QUESTION: is this currently supported for PPAs on launchpad?
(01:09:32 PM) james_w: Arc: you mean bzr for PPAs?
(01:09:43 PM) Arc: yes
(01:09:49 PM) james_w: sort of
(01:09:57 PM) james_w: you can use bzr and then upload a source package
(01:10:16 PM) james_w: there are plans in the works to allow you to just point to a branch and ask for it to be built in your PPA
(01:10:53 PM) james_w: <Flimm> QUESTION: packages-import for both main and universe?
(01:10:55 PM) james_w: yup
(01:11:31 PM) james_w: to show off some of the things that it will be possible to do I have created a project on staging.launchpad.net
(01:11:34 PM) james_w: you can see it at https://code.staging.launchpad.net/gnome-utils-ubuntu
(01:12:09 PM) james_w: and once you have the above packages installed you can grab the source by typing
(01:14:34 PM) james_w: bzr branch lp://staging/gnome-utils-ubuntu
(01:14:53 PM) james_w: (the staging is just there as we are experimenting)
(01:15:25 PM) james_w: also it will be written "lp:ubuntu/jaunty/gnome-utils-ubuntu" once launchpad hosts the branches
(01:15:33 PM) james_w: <Flimm> QUESTION: where can I upload any commits I make to bzr branches from packages-import?
(01:15:45 PM) james_w: I would just recommend pushing them to your +junk area for now
(01:15:56 PM) james_w: once launchpad hosts them you will be able to push to
(01:16:10 PM) james_w: lp:~your-user/ubuntu/jaunty/gnome-utils
(01:17:03 PM) james_w: once you have branched the code then we can work on the fix
(01:17:51 PM) james_w: Mr. Holbach helpfully told us that the fix is between revisions 8377 and 8378 of http://svn.gnome.org/svn/gnome-utils/trunk
(01:18:41 PM) james_w: now, we installed bzr-svn, meaning we can access this URL using bzr
(01:19:35 PM) james_w: (I've just noticed I also have a bzr plugin named "sandwich", I wonder what that does)
(01:20:56 PM) james_w: bzr diff http://svn.gnome.org/svn/gnome-utils/trunk -c  8378
(01:21:12 PM) james_w: that will show us the changes in revision 8378 in SVN
(01:21:52 PM) james_w: except that we are not accessing a native bzr branch, so we have to say
(01:21:53 PM) james_w:  bzr diff http://svn.gnome.org/svn/gnome-utils/trunk -c  svn:8378
(01:22:06 PM) james_w: because 8378 is an svn revision number
(01:22:28 PM) james_w: (when you run these commands it will spin a progress bar for a little while as it does the translation)
(01:25:42 PM) james_w: as well as making packaging branches available we are working on making bzr versions of the SVN projects available
(01:26:01 PM) james_w: so one day you won't have to wait for this translation to be done, you can just access the bzr version
(01:33:23 PM) james_w: right
(01:33:31 PM) james_w: so it's the same diff we saw an hour ago :-)
(01:33:37 PM) james_w: interesting eh? :-)
(01:34:03 PM) james_w: but we don't just want to see the diff, we want to pull in the changes
(01:34:06 PM) james_w: we want to merge them
(01:34:29 PM) james_w: bzrtools provides a nice "patch" command we can use for this
(01:34:40 PM) james_w: so you can "bzr patch file" and it will apply it
(01:35:29 PM) james_w: or you can pipe in a patch so "bzr diff http://svn.gnome.org/svn/gnome-utils/trunk -c  svn:8378 | bzr patch" should work
(01:35:46 PM) james_w: if you were in the last session and have the patch file laying around then "bzr patch thatfile" will work
(01:36:02 PM) james_w: interestingly, it should also work over any transport
(01:36:24 PM) james_w: so "bzr patch http://some-server/some-patch-someone-has-pointed-you-to" should work
(01:37:54 PM) james_w: e.g. "bzr patch http://svn.gnome.org/viewvc/gnome-utils/trunk/baobab/src/baobab.c?view=patch&r1=8378&r2=8377&pathrev=8378"
(01:38:02 PM) james_w: to apply the part of the patch that makes the code change
(01:38:40 PM) james_w: once you've applied the patch however you chose to do it
(01:39:11 PM) james_w: you can write a changelog entry to go along with it
(01:39:14 PM) james_w: run "dch -i -D UNRELEASED"
(01:39:19 PM) james_w: and type in your message
(01:39:41 PM) james_w: once done, save and quit
(01:39:47 PM) james_w: and run "debcommit"
(01:40:07 PM) james_w: (I assume you all have devscripts installed from the last session for those last two commands)
(01:41:18 PM) james_w: make sure include the bug number as "LP: #301952" in the changelog
(01:42:07 PM) james_w: once you are done you can run "bzr log -r -1" and "bzr diff -c -1" to see your message and the changes
(01:42:15 PM) james_w: (or install bzr-gtk and run "bzr viz")
(01:42:37 PM) james_w: now you want to build the package to test it
(01:42:48 PM) james_w: simply run "bzr builddeb -S"
(01:43:08 PM) james_w: that will download the tarball that you need, and build you a source package
(01:43:22 PM) james_w: you can then build that in pbuilder or similar, or sign it and push it to your PPA
(01:43:36 PM) james_w: <Quintasan> bzr: ERROR: A Debian packaging error occurred: uscan failed to retrieve the upstream tarball
(01:43:53 PM) james_w: ah, you don't have deb-src entries for jaunty in your sources.list
(01:45:07 PM) james_w: you can add them or run "(cd .. && wget http://archive.ubuntu.com/ubuntu/pool/main/g/gnome-utils/gnome-utils_2.25.2.orig.tar.gz)"
(01:45:24 PM) james_w: once you are happy with the fix you want to get this uploaded to Ubuntu
(01:45:32 PM) james_w: so it needs to be merged in to the main packaging branch
(01:45:36 PM) james_w: for that we use launchpad
(01:45:45 PM) james_w: so first you need to push your changes back to launchpad
(01:46:26 PM) james_w: "bzr push lp://staging/~YOUR_LP_USERNAME/gnome-utils-ubuntu/fix-301952"
(01:46:42 PM) james_w: where YOUR_LP_USERNAME is your launchpad username, and the last part of the URL is anything you want
(01:47:11 PM) james_w: this will fail if you haven't registered you SSH key with launchpad yet
(01:47:55 PM) james_w: oh, and also if you haven't yet run "bzr launchpad-login"
(01:48:05 PM) james_w: "bzr launchpad-login YOUR_LP_USERNAME"
(01:49:14 PM) james_w: https://help.launchpad.net/YourAccount/CreatingAnSSHKeyPair for information on registering your launchpad SSH key
(01:49:23 PM) james_w: iulian> QUESTION: Can Ubuntu devs commit to the main branch?  If yes, where will it be located?
(01:49:31 PM) james_w: iulian: yes, if they can upload the package
(01:49:39 PM) james_w: once the branches are hosted on launchpad
(01:50:19 PM) james_w: once you have pushed you can go to https://code.staging.launchpad.net/gnome-utils-ubuntu and you should be able to see your branch
(01:54:28 PM) james_w: when you can see your branch the next step is to propose it for merging in to the main branch
(01:54:50 PM) james_w: if you click on the link to your branch you can click "Propose for merging in to another branch"
(01:56:39 PM) james_w: in the next form you can just add your explanation of what you have done, the "cover letter" of the change
(01:57:10 PM) james_w: you will end up with something like https://code.staging.launchpad.net/~james-w/gnome-utils-ubuntu/fix-301952/+merge/2999
(01:57:21 PM) james_w: which a developer can then review and merge
(01:58:33 PM) james_w: and if you also look at the bug report on staging you will see that under the description it now links to a branch that has the fix https://bugs.staging.launchpad.net/ubuntu/+source/gnome-utils/+bug/301952
(01:58:51 PM) james_w: this went from the changelog -> bzr because of debcommit
(01:59:00 PM) james_w: then launchpad noticed that and added the link for us
(01:59:53 PM) james_w: we're out of time unfortunately
(01:59:59 PM) james_w: sorry for rushing the last bit
(02:00:12 PM) james_w: that's what happens when you decide to change your session at the last minute :-)
(02:00:42 PM) UbuntuIRC: saludos
(02:01:05 PM) dinxter: thanks james
(02:01:12 PM) pochu_ is now known as pochu
(02:01:18 PM) porthose: james_w: thanks for the great session :-D
(02:01:27 PM) Flimm: Thank you james_w
(02:01:28 PM) james_w: I'm happy to help people with things outside the session, but we have to make way for the next session now
(02:01:35 PM) iulian: Thanks James, that was great.
(02:01:35 PM) james_w: thanks for playing along
(02:02:15 PM) Quintasan: thanks, some knowledge wont hurt ;)
(02:02:18 PM) james_w: WalterMundt> QUESTION: I notice that committing to bzr this way doesn't create a patchfile under debian/ -- does that get handled at some other stage?
(02:02:22 PM) james_w: good question
(02:02:32 PM) james_w: you can still create that patch file manually if you like
(02:02:50 PM) james_w: it's better not to do that if you are using bzr, but while we still use patch systems you can do that step
(02:03:00 PM) james_w: bzr doesn't stop you, it could automate it better though
(02:03:15 PM) james_w: but now we have JontheEchidna with "Kubuntu Bug Squishing"