Release under the SolidCraft name: binaries, assets and installers (#383)
* Release under the SolidCraft name: binaries, assets and installers The desktop binary is now `solidcraft` and the CLI `solidcraft-cli` (the two app packages are renamed; their folders move with the rest of the rename later). Every release asset is named solidcraft-<ver>-… / SolidCraft-<ver>-windows-x64.exe, and the installers show the SolidCraft product name. Kept so existing installs keep updating (docs/compatibility.md): - `solvecraft-cli` alias binary in every package, forwarding to solidcraft-cli with a deprecation note on stderr (tests/legacy_alias.rs). - Linux app ID ai.storyteller.solvecraft (Flatpak ID, desktop entry, Wayland app_id). - MSI UpgradeCode, so the MSI upgrades in place. - deb Replaces/Conflicts/Provides and rpm Obsoletes/Provides solvecraft. - An old-named .zsync copy so earlier AppImages find updates; a legacy .flatpakrepo copy. - .solvecraft file associations; SOLVECRAFT_* fallbacks in the packaging scripts. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT * MSI: register the legacy .solvecraft extension without a duplicate open verb Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT --------- Co-authored-by: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
f06b76e14f
commit
6090e89b3f
50 files changed
+478
-317
No files matched your search
+15
-9
@@ -4,9 +4,12 @@
|
||||
#
|
||||
# Exports:
|
||||
# ROOT workspace root
|
||||
# VERSION [workspace.package] version from Cargo.toml (override: SOLVECRAFT_VERSION)
|
||||
# VERSION [workspace.package] version from Cargo.toml (override: SOLIDCRAFT_VERSION)
|
||||
#
|
||||
# Every SOLIDCRAFT_* override also accepts the pre-rename SOLVECRAFT_* name when the new one is
|
||||
# unset (compatibility shim, see docs/compatibility.md).
|
||||
# DIST output directory for release artifacts (default: $ROOT/dist/release)
|
||||
# SOLVECRAFT_BUILD_DATE UTC build date, YYYY-MM-DD
|
||||
# SOLIDCRAFT_BUILD_DATE UTC build date, YYYY-MM-DD
|
||||
# CARGO_TARGET_DIR cargo's target dir (default: $ROOT/target)
|
||||
|
||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
@@ -20,7 +23,7 @@ workspace_version() {
|
||||
' "$ROOT/Cargo.toml"
|
||||
}
|
||||
|
||||
VERSION="${SOLVECRAFT_VERSION:-$(workspace_version)}"
|
||||
VERSION="${SOLIDCRAFT_VERSION:-${SOLVECRAFT_VERSION:-$(workspace_version)}}"
|
||||
if [ -z "$VERSION" ]; then
|
||||
echo "error: could not read [workspace.package] version from $ROOT/Cargo.toml" >&2
|
||||
exit 1
|
||||
@@ -32,8 +35,11 @@ mkdir -p "$DIST"
|
||||
DIST="$(cd "$DIST" && pwd)"
|
||||
export DIST
|
||||
|
||||
export SOLVECRAFT_BUILD_DATE="${SOLVECRAFT_BUILD_DATE:-$(date -u +%Y-%m-%d)}"
|
||||
export SOLIDCRAFT_BUILD_DATE="${SOLIDCRAFT_BUILD_DATE:-${SOLVECRAFT_BUILD_DATE:-$(date -u +%Y-%m-%d)}}"
|
||||
export CARGO_TARGET_DIR="${CARGO_TARGET_DIR:-$ROOT/target}"
|
||||
# Compatibility shim, see docs/compatibility.md: the reverse-DNS id (Flatpak app id, desktop,
|
||||
# metainfo and MIME file names, icon name, Wayland app_id) keeps its pre-rename value so Flatpak
|
||||
# installs keep updating and desktop integration keeps working.
|
||||
APP_ID=ai.storyteller.solvecraft
|
||||
export APP_ID
|
||||
|
||||
@@ -43,7 +49,7 @@ warn() {
|
||||
}
|
||||
|
||||
# Copy the licence, notice and readme files into a package directory. The programs also carry
|
||||
# them (Help > About > Licences, `solvecraft-cli licences`).
|
||||
# them (Help > About > Licences, `solidcraft-cli licences`).
|
||||
copy_docs() {
|
||||
local dest="$1" f
|
||||
for f in README.md LICENSE-MIT LICENSE-APACHE NOTICE THIRD-PARTY-LICENSES.txt; do
|
||||
@@ -52,14 +58,14 @@ copy_docs() {
|
||||
}
|
||||
|
||||
# The app icon in every size a package needs, drawn by the CLI (no image files are committed):
|
||||
# $1 = the solvecraft-cli to run, $2 = output dir. Writes hicolor/<n>x<n>/apps/$APP_ID.png,
|
||||
# solvecraft.ico and solvecraft-1024.png.
|
||||
# $1 = the solidcraft-cli to run, $2 = output dir. Writes hicolor/<n>x<n>/apps/$APP_ID.png,
|
||||
# solidcraft.ico and solidcraft-1024.png.
|
||||
make_icons() {
|
||||
local cli="$1" out="$2" s
|
||||
for s in 16 24 32 48 64 128 256 512; do
|
||||
mkdir -p "$out/hicolor/${s}x${s}/apps"
|
||||
"$cli" icon --size "$s" --out "$out/hicolor/${s}x${s}/apps/$APP_ID.png" >/dev/null
|
||||
done
|
||||
"$cli" icon --out "$out/solvecraft.ico" >/dev/null
|
||||
"$cli" icon --size 1024 --out "$out/solvecraft-1024.png" >/dev/null
|
||||
"$cli" icon --out "$out/solidcraft.ico" >/dev/null
|
||||
"$cli" icon --size 1024 --out "$out/solidcraft-1024.png" >/dev/null
|
||||
}
|
||||
Reference in new issue
Block a user