Skip to content

Releases: o-murphy/ebalistyka

eBalistyka 0.1.17

05 Jun 01:01
040d64c

Choose a tag to compare

Fixed

  • Sight line look angle — sight line on the trajectory chart now correctly follows the look angle (h = d × tan(θ)); previously always drawn horizontally at h = 0

Changed

  • Flutter — default version bumped to 3.44.1 across all workflows and in flatpak/flutter.version
  • build-flatpak.yml - removed checkout step
  • packages/bclibc_ffi (calculator.dart): Calculator._toBcShotProps() replaced with thin field mapper _toBcShot() — Coriolis trig (_toCoriolis: sin/cos lat/az, range/cross offsets) and atmosphere density (_toAtmo) removed from Dart; all physics conversion delegated to BCLIBC_Shot::to_shot_props() in C++ (Step 3a of bclibc-wrapper-consolidation)
  • packages/bclibc_ffi (bclibc_ffi.dart): added BcShot Dart value class, _FillNativeShot extension, and BcLibC.*Shot() API methods (findApexShot, findMaxRangeShot, findZeroAngleShot, integrateShot, integrateAtShot)
  • packages/bclibc_ffi (bclibc_bindings.g.dart): added BCShot native struct and BCLIBCFFI_*_shot lookup bindings (manually updated; regenerate with dart run ffigen --config ffigen.yaml after building bclibc)
  • external/bclibc submodule bumped to caf42e0 — adds BCShot C struct and BCLIBCFFI_*_shot() entry points to bclibc_ffi.h; BcShotProps / BCLIBCFFI_* retained for backwards compatibility; Vacuum handled correctly (pressure_hpa == 0 → zero density, no drag)
  • Update update_sheet.dart and update_checker.dart
    • Add winget installer detection, and display command to get app update

Full Changelog: v0.1.16...v0.1.17

eBalistyka 0.1.16

28 May 09:56
907835a

Choose a tag to compare

Changed

  • App repo name — slug changed from o-murphy/ebalistyka-app to o-murphy/ebalistyka to unify the app ID across all packaging formats; updated repoSlug constant in lib/shared/constants/app_info.dart and all workflow / CHANGELOG links
  • Flutter — default version bumped to 3.44.0 across all workflows
  • flutpak — bumped to v0.4.0-beta.4; generates Flathub-compatible manifest and generated-sources.json; icon config in pubspec.yaml updated to reference app/share/icons/ at all sizes (16 → 1024 px)
  • App icons — regenerated; icon and shared assets (metainfo, desktop, icons) moved to app/share/ and reused across all packaging tools (AUR, deb, RPM, AppImage, Flatpak, Snap); Android launcher icons, Android/iOS/macOS/web splash images all regenerated from the new source
  • objectboxobjectbox_flutter_libs bumped to 5.3.2; Flatpak manifest, patch, and flutpak config updated accordingly; CRLF line endings in the 5.3.2 pub.dev archive handled via strip_trailing_cr: true (injects a sed -i 's/\r//' step before patching)

Added

  • app/share/ — canonical location for FreeDesktop assets shared by all packaging formats:
    • app/share/applications/io.github.o_murphy.ebalistyka.desktop (moved from flatpak/)
    • app/share/metainfo/io.github.o_murphy.ebalistyka.metainfo.xml (moved from flatpak/ and aur/)
    • app/share/icons/hicolor/{16,32,64,128,256,512,1024}x.../io.github.o_murphy.ebalistyka.png
  • scripts/ci-common.sh — shared CI helpers: set_build_metadata, set_arch_suffix, artifact-name derivation; sourced by all build workflows
  • scripts/copy-icons.sh — copies icons from app/share/icons/ into package staging directories; eliminates duplicate icon copies in aur/, deb/, etc.
  • scripts/package-flatpak.sh — new Flatpak packaging script exposing reusable shell functions (install_flatpak_builder, lint_flatpak_manifest, lint_flatpak_repo, export_flatpak_bundle) and a local_build entry point for full local reproduce of the CI pipeline
  • flatpak/flathub.json — Flathub submission metadata
  • flatpak/patches/flutter/shared.sh.patch — Flutter SDK patch applied by flatpak-builder at build time
  • flatpak/.gitignore — ignores flatpak/generated/ and builddir//repo/ build artifacts

Removed

  • scripts/build-android-aab.sh — merged into build-android.sh (--target aab|apk)
  • scripts/setup-linux-deps.sh — no longer needed; deps handled per-workflow
  • scripts/update-flathub.sh, scripts/update-sources.sh — replaced by flutpak generate
  • flatpak/generated-sources.json — now generated at build time by flutpak generate; not committed
  • flatpak/io.github.o_murphy.ebalistyka.metainfo.xml — canonical copy moved to app/share/metainfo/
  • aur/ebalistyka.desktop, aur/icon.png, aur/io.github.o_murphy.ebalistyka.metainfo.xml — assets now sourced from app/share/

Packaging layout

  • aur/, deb/, rpm/, snap/, winget/ file trees moved under packaging/ (e.g. packaging/aur/PKGBUILD, packaging/snap/snapcraft.yaml, packaging/winget/*.yaml)
  • All packaging scripts updated to pull icons and metadata from app/share/ instead of format-specific copies

CI / Distribution

  • Androidbuild-aab.yml + build-apk.yml merged into build-android.yml; target selected via --target aab|apk flag in scripts/build-android.sh
  • Linux packagesbuild-appimage.yml renamed to build-linux-package.yml; build-deb.yml and build-rpm.yml folded in as matrix jobs; reduces workflow count and consolidates Linux packaging triggers
  • Flatpak — reworked CI using o-murphy/flutpak composite actions:
    • generate job separated from build job; manifest + sources uploaded as artifact and shared between matrix build jobs
    • build job uses o-murphy/flutpak/.github/actions/build-flatpak@… composite action (no more inline --privileged container); supports amd64 + arm64 matrix on every PR
    • download-artifact upgraded @v4 → @v8; upload-artifact upgraded @v4 → @v7
    • Artifact names include arch suffix to avoid collision when triggered via workflow_call
    • Flatpak release publishing temporarily disabled until pipeline is fully verified
  • pin-flatpak-manifest.yml — deleted; manifest generation is now fully automated by flutpak generate
  • publish-flathub.yml — updated to use flutpak generate; no longer commits generated-sources.json
  • PR summary — replaced per-workflow inline summary scripts with a shared .github/actions/pr-summary composite action
  • release.yml — reworked to call build-android.yml, build-linux-package.yml, build-flatpak.yml, build-snap.yml, build-portable.yml as workflow_call with consistent arch/tag/retention_days inputs

Fixed

  • Flatpak — objectbox 5.3.2 patchobjectbox_flutter_libs 5.3.2 ships linux/CMakeLists.txt with CRLF line endings; patch(1) failed even with --ignore-whitespace; fixed by using strip_trailing_cr: true in the flutpak config, which strips \r via sed before applying the patch
  • Flatpak — correct HEAD SHA in PR builds — use github.event.pull_request.head.sha instead of github.sha (which points to the synthetic merge commit) so flutpak generate --commit pins the actual feature branch tip
  • Flatpak — artifact name collisionworkflow_call from release.yml now passes arch to build-flatpak.yml; artifact name includes arch suffix, preventing overwrite when both amd64 and arm64 are built
  • Flatpak local build — dbus-run-session conflict_dbus_run helper skips dbus-run-session when DBUS_SESSION_BUS_ADDRESS is already set (desktop session), preventing FUSE document-portal mount conflict
  • Flatpak local build — FLATPAK_USER_DIR in sandbox — all flatpak run org.flatpak.Builder invocations now pass --env=FLATPAK_USER_DIR=$HOME/.local/share/flatpak so flatpak-builder-lint inside the sandbox finds the user-installed flathub remote instead of the empty per-app data dir
  • Flatpak local build — rofiles-fuse failure — local flatpak-builder invocation uses --disable-rofiles-fuse; flathub-build wrapper does not support this flag and was replaced with a direct flatpak run --command=flatpak-builder call
  • Flatpak local build — non-fatal manifest lint — manifest lint failure (e.g. flathub user refs not yet populated) prints a warning but does not abort the build; real manifest errors surface at flatpak-builder time
  • Flatpak local build — non-fatal repo lint — repo lint failures (appstream-external-screenshot-url, appstream-screenshots-not-mirrored-in-ostree) are Flathub CDN requirements irrelevant for local dev builds; made non-fatal with a clear warning

Full Changelog: v0.1.15-beta.1...v0.1.16

eBalistyka 0.1.15

19 May 19:30
1ae72c0

Choose a tag to compare

CI / Distribution

  • Flatpak — Reworked CI builds: removed the need for --privileged containers, now building directly via flatpak-builder --sandbox --user; added amd64 + arm64 matrix builds for every PR
  • Flatpakgenerated-sources.json is now automatically generated and committed to main on every release tag (for Flathub)
  • Flatpak — Added OARS rating and metadata required for Flathub submission
  • Snap — Added amd64 + arm64 matrix builds for PR builds (same approach as Flatpak)
  • Winget — Added publishing support for Windows Package Manager
  • AUR — Fixed GPG signing in publish-aur.yml
  • CI — Unified artifact retention period to 2 days; upgraded CI action versions

Full Changelog: v0.1.15-beta.1...v0.1.15

eBalistyka 0.1.15-beta.1

19 May 18:25
305c6b4

Choose a tag to compare

Pre-release

Full Changelog: v0.1.14...v0.1.15-beta.1

eBalistyka 0.1.14

12 May 10:50
7b15d6f

Choose a tag to compare

Changed

  • flatpak publish — publishing to self-hosted repo

Full Changelog: v0.1.13...v0.1.14

eBalistyka 0.1.13

11 May 08:36

Choose a tag to compare

Fixed

  • FilePicker API migration — replaced broken FilePicker.platform.* calls with the static FilePicker.* API introduced in file_picker@11.0.0 (ebcp_service.dart, a7p_service.dart)

Changed

  • file_picker updated — upgraded to file_picker@11.0.2; uses XDG portal (org.freedesktop.portal.FileChooser) exclusively on Linux
  • flatpak manifest — aligned icon filename and finish-args to be compatible with Flathub requirements
  • flatpak runtime — bumped org.gnome.Platform from 48 to 49 (GNOME 48 is end-of-life since March 24, 2026)

Removed

  • zenity workarounds — removed; file_picker@11.0.x uses only the XDG portal backend, so zenity is no longer needed

Full Changelog: v0.1.12...v0.1.13

eBalistyka 0.1.12

07 May 16:35

Choose a tag to compare

Changed

  • Publishng Flow - publishing to Snapcraft and AUR

Full Changelog: v0.1.11-dev...v0.1.12

eBalistyka 0.1.11-dev

07 May 14:27

Choose a tag to compare

eBalistyka 0.1.11-dev Pre-release
Pre-release

eBalistyka 0.1.10-dev

07 May 12:12
63e5c6b

Choose a tag to compare

eBalistyka 0.1.10-dev Pre-release
Pre-release

Added

  • Linux Snap package.snap builds for x86_64 and arm64; published to Snap Store on release (stable / beta channel); auto-updates via Snap Store; in-app update sheet links to Snap Store for snap installs
  • Linux Flatpak package.flatpak builds for x86_64 and arm64

Full Changelog: v0.1.9-dev...v0.1.10-dev

eBalistyka 0.1.9-dev

06 May 20:25
3deb399

Choose a tag to compare

eBalistyka 0.1.9-dev Pre-release
Pre-release

Added

  • Android OTA update — sideload APK updates directly from GitHub Releases without opening the browser
    • Detects the correct ABI-specific APK (arm64, armeabi-v7a, x86_64) via Abi.current(); falls back to universal APK, then "View Release" if no APK asset is found
    • Download progress bar and installing state shown in the update bottom sheet
    • Cancel always available — dismissing the sheet cancels the download
  • Help dialogs - reusable markdown-based help dialogs
    • Added help dialogs for screens: shot info, my profiles
    • Added help dialogs for collection screens: ammo, weapon and sights collections
    • Added help dialogs for user's data screens: my ammo, my sights screens
    • Added help dialogs for data table editor screens: multi bc, custom drag and powder sensitivity
    • Added help dialogs for wizard screens: sight, weapon, ammo

Changed

  • Prerelease updates — long-press "Check for updates" tile to search for prerelease builds; a warning sheet is shown before proceeding so the user acknowledges the risk
  • Help button icon - changed help button icon
  • ReticleView refactor — extracted _ReticleGeometry, _ReticleComposer, _ReticleStack as standalone classes; showAdjLines is now non-nullable (bool, default true); geometry.targetScale() used for target scaling
  • Code Quality #15 — naming convention sweep across 14 screen/widget files:
    • _buildXxx() builder methods extracted as standalone _PascalCase widget classes (_ReticleStack, _TopBlock, _AnglesInfoTile, _SideControlFab, _AdjustmentsDisplayEmpty, _BcText etc.)
    • nameCtrl/vendorCtrlnameController/vendorController in WizardFormMixin and all wizard screens
    • Event handler callbacks renamed to _onXxx pattern (_onDragTableTap, _onPowderSensTableTap, _onImportFromFile, _onAddTap)
    • // ── Widgets ── section separator added to 5 files missing it
    • Hard-coded 'Ammo image'l10n.ammoImage (new l10n key EN/UK)

Full Changelog: v0.1.8...v0.1.9-dev