Skip to content

New version 2.0.0 - #36

Merged
ruscher merged 13 commits into
biglinux:mainfrom
ruscher:main
Oct 7, 2026
Merged

ruscher merged 13 commits into
biglinux:mainfrom
ruscher:main

Conversation

@ruscher

@ruscher ruscher commented Oct 7, 2026

Copy link
Copy Markdown
Member

No description provided.

ruscher added 13 commits October 7, 2026 11:00
The JSON catalogs belonged to the old shell-based Big-Config and are not
read by the GTK application. big-config becomes a symlink to the real
launcher instead of a byte-identical copy. Extend .gitignore so build
output, caches and editor backups cannot return to the repository.
- ui/metadata.py is the single source of the version (2.0.0) and lists
  Rafael Ruscher and Bruno Gonçalves as the authors and developers.
- biglinux-config --version prints the version without a display.
- Startup errors printed before GTK loads are translatable.
- PKGBUILD: fixed pkgver=2.0.0/pkgrel=1, source pinned to the v2.0.0
  tag of the canonical repository, real runtime dependencies (dconf,
  glib2, hicolor-icon-theme; xdg-utils was never used), minimum GTK,
  libadwaita and Python versions, test suite in check(), and
  precompiled bytecode for the root-owned application directory.
- AppStream: 2.0.0 release notes, developer, provides, translation
  domain, display and input requirements.
Real profiles exposed export failures that the tests did not cover:

- Absolute links into HOME (Discord Flatpak, Steam) made every export
  fail with "close the application". They are now stored as relative
  links that point at the same file after a restore.
- Links that leave HOME are left out and listed in the result instead
  of aborting the whole backup; sockets and pipes are skipped.
- Chromium/Electron SingletonLock/Socket/Cookie markers are never saved:
  they describe a running process and a restored copy makes the profile
  look in use on another computer.
- When HOME is reached through a symlink, every reset and export was
  refused as "outside your home folder"; ~ now expands to the real home.
- Exports that the importer would reject (file > 4 GiB, > 16 GiB total)
  fail before writing, with an explanation.
- has_skel() uses the same plan as the reset, so the UI never offers a
  BigLinux default that the reset would refuse.

Registry: shell history is no longer deleted by "program defaults",
the XFCE reset keeps the GTK 3 bookmarks shared by all GTK apps, Steam
backs up its settings and userdata instead of the installed games, and
GNOME Boxes no longer tries to archive virtual machine disks. Category
icons exist in the Adwaita theme.

Tests: every test now runs with a private HOME/XDG tree and without the
session bus; dconf tests refuse to run outside tools/check-dconf.sh; the
process-matching test works when /tmp is mounted noexec. Regression
tests cover each fix, and registry tests check that every reset path is
covered by the safety backup. Dead helpers and aliases were removed.
- One app_image() helper replaces four icon loaders: missing theme names
  fall back to a generic icon instead of GTK's broken-image placeholder
  (DE icons on Adwaita), and Flatpak icon files now show in the export
  list. The success badge uses an icon present in Adwaita.
- File icons in the restore dialog use GIcon fallback chains.
- Logging out after a desktop reset reports failures instead of doing
  nothing, uses budgie-session-quit (budgie-session --logout does not
  exist) and checks Budgie before GNOME.
- Opening the file manager reports launch errors.
- Reading a backup manifest can no longer leave the dialog spinning.
- Export: localized names, select-all reflects partial selections.
- Translatable strings with several arguments use named placeholders so
  translators can reorder them.
- The grid scrolls to the top when the category changes; has_skel is
  evaluated once per card, not on every hover.
- Screen readers get the selected category.
- Removed the unused ToastOverlay, getattr fallbacks, toggle_search and
  other unused widget API; the launcher is a single exec.
- tools/i18n.sh regenerates the template from the sources, merges every
  catalog without fuzzy guesses, drops obsolete entries and compiles the
  .mo files; --check fails when anything is stale or invalid.
- Existing translations of the strings that gained named placeholders
  were migrated in all catalogs, so none was lost.
- New strings are translated in pt_BR, pt and es; en mirrors the source.
- Placeholder PO headers were filled in, so msgfmt --check is silent.
- Tests pin the C locale, check named placeholders in pt_BR, and verify
  that version, URLs, desktop entries, launchers, README app count and
  catalogs agree.
The workflow only forwarded webhooks: nothing was tested, and curl
without --fail reported success even when the token was missing or
rejected. tools/ci.sh now runs the test suites (including isolated
dconf), validates translations, desktop entries, AppStream, shell
scripts and the PKGBUILD, builds the package from the exact commit with
the release PKGBUILD, checks it with namcap, installs it and starts it.
The same script runs locally with podman or docker. The BigLinux build
dispatch runs only after these checks pass, is skipped with a notice
when the token is not configured, and fails on HTTP errors.
- README describes the 2.0.0 application as tested: features, real
  installation paths (BigLinux repository or the PKGBUILD on Arch),
  requirements, usage, safety, Flatpak, translations, development,
  releases, troubleshooting and authors. Badges carry the real version,
  application count and number of translations; tests keep them true.
- New screenshots rendered from the application itself with BigLinux's
  /etc/skel defaults in a throwaway HOME (no personal data), in light and
  dark style, optimised to 185 kB in total.
- docs/SAFETY.md keeps the lasting technical content: scope, reset and
  backup rules, archive limits, transactions and manual recovery.
- AppStream lists the screenshots of the v2.0.0 tag.
- PKGBUILD: epoch=1, because the previous date versions (2026_10_02)
  sort above 2.0.0 and pacman would never upgrade to it; pango is a
  direct dependency. The Favorites category shows a star, the import
  dialog writes paths as ~/..., and the export privacy banner sits in the
  toolbar as libadwaita intends.
… thread

Every category change decoded each Flatpak icon file synchronously:
about 120 ms on the GTK thread for 55 cards. Registering the Flatpak
export folders with the icon theme lets GTK load the icons lazily and
at the right scale for HiDPI; populating the grid now takes about 15 ms.

tools/i18n.sh --check now ignores source line references, so editing
code without changing strings no longer fails CI; a new or changed
string still does.
On a noexec mount os.access(X_OK) is false even for a 0755 file: check
the launcher's mode bit instead. The process-matching test needs a
private executable; when no candidate directory allows execution it is
skipped with that reason rather than falling back to the shared
/usr/bin/sleep, which could match unrelated processes of the user.
Line numbers in the catalogs changed with every code edit and rippled
through all 33 translation files. File-only references keep the diffs
of the catalogs to real string changes.
GitHub artifacts reject ":" in file names, and the epoch puts one in
biglinux-config-1:2.0.0-1-any.pkg.tar.zst.
@ruscher
ruscher merged commit 7898456 into biglinux:main Oct 7, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant