* Translate po/en.po in es
100% translated source file: 'po/en.po'
on 'es'.
* Translate po/en.po in es
100% translated source file: 'po/en.po'
on 'es'.
---------
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
* Test coverage hardening and parallel-safe refactors
Add focused test coverage for under-tested operational paths, edge branches,
and make key table-driven suites parallel-safe. Also fixed flaky installer
test execution under repeated/parallel runs.
* chore: fix goimports ordering for golangci-lint
* Test(download): expand integration coverage for download paths
Add integration scenarios for force/pull repo updates, repo-only and skip semantics,
and direct AUR download/scanner coverage used by getpkgbuild and package preparation.
* Test(exe): relax systemd-run path assertion
Fix flaky TestBuildGitCmd by accepting an absolute systemd-run path while still
asserting the expected binary is used.
* Test(text): avoid race in color tests
Remove parallel execution from TestColorHash so global UseColor writes do not
overlap with color consumers in parallel tests and trigger race detector
failures.
* fix potential race conditions
Translate po/en.po in da
100% translated source file: 'po/en.po'
on 'da'.
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Replace vote-only sigmoid with a blended votes+popularity score in
aurSortByMetric. AUR's Popularity field (already stored and populated
from the API) is a time-decayed vote score that better reflects current
relevance than raw NumVotes alone.
Falls back to votes-only when popularity <= 0 (brand-new packages).
Uses the same sigmoid normalization pattern as the existing minVotes
constant (minPopularity = 0.5).
Side effect: AUR packages no longer artificially outscore repo packages
via historical vote counts when separateSources is disabled. Updated
two noseparatesources test expectations accordingly.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
* Translate po/en.po in fi
100% translated source file: 'po/en.po'
on 'fi'.
---------
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Translate po/en.po in de
100% translated source file: 'po/en.po'
on 'de'.
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
* support ini config
* support user ini config
* Update pkg/settings/ini.go
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Fixes#2759
The completion cache validation now checks if the file is empty and
automatically regenerates it. This prevents shell completions from
breaking when the cache file exists but is corrupted or empty.
Previously, NeedsUpdate() only checked file existence and age, but
didn't validate file contents. Empty cache files would be used as-is,
causing 'yay -Pc' to return no output and breaking shell completions.
Changes:
- Add file size check in NeedsUpdate() to detect empty cache files
- Add test case for empty file scenario
- Update function documentation
* Add all sortyby options
Previously, only 'name' was a supported sortby option. Now, all sortby
options are supported.
Whenever there is a tie, the metric is used as a tiebreaker (it is also
the default when sortby is not specified). The only behavior that
changed is that packages with the same metric are sorted oppositely when
sorting bottomUp. This was actually a bug in the previous implementation
which inverts the `cmpResult` for bottomUp which returns true if the
metrics are the same. According to the docs for Less
(https://pkg.go.dev/sort#Interface), Less(i, i) should be false (the
same element cannot sort before itself).
I mainly structured the code for efficiency by creating the sortby
function once rather than checking `separateSources` and `bottomUp`
every comparison, but I also think this improves readability compared to
having a switch-case in the comparison function.
* Fix separating sources on ties and improve test coverage
* Remove 'id' and 'baseid' in sortby options
Translate po/en.po in ca
100% translated source file: 'po/en.po'
on 'ca'.
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Co-authored-by: Jo <git@jguer.space>
* Translate po/en.po in hu
100% translated source file: 'po/en.po'
on 'hu'.
* Translate po/en.po in hu
100% translated source file: 'po/en.po'
on 'hu'.
* Translate po/en.po in hu
100% translated source file: 'po/en.po'
on 'hu'.
---------
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
* Translate po/en.po in ko
100% translated source file: 'po/en.po'
on 'ko'.
* Translate po/en.po in ko
100% translated source file: 'po/en.po'
on 'ko'.
* Translate po/en.po in ko
100% translated source file: 'po/en.po'
on 'ko'.
---------
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>