* chore(clippy): enable and fix many stricter lints
These ensure that the codebase uses more idiomatic, performant, and
concise language constructions.
* chore: make non-Clippy compiler warnings also deny by default
* refactor: inherit Clippy lint config and Rust edition from workspace
This also ensures developers running `clippy lint` locally get the same
lints as during CI, especially when the Rust toolchain version is fixed
through a `rust-toolchain.toml` file.
* chore(clippy.toml): bump MSRV to 1.87
* perf(ci): use Turbo to schedule both `lint` and `test` tasks at once
* fix(ci): wait until service containers are initialized for tests
This is achieved by adding a health check to the containers, and
instructing the CI workflow to wait until the containers are healthy.
Not doing this wait risks spurious CI failures due to DB migrations
being applied before the DB even starts.
* chore(turbo): use locally installed schema in new Turbo override file
On the latest versions of Turbo, this ensures that the used schema is
always in sync with what's available in the installed Turbo version,
which is something that has already caused confusion to me before.
* feat: Organisations are now sorted alphabetically in dashboard and on user pages
* Use computed ref
---------
Co-authored-by: Prospector <prospectordev@gmail.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
* Fix random_projects route not returning the requested number of projects
* fix(labrinth): further improve random project route SQL query
* chore: fix typo in comment
* tweak(labrinth): more apparent and fast randomness for `random_projects_get`
* tweak(labrinth): even better random projects query
* chore: address formatting review
---------
Co-authored-by: Alejandro González <me@alegon.dev>
* fix(frontend): remove fixed height from ManySelect
Frontend development is not my passion, there might be a better fix.
I've tested my changes in all places that I found using the chganed components (ManySelect, ScrollablePanel):
- Changelog filters
- Version filters
- Download dialog
- Search filters
Fixes#2334
* Revert incorrect merge
* fix merge conflict
When an issue has been already handled by our part, and thus gets
closed, but affects many users and the fix takes a while to be rolled
out, it usually happens that those who notice the matter later on don't
notice previous reports and create duplicate issues.
Let's try to improve a little bit on that by not filtering out closed
issues in the links for checking whether the same issue was already
reported before. This should make it more obvious to users who follow
the link whether an issue for their problem already exists.
* fix(labrinth/billing): add Spain and Singapore to the list of countries for currency inferences
This should fix payments in those countries not going through with their
local currencies for products that do not have USD-only pricing.
* fix(labrinth/billing): tentative fix for subscription periods not updating
* chore(labrinth): fix typos, simplify out `remove_duplicates` func
* fix(labrinth): implement `capitalize_first` so that it can't panic on wide chars
* chore(labrinth): refactor out unneeded clone highlighted by nightly Clippy lints
* chore(labrinth): simplify `capitalize_first` implementation
* fix(labrinth): preserve ordering when deduplicating project field values
This addresses an unintended behavior change on
157647faf2778c74096e624aeef9cdb79539489c.
* fix(labrinth/tests): make `index_swaps` test run successfully
I wonder why we don't run these more often...
* refactor: rename `.env.example` files to `.env.local`, make local envs more consistent between frontend and backend
* chore(labrinth/.env.local): proper email verif. and password reset paths