~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/HACKING.txt

Reconcile NEWS

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
Bazaar Developer Guide
3
3
======================
4
4
 
 
5
This document describes the Bazaar internals and the development process.  
 
6
It's meant for people interested in developing Bazaar, and some parts will
 
7
also be useful to people developing Bazaar plugins.
 
8
 
 
9
If you have any questions or something seems to be incorrect, unclear or
 
10
missing, please talk to us in ``irc://irc.freenode.net/#bzr``, or write to
 
11
the Bazaar mailing list.  To propose a correction or addition to this
 
12
document, send a merge request or new text to the mailing list.
 
13
 
 
14
The current version of this document is available in the file 
 
15
``doc/developers/HACKING.txt`` in the source tree, or at
 
16
http://doc.bazaar-vcs.org/bzr.dev/en/developer-guide/HACKING.html
 
17
 
5
18
.. contents::
6
19
 
7
 
(The current version of this document is available in the file 
8
 
``doc/developers/HACKING.txt`` in the source tree, or at
9
 
http://doc.bazaar-vcs.org/bzr.dev/en/developer-guide/HACKING.html)
10
 
 
11
20
 
12
21
Getting Started
13
22
###############
1996
2005
#. Update http://bazaar-vcs.org/WindowsDownloads to have the correct version number as well as the correct sha1sum displayed.
1997
2006
 
1998
2007
 
 
2008
The Bazaar PPA archive
 
2009
----------------------
 
2010
 
 
2011
We build Ubuntu ``.deb`` packages for Bazaar as an important part of the release
 
2012
process.  These packages are hosted in a `Personal Package Archive (PPA)`__ on
 
2013
Launchpad, at <https://launchpad.net/~bzr/+archive>.
 
2014
 
 
2015
  __ https://help.launchpad.net/PPAQuickStart
 
2016
 
 
2017
We build packages for every supported Ubuntu release
 
2018
<https://wiki.ubuntu.com/Releases>.  Packages need no longer be updated
 
2019
when the release passes end-of-life because all users should have then
 
2020
update.
 
2021
 
 
2022
The ``debian/`` directory containing the packaging information is kept in
 
2023
branches on Launchpad, named like 
 
2024
<https://code.launchpad.net/~bzr/bzrtools/packaging-dapper>
 
2025
 
 
2026
Updating the PPA for a new release
 
2027
----------------------------------
 
2028
 
 
2029
Preconditions for building these packages:
 
2030
  
 
2031
 * You must have a Launchpad account and be a member of the `~bzr`__ team
 
2032
   
 
2033
 __ https://edge.launchpad.net/~bzr/+members>
 
2034
 
 
2035
 * You must have a GPG key registered to your Launchpad account.
 
2036
 
 
2037
 * Configure ``dput`` to upload to our PPA with this section in your
 
2038
   ``~/.dput.cf``::
 
2039
 
 
2040
        [bzr-ppa]
 
2041
        fqdn = ppa.launchpad.net
 
2042
        method = ftp
 
2043
        incoming = ~bzr/ubuntu
 
2044
        login = anonymous
 
2045
        allow_unsigned_uploads = 0
 
2046
 
 
2047
 * You need a Ubuntu (or probably Debian) machine, and ::
 
2048
 
 
2049
     sudo apt-get install build-essential devscripts dput
 
2050
 
 
2051
Here is the process; there are some steps which should be automated in
 
2052
future:
 
2053
 
 
2054
#. You will need a working directory for each supported release, such as
 
2055
   ``~/bzr/Packaging/dapper``
 
2056
 
 
2057
#. Download the official tarball of the release to e.g. ``~/bzr/Releases``
 
2058
 
 
2059
#. Copy the original tarball into your per-disto directory, then untar it 
 
2060
   and if necessary rename it::
 
2061
 
 
2062
     cp -l ~/bzr/Releases/bzrtools-1.3.0.tar.gz bzrtools_1.3.0.orig.tar.gz
 
2063
     tar xfvz bzrtools_1.3.0.orig.tar.gz
 
2064
     mv bzrtools bzrtools-1.3.0
 
2065
 
 
2066
#. Change into that directory and check out the packaging branch::
 
2067
 
 
2068
     cd bzrtools
 
2069
     bzr checkout \
 
2070
       bzr+ssh://bazaar.launchpad.net/~bzr/bzrtools/packaging-dapper \
 
2071
       debian
 
2072
 
 
2073
#. For Bazaar plugins, change the ``debian/control`` file to express a
 
2074
   dependency on the correct version of ``bzr``.
 
2075
 
 
2076
   For bzrtools this is typically::
 
2077
 
 
2078
      Build-Depends-Indep: bzr (>= 1.3~), rsync
 
2079
      Depends: ${python:Depends}, bzr (>= 1.3~), bzr (<< 1.4~), patch
 
2080
 
 
2081
#. Make a new ``debian/changelog`` entry for the new release,
 
2082
   either by using ``dch`` or just editing the file::
 
2083
 
 
2084
     dch -v '1.3.0-1~bazaar1~dapper1' -D dapper
 
2085
 
 
2086
   dch will default to the distro you're working in and this isn't checked
 
2087
   against the version number (which is just our conversion).  So make
 
2088
   sure to specify it.
 
2089
 
 
2090
   Make sure you have the correct email address for yourself, version
 
2091
   number, and distribution.  It should look something like this:
 
2092
 
 
2093
     >  bzrtools (1.3.0-1~bazaar1~dapper1) dapper; urgency=low
 
2094
     >
 
2095
     >   * New upstream release.
 
2096
     >
 
2097
     >  -- Martin Pool <mbp@canonical.com>  Mon, 31 Mar 2008 12:36:27 +1100
 
2098
 
 
2099
   If you need to upload the package again to fix a problem, normally you
 
2100
   should increment the last number in the version number, following the
 
2101
   distro name.  Make sure not to omit the initial ``-1``, and make sure
 
2102
   that the distro name in the version is consistent with the target name
 
2103
   outside the parenthesis.
 
2104
 
 
2105
#. Commit these changes into the packaging branch::
 
2106
 
 
2107
     bzr ci -m '1.3.0-1~bazaar1~dapper1: New upstream release.' debian
 
2108
 
 
2109
#. Build a source package::
 
2110
 
 
2111
     debuild -S -sa -i
 
2112
 
 
2113
   This will create a ``.changes`` file in the per-distro directory,
 
2114
   and should invoke gpg to sign it with your key.
 
2115
   Check that file is reasonable: it should be uploading to the intended
 
2116
   distribution, have a .orig file included, and the right version number.
 
2117
 
 
2118
#. Upload into the PPA::
 
2119
 
 
2120
     dput bzr-ppa ../bzrtools__1.3.0-1\~bazaar1\~dapper1_source.changes
 
2121
 
 
2122
   Don't forget the ``bzr-ppa`` component or dput will try to upload into
 
2123
   the main archive by default.  You can disable this by adding this
 
2124
   section to your ``.dput.cf``::
 
2125
 
 
2126
     [ubuntu]
 
2127
     fqdn = SPECIFY.A.PPA.NAME
 
2128
 
 
2129
#. You should soon get an "upload accepted" mail from Launchpad, which
 
2130
   means that your package is waiting to be built.  You can then track its
 
2131
   progress in <https://launchpad.net/~bzr/+archive> and
 
2132
   <https://launchpad.net/~bzr/+archive/+builds>.
 
2133
 
 
2134
 
1999
2135
..
2000
2136
   vim: ft=rst tw=74 ai