diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index aee0b6b..a3baf63 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -29,6 +29,14 @@ jobs: echo "Cargo.toml version ($VERSION) does not match tag (${{ github.ref_name }})" >&2 exit 1 fi + - name: Check that the metainfo has a release entry for this version + shell: bash + run: | + metainfo=resources/com.andr2i.scrolex.metainfo.xml + if ! grep -q " entry" >&2 + exit 1 + fi - name: Create GitHub release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/Cargo.lock b/Cargo.lock index edc42be..9502c01 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1450,7 +1450,7 @@ dependencies = [ [[package]] name = "scrolex" -version = "0.7.1" +version = "0.7.2" dependencies = [ "criterion", "env_logger", diff --git a/Cargo.toml b/Cargo.toml index 92d744b..23fb7d0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "scrolex" -version = "0.7.1" +version = "0.7.2" edition = "2021" authors = ["Andrii Berezhynskyi "] license = "AGPL-3.0-or-later" @@ -35,6 +35,10 @@ debug = false [package.metadata.deb] assets = [ ["target/release/scrolex", "usr/bin/", "755"], - ["resources/scrolex.desktop", "usr/share/applications/", "644"], - ["resources/icon.png", "usr/share/icons/hicolor/64x64/apps/scrolex.png", "644"] + ["resources/com.andr2i.scrolex.desktop", "usr/share/applications/", "644"], + ["resources/icon-64.png", "usr/share/icons/hicolor/64x64/apps/com.andr2i.scrolex.png", "644"], + ["resources/icon-128.png", "usr/share/icons/hicolor/128x128/apps/com.andr2i.scrolex.png", "644"], + ["resources/icon-256.png", "usr/share/icons/hicolor/256x256/apps/com.andr2i.scrolex.png", "644"], + ["resources/icon-512.png", "usr/share/icons/hicolor/512x512/apps/com.andr2i.scrolex.png", "644"], + ["resources/com.andr2i.scrolex.metainfo.xml", "usr/share/metainfo/", "644"] ] diff --git a/ci/bump-version b/ci/bump-version new file mode 100755 index 0000000..629e104 --- /dev/null +++ b/ci/bump-version @@ -0,0 +1,68 @@ +#!/bin/sh +set -eu + +usage() { + cat >&2 <<'EOF' +usage: ci/bump-version [date] + + version MAJOR.MINOR.PATCH, optionally with a pre-release suffix (0.8.0-rc1) + date release date for the metainfo entry, YYYY-MM-DD (default: today) +EOF + exit 2 +} + +[ $# -ge 1 ] && [ $# -le 2 ] || usage +version=$1 +date=${2:-$(date +%F)} + +if ! printf '%s' "$version" | grep -Eq '^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z.]+)?$'; then + echo "bump-version: '$version' is not a valid version" >&2 + exit 1 +fi +if [ "$(date -d "$date" +%F 2>/dev/null)" != "$date" ]; then + echo "bump-version: '$date' is not a valid YYYY-MM-DD date" >&2 + exit 1 +fi + +root=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd) +cd "$root" + +metainfo=resources/com.andr2i.scrolex.metainfo.xml +for f in Cargo.toml Cargo.lock "$metainfo"; do + [ -f "$f" ] || { echo "bump-version: $f not found" >&2; exit 1; } +done + +previous=$(sed -n 's/^version *= *"\(.*\)"/\1/p' Cargo.toml | head -1) +repository=$(sed -n 's/^repository *= *"\(.*\)"/\1/p' Cargo.toml | head -1) +[ -n "$repository" ] || { echo "bump-version: no repository in Cargo.toml" >&2; exit 1; } + +awk -v v="$version" ' + /^\[/ { in_package = ($0 == "[package]") } + in_package && /^version *=/ && !seen { print "version = \"" v "\""; seen = 1; next } + { print } +' Cargo.toml > Cargo.toml.bump && mv Cargo.toml.bump Cargo.toml + +awk -v v="$version" ' + after_name && /^version *=/ { print "version = \"" v "\""; after_name = 0; next } + { after_name = ($0 == "name = \"scrolex\""); print } +' Cargo.lock > Cargo.lock.bump && mv Cargo.lock.bump Cargo.lock + +if grep -q "/ && !seen { + printf " \n", v, d + printf " %s/releases/tag/%s\n", url, v + print " " + seen = 1 + } + ' "$metainfo" > "$metainfo.bump" && mv "$metainfo.bump" "$metainfo" + metainfo_note="added $version dated $date" +fi + +echo "$previous -> $version" +echo " Cargo.toml" +echo " Cargo.lock" +echo " $metainfo ($metainfo_note)" diff --git a/packaging/flatpak/com.andr2i.scrolex.yml b/packaging/flatpak/com.andr2i.scrolex.yml index bb74d57..948bc89 100644 --- a/packaging/flatpak/com.andr2i.scrolex.yml +++ b/packaging/flatpak/com.andr2i.scrolex.yml @@ -29,10 +29,11 @@ modules: build-commands: - cargo build --release - install -Dm755 target/release/scrolex /app/bin/scrolex - - install -Dm644 resources/icon.png /app/share/icons/hicolor/64x64/apps/com.andr2i.scrolex.png - - install -Dm644 resources/scrolex.desktop /app/share/applications/com.andr2i.scrolex.desktop - - desktop-file-edit --set-icon=com.andr2i.scrolex /app/share/applications/com.andr2i.scrolex.desktop - - sed -i -e "s/@VERSION@/$(sed -nE 's/^version *= *\"(.*)\"/\1/p; /^version/q' Cargo.toml)/" -e "s/@DATE@/$(date +%F)/" resources/com.andr2i.scrolex.metainfo.xml + - install -Dm644 resources/icon-64.png /app/share/icons/hicolor/64x64/apps/com.andr2i.scrolex.png + - install -Dm644 resources/icon-128.png /app/share/icons/hicolor/128x128/apps/com.andr2i.scrolex.png + - install -Dm644 resources/icon-256.png /app/share/icons/hicolor/256x256/apps/com.andr2i.scrolex.png + - install -Dm644 resources/icon-512.png /app/share/icons/hicolor/512x512/apps/com.andr2i.scrolex.png + - install -Dm644 resources/com.andr2i.scrolex.desktop /app/share/applications/com.andr2i.scrolex.desktop - install -Dm644 resources/com.andr2i.scrolex.metainfo.xml /app/share/metainfo/com.andr2i.scrolex.metainfo.xml sources: - type: git diff --git a/resources/com.andr2i.scrolex.desktop b/resources/com.andr2i.scrolex.desktop new file mode 100644 index 0000000..3e1ef1d --- /dev/null +++ b/resources/com.andr2i.scrolex.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Version=1.0 +Type=Application +Name=Scrolex +Comment=A Horizontally Scrolled PDF Viewer +Exec=scrolex %f +Icon=com.andr2i.scrolex +Terminal=false +StartupWMClass=scrolex +MimeType=application/pdf;application/epub+zip;application/x-mobipocket-ebook;application/x-fictionbook+xml;application/oxps;application/vnd.ms-xpsdocument;application/vnd.comicbook+zip; +Categories=Graphics;Viewer; diff --git a/resources/com.andr2i.scrolex.metainfo.xml b/resources/com.andr2i.scrolex.metainfo.xml index a4d6c40..b2a86d5 100644 --- a/resources/com.andr2i.scrolex.metainfo.xml +++ b/resources/com.andr2i.scrolex.metainfo.xml @@ -20,6 +20,23 @@ - + + https://github.com/molecule-man/scrolex/releases/tag/0.7.2 + + + https://github.com/molecule-man/scrolex/releases/tag/0.7.1 + + + https://github.com/molecule-man/scrolex/releases/tag/0.7.0 + + + https://github.com/molecule-man/scrolex/releases/tag/0.6.0 + + + https://github.com/molecule-man/scrolex/releases/tag/0.5.1 + + + https://github.com/molecule-man/scrolex/releases/tag/0.5.0 + diff --git a/resources/icon-128.png b/resources/icon-128.png new file mode 100644 index 0000000..79c13f9 Binary files /dev/null and b/resources/icon-128.png differ diff --git a/resources/icon-256.png b/resources/icon-256.png new file mode 100644 index 0000000..7a583e4 Binary files /dev/null and b/resources/icon-256.png differ diff --git a/resources/icon-512.png b/resources/icon-512.png new file mode 100644 index 0000000..7059bf1 Binary files /dev/null and b/resources/icon-512.png differ diff --git a/resources/icon-64.png b/resources/icon-64.png new file mode 100644 index 0000000..28c30d2 Binary files /dev/null and b/resources/icon-64.png differ diff --git a/resources/icon.png b/resources/icon.png deleted file mode 100644 index b0a1f0c..0000000 Binary files a/resources/icon.png and /dev/null differ diff --git a/resources/scrolex.desktop b/resources/scrolex.desktop deleted file mode 100644 index 65d0bf8..0000000 --- a/resources/scrolex.desktop +++ /dev/null @@ -1,10 +0,0 @@ -[Desktop Entry] -Version=1.0 -Type=Application -Name=Scrolex -Comment=A Horizontally Scrolled PDF Viewer -Exec=scrolex %f -Icon=scrolex -Terminal=false -MimeType=application/pdf; -Categories=Viewer;Graphics;