/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to doc/developers/HACKING.txt

  • Committer: Andrew Bennetts
  • Date: 2008-01-14 22:45:15 UTC
  • mfrom: (3179 +trunk)
  • mto: This revision was merged to the branch mainline in revision 3180.
  • Revision ID: andrew.bennetts@canonical.com-20080114224515-izp51fxci3hhopap
Merge from bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1781
1781
TODO: Get material from http://bazaar-vcs.org/FeatureFreeze.
1782
1782
 
1783
1783
 
1784
 
Release Candidates
1785
 
------------------
1786
 
 
1787
 
TODO: Get material from http://bazaar-vcs.org/ReleaseChecklist and clean
1788
 
it up to make it clearer what the RC vs final vs both tasks are.
1789
 
 
1790
 
 
1791
 
The Final Release
1792
 
-----------------
1793
 
 
1794
 
TODO: Get material from http://bazaar-vcs.org/ReleaseChecklist and clean
1795
 
it up to make it clearer what the RC vs final vs both tasks are.
 
1784
 
 
1785
Making a Release or Release Candidate
 
1786
-------------------------------------
 
1787
 
 
1788
.. Was previously at http://bazaar-vcs.org/ReleaseChecklist
 
1789
 
 
1790
.. TODO: Still needs more clarity on what's in a RC versus a final
 
1791
.. release?
 
1792
 
 
1793
This is the procedure for making a new bzr release:
 
1794
 
 
1795
#. If the release is the first candidate, make a new branch in PQM. (Contact RobertCollins for this step).
 
1796
 
 
1797
   Register the branch at https://launchpad.net/products/bzr/+addbranch
 
1798
 
 
1799
#. Run the automatic test suite and any non-automated tests.  (For example, try a download over http; these should eventually be scripted though not automatically run.). Try to have all optional dependencies installed so that there are no tests skipped. Also make sure that you have the c extensions compiled (``make`` or ``python setup.py build_ext -i``).
 
1800
 
 
1801
#. In the release branch, update  ``version_info`` in ``./bzrlib/__init__.py``
 
1802
 
 
1803
#. Add the date and release number to ``./NEWS``.
 
1804
 
 
1805
#. Update the release number in the README. (It's not there as of 0.15, but please check).
 
1806
 
 
1807
#. Commit these changes to the release branch, using a command like::
 
1808
    
 
1809
     bzr commit -m "(jam) Release 0.12rc1." 
 
1810
   
 
1811
   The diff before you commit will be something like::
 
1812
 
 
1813
       === modified file 'NEWS'
 
1814
       --- NEWS        2006-10-23 13:11:17 +0000
 
1815
       +++ NEWS        2006-10-23 22:50:50 +0000
 
1816
       @@ -1,4 +1,4 @@
 
1817
       -IN DEVELOPMENT
 
1818
       +bzr 0.12rc1  2006-10-23
 
1819
 
 
1820
          IMPROVEMENTS:
 
1821
 
 
1822
 
 
1823
       === modified file 'bzrlib/__init__.py'
 
1824
       --- bzrlib/__init__.py  2006-10-16 01:47:43 +0000
 
1825
       +++ bzrlib/__init__.py  2006-10-23 22:49:46 +0000
 
1826
       @@ -35,7 +35,7 @@
 
1827
        # Python version 2.0 is (2, 0, 0, 'final', 0)."  Additionally we use a
 
1828
        # releaselevel of 'dev' for unreleased under-development code.
 
1829
 
 
1830
       -version_info = (0, 12, 0, 'dev', 0)
 
1831
       +version_info = (0, 12, 0, 'candidate', 1)
 
1832
 
 
1833
        if version_info[3] == 'final':
 
1834
            version_string = '%d.%d.%d' % version_info[:3]
 
1835
 
 
1836
#. Send the changes to PQM, to update the official master branch.
 
1837
 
 
1838
#. When PQM succeeds, pull down the master release branch.
 
1839
 
 
1840
#. Merge the release branch back into the trunk.  Check that changes in NEWS were merged into the right sections.  If it's not already done, advance the version number in bzr and bzrlib/__init__.py Submit this back into pqm for bzr.dev.
 
1841
 
 
1842
#. Make a distribution directory by running e.g. ``bzr export /tmp/bzr-<version>/`` in the working directory.
 
1843
 
 
1844
#. Run make in /tmp/bzr-<version>. This creates the extensions from the pyrex source.
 
1845
 
 
1846
#. Run the test suite in the distribution directory
 
1847
 
 
1848
#. Run ``setup.py install`` --root=prefix to do a test install into your system directory, home directory, or some other prefix.  Check the install worked and that the installed version is usable. (run the bzr script from the installed path with PYTHONPATH set to the site-packages directory it created). i.e. ::
 
1849
 
 
1850
    python setup.py install --root=installed
 
1851
    PYTHONPATH=installed/usr/lib/python2.4/site-packages installed/usr/bin/bzr
 
1852
 
 
1853
#. Clean the tree to get rid of .pyc files etc: make clean && rm -rf build && rm bzrlib/_*.c bzrlib/_*.so
 
1854
 
 
1855
#. Generate the reference documentation in text format: make doc/en/user-reference/bzr_man.txt.
 
1856
 
 
1857
#. Change back to your original branch and then run: make clean && make to create the compiled pyrex extensions.  You then need to copy the .c files over to the exported directory. 
 
1858
   
 
1859
   ``find . -name "*.c"`` will tell you which files you need.
 
1860
 
 
1861
#. Create the release tarball::
 
1862
   
 
1863
     cd /tmp && tar czf bzr-<version>.tar.gz bzr-<version>
 
1864
 
 
1865
#. Sign the tarball with e.g. ``gpg --detach-sign bzr-0.10rc1.tar.gz``
 
1866
 
 
1867
#. Upload to sftp://escudero.ubuntu.com/srv/bazaar.canonical.com/www/releases/src
 
1868
   or, add a download file in https://edge.launchpad.net/bzr/+download and use that address below...
 
1869
 
 
1870
#. Link from http://bazaar-vcs.org/Download
 
1871
 
 
1872
#. Announce to ``bazaar-announce`` and ``bazaar`` mailing lists. 
 
1873
   The announce mail will look something like this:
 
1874
   
 
1875
    | Subject: bzr 0.11 release candidate 1
 
1876
    | 
 
1877
    | INTRO HERE. Mention the release number and date, and why the release. (i.e. release candidate for testing, final release of a version, backport/bugfix etc).
 
1878
    | 
 
1879
    | Tarballs:
 
1880
    | http://bazaar-vcs.org/releases/src/bzr-VERSION.tar.gz
 
1881
    | and GPG signature:
 
1882
    | http://bazaar-vcs.org/releases/src/bzr-VERSION.tar.gz.sig
 
1883
    | 
 
1884
    | DESCRIBE-CHANGES-IN-OVERVIEW-HERE
 
1885
    | 
 
1886
    | DESCRIBE-when the next release will be (if there is another - i.e. this is a release candidate)
 
1887
    | 
 
1888
    | Many thanks to all the contributors to this release! I've included the
 
1889
    | contents of NEWS for VERSION below:
 
1890
 
 
1891
To generate the data from NEWS, just copy and paste the relevant news section and clean it up as appropriate. The main clean-up task is to confirm that all major changes are indeed covered. This can be done by running ``bzr log`` back to the point when the branch was opened and cross checking the changes against the NEWS entries.
 
1892
 
 
1893
 * For point releases (i.e. a release candidate, or an incremental fix to a released version) take everything in the relevant NEWS secion : for 0.11rc2 take everything in NEWS from the bzr 0.11rc2 line to the bzr 0.11rc1 line further down.
 
1894
 * For major releases (i.e. 0.11, 0.12 etc), take all the combined NEWS sections from within that version: for 0.11 take all of the 0.11 specific section, plus 0.11rc2, plus 0.11rc1 etc.
 
1895
 
 
1896
#. Announce on the `Bazaar home page`__
 
1897
   
 
1898
 __ http://bazaar-vcs.org/
 
1899
 
 
1900
#. Update the `news side menu`__ -- this currently requires downloading the file, editing it, deleting it, and uploading a replacement.
 
1901
 
 
1902
 __ http://bazaar-vcs.org/site/menu?action=AttachFile&do=view&target=news.html
 
1903
 
 
1904
#. Update the IRC channel topic. Use the ``/topic`` command to do this, ensuring the new topic text keeps the project name, web site link, etc.
 
1905
 
 
1906
#. Announce on http://freshmeat.net/projects/bzr/
 
1907
   
 
1908
   This should be done for both release candidates and final releases. If you do not have a Freshmeat account yet, ask one of the existing admins.
 
1909
 
 
1910
#. Update http://en.wikipedia.org/wiki/Bzr -- this should be done for final releases but not Release Candidates.
 
1911
 
 
1912
#. Update https://launchpad.net/products/bzr/ -- add a release on the right series for the product.
 
1913
 
 
1914
#. Update http://doc.bazaar-vcs.org/  
 
1915
 
 
1916
   **TODO** Explain how.
 
1917
 
 
1918
#. Package maintainers should update packages when they see the
 
1919
   announcement.
 
1920
 
 
1921
#. RC announcements should remind plugin maintainers to update their
 
1922
   plugins.
 
1923
 
 
1924
#. Blog about it.
 
1925
 
 
1926
#. Post to http://mail.python.org/mailman/listinfo/python-announce-list for major releases
 
1927
 
 
1928
#. Update the python package index: http://pypi.python.org/pypi/bzr
 
1929
 
 
1930
 
 
1931
Making Win32 installers
 
1932
-----------------------
 
1933
 
 
1934
Alexander Belchenko has been very good about getting packaged installers compiled (see Win32ReleaseChecklist for details). He generally e-mails John Arbash Meinel when they are ready. This is just a brief checklist of what needs to be done.
 
1935
 
 
1936
#. Download and verify the sha1 sums and gpg signatures. Frequently the sha1 files are in dos mode, and need to be converted to unix mode (strip off the trailing ``\r``) before they veryify correctly.
 
1937
 
 
1938
#. Upload to escudero (to the b.c.c/www/releases/win32 directory) using sftp, lftp or rsync
 
1939
 
 
1940
#. Cat the contents of the .sha1 files into the SHA1SUM.
 
1941
 
 
1942
#. Update the SHA1SUM and MD5SUM files using something like ``md5sum bzr-0.14.0.win32.exe >> MD5SUM``. Make sure you use append (>>) rather than overwrite (>).
 
1943
 
 
1944
#. Verify once again that everything is correct with ``sha1sum -c SHA1SUM`` and ``md5sum -c MD5SUM``.
 
1945
 
 
1946
#. Update ``.htaccess`` so that the 'bzr-latest.win32.exe' links point to the latest release. This is not done for candidate releases, only for final releases. (example: bzr-0.14.0, but not bzr-0.14.0rc1).
 
1947
 
 
1948
#. Make sure these urls work as expected:
 
1949
 
 
1950
   http://bazaar-vcs.org/releases/win32/bzr-latest.win32-py2.5.exe
 
1951
 
 
1952
   http://bazaar-vcs.org/releases/win32/bzr-latest.win32-py2.5.exe.asc
 
1953
 
 
1954
   http://bazaar-vcs.org/releases/win32/bzr-latest.win32-py2.4.exe
 
1955
 
 
1956
   http://bazaar-vcs.org/releases/win32/bzr-latest.win32-py2.4.exe.asc
 
1957
 
 
1958
   http://bazaar-vcs.org/releases/win32/bzr-setup-latest.exe
 
1959
 
 
1960
   http://bazaar-vcs.org/releases/win32/bzr-setup-latest.exe.asc
 
1961
   
 
1962
They should all try to download a file with the correct version number.
 
1963
 
 
1964
#. Update http://bazaar-vcs.org/Download to indicate the newly available versions.
 
1965
 
 
1966
#. Update http://bazaar-vcs.org/WindowsDownloads to have the correct version number as well as the correct sha1sum displayed.
 
1967
 
1796
1968
 
1797
1969
..
1798
1970
   vim: ft=rst tw=74 ai