summaryrefslogtreecommitdiffstats
path: root/README.maint
blob: 594033a576c54cd756e3caa0505f03e5f9872097 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
            Notes for the GnuPG maintainer  (SVN only)
           ============================================

Here are some notes on how to maintain GnuPG.

Release Planning:
=================

If you are planning a new release and strings have changed you should
send a notification to all translators, so that they have time to
update their translations.  scripts/mail-to-translators is useful for
this.  It might need some tweaking and it needs to be armored for
actual sending.  Running it as is to see what will happen is a good
idea, though.



Release process:
================

  * Make sure that all new PO files are checked in.
  * Decide whether you want to update the automake standard files 
    (Mainly config.guess and config.sub).
  * [1.4 only] Update gpg.texi and gpgv.texi from the trunk:
       make -C doc update-source-from-gnupg-2
  * Run "make -C po update-po".
  * Write NEWS entries and set the release date in NEWS.
  * In configure.ac set "my_issvn" to "no".
  * Put a "Released <version>" line into the top level ChangeLog.
  * Commit all changes to the SVN.
  * Update the SVN then (to sync the release number of all files).
  * Run "./autogen.sh --force"
    (--force is required for the svn magic in configure.ac and a good
    idea in any case)
  * Run "configure --enable-maintainer-mode".
  * Run "make distcheck".
  * Build and test the new tarball (best on a different machine).
  * Build and test the W32 version.
  * [2.x only] Using the final test build run a "make -C doc online".
  * Sign the tarball
  * Get the previous tarball and run "mkdiff gnupg".  
    You might need to set a different signature key than mine.  mkdiff
    has an option for this.
  * If you are satisfied with the result tag the release.  Use "svn
    info" to get the current URL and use an svn cp command similar to
    "svn cp svn+ssh://host/gnupg/trunk  svn+ssh://host/gnupg/tags/gnupg-2.n.m"
    (for 1.4 you should see "branches/STABLE-BRANCH-1-4" instead of "trunk",
     however tags are all below tags).
  * Copy the files to the FTP server
  * Update the webpages - at least the file swdb.wml needs an update.
  * Add a new headline to NEWS.
  * Bump "my_version" up and set "my_issvn" back to "yes" in configure.ac 
  * Write an announcement.  Update https://savannah.gnu.org/projects/gnupg .



Gotchas
=======

- If during "make distcheck" you get an error about a permission
  problem moving foo.new.po to foo.po; this is caused by a check
  whether the po files can be re-created.  Now if the first tarball
  has been created in a different top directory and if there exists a
  no distributed file with the string "GNU gnupg" (e.g. a log file
  from running make) you end up with different comments in the po
  files.  Check out /usr/lib/gettext/project-id for that silliness.
  As a hack we added this string into configure.ac.