COPR re-expands the spec inside the SRPM without the transient
`--define _pkg_version`/`--define _pkg_release` flags, so the spec fell back to
the template default (0.4.0) and Source0 pointed at a tarball name that does
not exist. Every COPR build failed with:
Bad file: /builddir/build/SOURCES/drop-desktop-client-alpha-0.4.0.tar.gz
Bake the resolved version/release into the generated spec so the SRPM is
self-consistent.
Refs #65 (COPR channel).
Tauri's deb bundler writes data.tar members as usr/bin/drop-app (no ./
prefix), so the PPA/COPR extraction of ./usr/bin/drop-app failed with
"tar: ./usr/bin/drop-app: Not found in archive", failing prepare-ppa-source.sh.
Match the member with --wildcards '*usr/bin/drop-app' (handles both the
Tauri and dpkg ./ layouts) in scripts/distro/common.sh and both workflows.
- replace the in-house Debian source builder and gpg-preset signing with
the pinned yuezk/publish-ppa-package action for both channels
- add scripts/distro/prepare-ppa-source.sh producing the source tarball and
generated debian/ directory the action consumes
- drop build-deb-source.sh and setup-gpg.sh; PPA_GPG_KEY_ID is no longer
needed (the action derives the key id) and the key secret is now armored
- update PPA docs/variables to the heretek-games Launchpad team
- keep the COPR SRPM + copr-cli approach unchanged
- add a real Debian source-package tree and an RPM SRPM builder under
scripts/distro, wrapping the prebuilt Tauri binary
- publish stable channels manually on a release or v* tag (ppa-stable,
copr-stable) and alpha channels on every develop push (ppa-alpha,
copr-alpha)
- map alpha semver X.Y.Z-alpha.N.sha to the tilde package version
X.Y.Z~alpha.N+sha so alphas sort below stable in apt/dnf
- unify all distribution IDs on the Tauri identifier org.droposs.client
(.Alpha) across Flatpak, AppStream, .desktop and FlatPark
- document setup/secrets and update the Ubuntu/Fedora install guides
- Restore the Sonar-preferred <output> elements (with an accessible name) so
the status-role regression and the 11 new Web:S6819 findings are gone.
- Run `nuxt prepare` before desktop/main eslint so the gitignored generated
config exists in CI and the pre-push hook.
- Satisfy the Sonar shell rules in scripts/agent-quality*.sh and run-tool.sh
([[ ]], explicit return, default case arms).
- Extract the duplicated news query validation into
server/server/internal/news/query.ts.
- Make the sonar CLI lookup portable and pin typos in CI.
- Wire Sonar secrets scanning + MCP for Claude Code (.claude, .mcp.json),
Cursor (.cursor) and Codex (.codex), and add a PostToolUse editor hook that
formats through scripts/agent-quality.sh.
- Add the opencode project config, a quality plugin that formats edited files,
and sonar-triage/quality-gates skills.
- Add CI jobs for ruff, typos, commitlint and a frontend-lint matrix across
desktop/main, libraries/base, sites/promo and sites/docs.
- Adopt typos repo-wide and fix the real typos it found (recieve, finialise,
Exipre, applcation, ...), excluding locales, migrations and generated output
in _typos.toml.
- Give ModalStack an erased callback shape so the typed createModal API still
typechecks through the shared state.
- Pin local toolchain versions in .mise.toml (node, pnpm, python, go, rust,
shellcheck, shfmt, hadolint, actionlint, ruff, gitleaks, typos).
- Route hook tools through scripts/run-tool.sh so a missing tool fails with an
actionable 'mise install' message instead of silently skipping.
- Add shellcheck, hadolint, actionlint, ruff (check+format), typos and mandatory
gitleaks to pre-commit; commitlint to commit-msg; server lint and cargo fmt
to pre-push.
- Enable gocognit/gocyclo/misspell in golangci-lint.
- Adopt ruff for server/dev-tools Python (formatting + lint).