Commit a91981ae authored by Hartmut Goebel's avatar Hartmut Goebel
Browse files

Merge release 0.9.1 into develop.

parents 4804bb94 9e584c38
Loading
Loading
Loading
Loading
Loading
+16 −2
Original line number Diff line number Diff line
@@ -5,6 +5,21 @@
- Nothing changed yet.


0.9.1 (2025-08-03)
------------------

* Fix missing localization files in distribution.
  Actually all translations have been missing.

* Fix missing translation for Python < 3.10 argparse.

* Update translations.

* Add missing copyright texts, license identifiers and license files.

* Lots of cleanup to the test, build and packaging process.


0.9.post2 (2025-07-28)
----------------------

@@ -140,8 +155,7 @@
   Licensed under the GNU Free Documentation License v1.3 or any later version.
   SPDX-License-Identifier: GFDL-1.3-or-later

...
  Local Variables:
.. Local Variables:
   mode: rst
   ispell-local-dictionary: "american"
   End:
+1 −0
Original line number Diff line number Diff line
@@ -8,4 +8,5 @@ include INSTALL
include README.txt
include pdfposter.rst
include */locale/*.pot
include */locale/*/*/*.po
global-exclude SConstruct SConscript
+12 −0
Original line number Diff line number Diff line
@@ -27,6 +27,18 @@ For more information please refer to the manpage or visit
the `project homepage <https://pdfposter.readthedocs.io/>`_.


Translating Weblate
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

``Pdfposter`` and its siblings are continually being translated
using `Codeberg Translate`__.
Feel free to take your part in the effort of making ``pdfposter`` available
in as many human languages as possible.
It brings ``pdfposter`` closer to its users!

__ https://translate.codeberg.org/projects/pdftools/


Requirements and Installation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+2 −3
Original line number Diff line number Diff line
@@ -48,13 +48,12 @@ env.Command('docs/pdfposter.html', 'pdfposter.rst',
            'build-aux/gen-man-page.py $SOURCE html $TARGET')
env.Command('docs/pdfposter.1', 'pdfposter.rst',
            'build-aux/gen-man-page.py $SOURCE manpage $TARGET')

# create PNG projectlogo for project homepage
env.Command('projectlogo.png', 'projectlogo.svg',
            'inkscape -z -f $SOURCE -e $TARGET --export-height=100')
            'inkscape --export-filename=$TARGET --export-height=100 $SOURCE')

hires_logo = env.Command('build/icons/projectlogo-hires.png', 'projectlogo.svg',
                         'inkscape -z -f $SOURCE -e $TARGET')
                         'inkscape --export-filename=$TARGET $SOURCE')

icon_parts = [
    env.Command('build/icons/project-${WIDTH}x${HEIGHT}.pnm', hires_logo,

_zest_release_hooks.py

0 → 100644
+76 −0
Original line number Diff line number Diff line
import subprocess
import sys
import os
import glob
import shutil
import zest.releaser.utils


def compile_message_catalogs(data):
    print("Compiling catalogs")
    # running via setuptools to get arguments from setup.cfg
    subprocess.run([
        sys.executable,
        '-c', 'from setuptools import *; setup()',
        "compile_catalog", "--statistics"])
    print("Done")


def build_man_pages(data):
    print("Building man-pages")
    for rstfile, writer, outfile in (
            ('pdfposter.rst', 'manpage', 'docs/pdfposter.1'),
            ('pdfposter.rst', 'html5', 'docs/pdfposter.html'),
    ):
        subprocess.run([
            sys.executable, 'build-aux/gen-man-page.py',
            '--version', data['version'],
            rstfile, writer, outfile])
    print("Done")


def sign_release(data):
    "Sign the archive that will be uploaded to PYPI."
    # zest.releaser does a clean checkout where it generates tgz/zip in 'dist'
    # directory and those files will be then uploaded to pypi.
    dist_dir = os.path.join(data['tagdir'], 'dist')
    cmd = ['gpg', '--detach-sign', '--armor']
    codesigning_id = os.getenv("CODESIGNING_ID")
    if not codesigning_id:
        rc, codesigning_id = subprocess.getstatusoutput(
            "git config --get user.signingkey")
        if rc:
            raise SystemExit(f"ERROR in sign_release hook: {codesigning_id}")
            codesigning_id = None
    if codesigning_id:
        print("Using gpg identity", codesigning_id, "for signing.")
        cmd.extend(['--local-user', codesigning_id])
    # Sign all files in the 'dist' directory.
    for f in list(os.listdir(dist_dir)):
        f = os.path.join(dist_dir, f)
        print('Signing file %s' % f)
        subprocess.run(cmd + [f])


def run_twine_check(data):
    import twine.cli
    dist_dir = os.path.join(data['tagdir'], 'dist')
    dist_files = list(glob.glob(os.path.join(dist_dir, "*")))
    twine.cli.dispatch(["check"] + dist_files)


def safe_dist_files(data):
    repo_dist_dir = os.path.join(data['reporoot'], 'dist')
    dist_dir = os.path.join(data['tagdir'], 'dist')
    dist_files = glob.glob(os.path.join(dist_dir, "*"))
    for fn in sorted(os.listdir(dist_dir)):
        src = os.path.join(dist_dir, fn)
        dest = os.path.join(repo_dist_dir, fn)
        if (os.path.exists(dest) and
            not zest.releaser.utils.ask("Overwrite dist/%s" % fn,
                                        default=True)):
            # skip this file
            print("Skipping", fn)
            continue
        print("Saving", fn)
        shutil.copy2(src, dest)
Loading