Commit 525d423ea8091731fa409acac37ba0e9528812ab
1 parent
a16d703f
Tweak README-maintainer
Showing
1 changed file
with
28 additions
and
11 deletions
README-maintainer
| ... | ... | @@ -106,10 +106,15 @@ RELEASE PREPARATION |
| 106 | 106 | |
| 107 | 107 | CREATING A RELEASE |
| 108 | 108 | |
| 109 | +* Be sure that the local git clone's HEAD is a commit that has | |
| 110 | + upstream/master as an ancestor and that can be pushed to my fork. We | |
| 111 | + will be generating releases and tagging this commit, which will be | |
| 112 | + pushed to master as part of the release process. | |
| 113 | + | |
| 109 | 114 | * Create source release: |
| 110 | 115 | |
| 111 | 116 | version=x.y.z |
| 112 | -rm -rf /tmp/qpdf-$version | |
| 117 | +\rm -rf /tmp/qpdf-$version | |
| 113 | 118 | git archive --prefix=qpdf-$version/ HEAD . | (cd /tmp; tar xf -) |
| 114 | 119 | cd /tmp |
| 115 | 120 | ./qpdf-$version/make_dist |
| ... | ... | @@ -129,20 +134,13 @@ gpg --detach-sign --armor qpdf-$version.tar.gz |
| 129 | 134 | |
| 130 | 135 | cd appimage |
| 131 | 136 | docker build -t qpdfbuild . |
| 132 | -rm -rf /tmp/build | |
| 137 | +\rm -rf /tmp/build | |
| 133 | 138 | mkdir -p /tmp/build |
| 134 | 139 | cp -rLp ~/.gnupg/. /tmp/build/.gnupg |
| 135 | 140 | docker run --privileged -ti --rm -v /tmp/build:/tmp/build qpdfbuild https://github.com/jberkenbilt/qpdf -b work |
| 136 | 141 | |
| 137 | - To build locally, omit the git arguments after qpdfbuild above and | |
| 138 | - copy the source tree into /tmp/build/qpdf. | |
| 139 | - | |
| 140 | - Pass -e SKIP_TESTS=1 to docker to skip the test suite, useful for | |
| 141 | - rapid iteration. | |
| 142 | - | |
| 143 | - Rename the AppImage in /tmp/build/qpdf/appimage/build | |
| 144 | - qpdf-$version-x86_64.AppImage and move it to the release archive | |
| 145 | - area. | |
| 142 | + The AppImage in /tmp/build/qpdf/appimage/build should be called | |
| 143 | + qpdf-$version-x86_64.AppImage. Move it to the release archive area. | |
| 146 | 144 | |
| 147 | 145 | * Create Windows binary releases. In Windows: |
| 148 | 146 | * Extract the source distribution |
| ... | ... | @@ -169,11 +167,21 @@ for i in md5 sha1 sha512; do |
| 169 | 167 | gpg --clearsign --armor qpdf-$version.$i |
| 170 | 168 | mv qpdf-$version.$i.asc qpdf-$version.$i |
| 171 | 169 | done |
| 170 | +chmod 444 * | |
| 171 | +chmod 555 *.AppImage | |
| 172 | 172 | |
| 173 | 173 | * When creating releases on github and sourceforge, remember to copy |
| 174 | 174 | `README-what-to-download.md` separately onto the download area if |
| 175 | 175 | needed. |
| 176 | 176 | |
| 177 | +* Push the master branch to github. Create and push a signed tag. This | |
| 178 | + should be run with HEAD pointing to the tip of master. | |
| 179 | + | |
| 180 | +git rev-parse master @ | |
| 181 | +git push upstream master | |
| 182 | +git tag -s release-qpdf-$version HEAD -m"qpdf $version" | |
| 183 | +git push upstream release-qpdf-$version | |
| 184 | + | |
| 177 | 185 | * Create a github release after pushing the tag. `gcurl` is an alias |
| 178 | 186 | that includes the auth token. |
| 179 | 187 | |
| ... | ... | @@ -232,6 +240,15 @@ zip -r qpdf-external-libs-src.zip external-libs |
| 232 | 240 | When releasing on sourceforge, `external-libs` distributions go in |
| 233 | 241 | `external-libs/yyyymmdd`, and qpdf distributions go in `qpdf/vvv`. |
| 234 | 242 | |
| 243 | +For local iteration on the AppImage generation, follow the release | |
| 244 | +procedures for building the AppImage, but instead of passing git clone | |
| 245 | +options to the docker command, copy qpdf to /tmp/build. You can also | |
| 246 | +pass -e SKIP_TESTS=1 to docker to skip the test suite, useful for | |
| 247 | +rapid iteration. Set up /tmp/build as in the release process. | |
| 248 | + | |
| 249 | +cp -a $PWD /tmp/build | |
| 250 | +docker run --privileged -ti --rm -e SKIP_TESTS=1 -v /tmp/build:/tmp/build qpdfbuild | |
| 251 | + | |
| 235 | 252 | |
| 236 | 253 | GENERAL BUILD STUFF |
| 237 | 254 | ... | ... |