Avoid catch-22 with README.main not being distributed but having the
[gnupg.git] / README.maint
blob594033a576c54cd756e3caa0505f03e5f9872097
1             Notes for the GnuPG maintainer  (SVN only)
2            ============================================
4 Here are some notes on how to maintain GnuPG.
6 Release Planning:
7 =================
9 If you are planning a new release and strings have changed you should
10 send a notification to all translators, so that they have time to
11 update their translations.  scripts/mail-to-translators is useful for
12 this.  It might need some tweaking and it needs to be armored for
13 actual sending.  Running it as is to see what will happen is a good
14 idea, though.
18 Release process:
19 ================
21   * Make sure that all new PO files are checked in.
22   * Decide whether you want to update the automake standard files 
23     (Mainly config.guess and config.sub).
24   * [1.4 only] Update gpg.texi and gpgv.texi from the trunk:
25        make -C doc update-source-from-gnupg-2
26   * Run "make -C po update-po".
27   * Write NEWS entries and set the release date in NEWS.
28   * In configure.ac set "my_issvn" to "no".
29   * Put a "Released <version>" line into the top level ChangeLog.
30   * Commit all changes to the SVN.
31   * Update the SVN then (to sync the release number of all files).
32   * Run "./autogen.sh --force"
33     (--force is required for the svn magic in configure.ac and a good
34     idea in any case)
35   * Run "configure --enable-maintainer-mode".
36   * Run "make distcheck".
37   * Build and test the new tarball (best on a different machine).
38   * Build and test the W32 version.
39   * [2.x only] Using the final test build run a "make -C doc online".
40   * Sign the tarball
41   * Get the previous tarball and run "mkdiff gnupg".  
42     You might need to set a different signature key than mine.  mkdiff
43     has an option for this.
44   * If you are satisfied with the result tag the release.  Use "svn
45     info" to get the current URL and use an svn cp command similar to
46     "svn cp svn+ssh://host/gnupg/trunk  svn+ssh://host/gnupg/tags/gnupg-2.n.m"
47     (for 1.4 you should see "branches/STABLE-BRANCH-1-4" instead of "trunk",
48      however tags are all below tags).
49   * Copy the files to the FTP server
50   * Update the webpages - at least the file swdb.wml needs an update.
51   * Add a new headline to NEWS.
52   * Bump "my_version" up and set "my_issvn" back to "yes" in configure.ac 
53   * Write an announcement.  Update https://savannah.gnu.org/projects/gnupg .
57 Gotchas
58 =======
60 - If during "make distcheck" you get an error about a permission
61   problem moving foo.new.po to foo.po; this is caused by a check
62   whether the po files can be re-created.  Now if the first tarball
63   has been created in a different top directory and if there exists a
64   no distributed file with the string "GNU gnupg" (e.g. a log file
65   from running make) you end up with different comments in the po
66   files.  Check out /usr/lib/gettext/project-id for that silliness.
67   As a hack we added this string into configure.ac.