Here are the steps to follow to create a new libgxps release:

1) Ensure that there are no local, uncommitted modifications.
   It's probably good enough if "git diff HEAD" doesn't output
   anything and your "master" and "origin" branchs are at the current
   revision.

2) Fill out an entry in the NEWS file

        Sift through the logs since the last release. This is most
        easily done with a comand such as:

                git log --stat X.Y.Z..

        where X.Y.Z is the previous release version.

        Summarize major changes briefly in a style similar to other
        entries in NEWS. Take special care to note any additions in
        the API. These should be easy to find by noting modifications
        to .h files in the log command above. And more specifically,
        the following command will show each patch that has changed a
        public header file since the given version:

                find libgxps -name 'gxps*.h' ! -name '*-private.h' \
                ! -name 'gxps-archive.h' ! -name 'gxps-debug.h' \
                ! -name 'gxps-fonts.h' ! -name 'gxps-images.h' \
                ! -name 'gxps-brush.h' ! -name 'gxps-color.h' \
                ! -name 'gxps-path.h' ! -name 'gxps-glyphs.h' \
                ! -name 'gxps-matrix.h' \
                ! -name 'gxps-parse-utils.h' | xargs git log -p X.Y.Z.. --

3) Increment the gxps version in meson.build:

        If there are API additions, then increment the minor version
        and reset the micro version to 0.

        Otherwise, (ie. there are only bug fixes), increment
        the micro version to the next larger number.

        Adjust current, revision and age as described in the
        comments in the top level meson.build.

5) Commit the changes to NEWS and meson.build

        It's especially important to mention the new version number in your
        commit log.

6) Run "ninja libgxps-doc release"

        Running "ninja libgxps-doc release" generates the new tarball on the form of:

        libgxps-X.Y.Z.tar.xz

        (But the tar file isn't actually ready yet, as we still have
        some more steps to follow).

7) Push the commit

8) Tag the release with the following command:

        git tag -s -m "libgxps X.Y.Z release" X.Y.Z

9) Push the newly created tag out to the central tree with a command
   something like:

        git push origin X.Y.Z

10) Upload the tarball to ftp.gnome.org, by scp-ing it to
   master.gnome.org:

        scp libgxps-X.Y.Z.tar.xz (username)@master.gnome.org:

11) ssh into master.gnome.org and call ftpadmin install command:

        ftpadmin install libgxps-X.Y.Z.tar.xz

12) Send a message to announce the new release to gnome-announce-list@gnome.org

