Update CHECKLIST.md
[geeqie.git] / CHECKLIST.md
1 # Checklist for code updates and new releases of Geeqie
2
3 ## Code Updates
4
5 ### Before compiling the sources, carry out the following actions when necessary
6
7 * Update `org.geeqie.Geeqie.appdata.xml.in` with the latest released version and date
8
9 * If source files have been added or removed from `./src/` directory, resync `./po/POTFILES.in`
10
11 ```sh
12 cd ./po
13 ./regen_potfiles.sh | patch -p0
14 ```
15
16 * Keep translations in sync with the code
17
18 ```sh
19 cd ./po
20 make update-po
21 ```
22
23 * Update the desktop template if menus have changed
24
25 ```sh
26 ./scripts/template-desktop.sh
27 ```
28
29 ### After compiling the sources, carry out the following actions when necessary
30
31 * Update the man page and Command Line Options section in Help if the command line options have changed
32
33 ```sh
34 ./scripts/generate-man-page.sh
35 ```
36
37 * Update the keyboard shortcuts page in Help if any keyboard shortcuts have changed
38
39 ```sh
40 ./doc/create-shortcuts-xml.sh
41 ```
42
43 * Commit the changes and push to the .repo
44
45 * Generate a new AppImage (note that this should be run on a **20.04 system**)
46
47 ```sh
48 ./scripts/generate-appimage.sh <location of local appimages folder>
49 ```
50
51 * Upload AppImage to web AppImages location
52 * Edit `<location of local geeqie.github.io>/AppImage/appimages.txt` to include latest AppImage at the *top* of the list
53 * Update the web-page Help files if they have changed
54     * commit and push if necessary
55
56 ```sh
57 ./scripts/web-help.sh
58 ```
59
60 * Copy `geeqie.desktop` to `<location of local geeqie.github.io>/`
61 * Copy `org.geeqie.Geeqie.appdata.xml` to `<location of local geeqie.github.io>/`
62 * Push changes to `geeqie.github.io`
63
64 ## New release
65
66 Carry out the above actions to ensure the master branch is up to date, and then the following actions for new version \<n.m\>.
67
68 ```sh
69 sudo make maintainer-clean
70
71 git checkout -b stable/<n.m>
72 git push git@geeqie.org:geeqie stable/<n.m>
73 ```
74
75 Edit `org.geeqie.Geeqie.appdata.xml.in` - change date and version  
76 Edit `NEWS` - the usual information
77
78 ```sh
79 ./autogen.sh
80 make -j
81 ./scripts/generate-man-page.sh
82
83 git add NEWS
84 git add org.geeqie.Geeqie.appdata.xml.in
85 git add geeqie.1
86 git add doc/docbook/CommandLineOptions.xml
87 git commit --message="Preparing for release v<n.m>"
88 git push git@geeqie.org:geeqie
89
90 git tag --sign v<n.m> --message="Release v<n.m>"
91 git push git@geeqie.org:geeqie v<n.m>
92 ```
93
94 Copy the changed files from the v\<n.m\> branch to master
95
96 ```sh
97 git checkout master
98
99 git checkout stable/<n.m> NEWS
100 git checkout stable/<n.m> geeqie.1
101 git checkout stable/<n.m> doc/docbook/CommandLineOptions.xml
102 git checkout stable/<n.m> org.geeqie.Geeqie.appdata.xml.in
103
104 git add NEWS
105 git add org.geeqie.Geeqie.appdata.xml.in
106 git add geeqie.1
107 git add doc/docbook/CommandLineOptions.xml
108 git commit --message="Release v<n.m> files"
109 git push git@geeqie.org:geeqie
110 ```
111
112 Go to `https://github.com/BestImageViewer/geeqie/releases` and click on `Draft a new release`.
113
114 Under `Release title` insert "Geeqie \<n.m\>"
115
116 Under `Choose a tag` select `v<n.m>`
117
118 In `Describe this release` copy-paste the relevant section of `NEWS`.
119
120 Click `Publish release`