summaryrefslogtreecommitdiff
path: root/doc/HOWTO-RELEASE
blob: 7242d7491fcb659bbfc240b0c0ed43b3489d9b06 (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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
How to make a new release of GNU Stow
=====================================

Prerequisite reading
--------------------

First read the official information for maintainers of GNU software:

  https://www.gnu.org/prep/maintain/

Release procedure
-----------------

- Ensure NEWS contains the latest changes, and that any new
  contributors have been added to THANKS.

- Ensure configure.ac contains the new version number.
  This should follow Semantic Versioning as described at:

    http://semver.org/

- Check CPAN distribution will work via Module::Build:

    - Generate stow, chkstow, and lib/Stow.pm via:

        eval `perl -V:siteprefix`
        automake --add-missing
        ./configure --prefix=$siteprefix && make

      (N.B. the CPAN distribution will contain these files, whereas
      the GNU distribution will not.)

    - Make sure all the following commands all run successfully:

        perl Build.PL --prefix=/tmp/stow-test
        ./Build test
        ./Build install
        ./Build distcheck
        ./Build distmeta

    - Check META.yaml and META.json have the new version number.

- Ensure all changes are committed to git.

- Run make distcheck and ensure that everything looks good.
  It should generate the distribution files for you.

- Tag the current git HEAD with the new version number:

    git tag -s v7.8.9

- Push HEAD and tag to savannah

    git push
    git push --tags

- Regenerate the documentation for the website:

    # First check out gnulib repository via:
    # git clone git://git.savannah.gnu.org/gnulib.git

    # and stow-web CVS repository via the instructions here:
    # https://savannah.gnu.org/cvs/?group=stow

    # Set paths:
    stow_repo=/path/to/stow/git/repo
    stow_web_repo=/path/to/stow-web/CVS/working/dir
    gnulib_repo=/path/to/gnulib/git/repo

    cd $stow_repo
    export GENDOCS_TEMPLATE_DIR=$gnulib_repo/doc
    $gnulib_repo/util/gendocs.sh \
        -s doc/stow.texi \
        -o $stow_web_repo/manual \
        --email bug-stow@gnu.org \
        stow "GNU Stow manual"

    cd $stow_web_repo
    # Check that the changes look OK
    cvs diff
    # Then commit
    cvs commit -m 'Update manual to v7.8.9'

- Run ./Build dist

- Upload the resulting Stow-v7.8.9.tar.gz to CPAN via https://pause.perl.org/

- Upload to ftp.gnu.org.  This is easiest using gnupload:

    - git clone git://git.savannah.gnu.org/gnulib.git
    - Copy gnulib/build-aux/gnupload to somewhere on your $PATH
    - Run gnupload --to ftp.gnu.org:stow --symlink-regex stow-7.8.9.tar.*

- Send release announcements to 

    - info-stow@gnu.org
    - stow-devel@gnu.org
    - info-gnu@gnu.org
    - https://savannah.gnu.org/news/?group=stow

  See http://www.gnu.org/prep/maintain/html_node/Announcements.html for
  more on making release announcements.