This increases the number of workers to use when fetching translations
from Transifex from 5 (the default) to 12. While the Transifex CLI
allows up to 20 workers, using more workers results in frequent request
throttling, which hurts performance more than it improves it.
Instead of fetching the whole svn repo containing all current
dependencies into source, fetch them individually into subdirectories of
source.
Adds a wrapper script to each package to place the build output where
it's currently expected.
This allows adding and removing dependencies as well as changing origin
of those packages on a case by case basis.
It's recommended to run "git clean -dxf libraries/source" to free up
extra space and remove untracked files no longer covered by changes in
.gitignore.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Instead of using Perl to get the absolute path due to readlink -f
implementations differing behaviour use realpath. Since the inclusion
into coreutils this should be a valid alternative.
Also check for [[:space:]] instead of only \s as if that one is an issue
the others are as well.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
During the migration it apparently looked possibly useful at some point,
in the end it remained unused.
Further the clean-source-libs.sh doesn't handle the case where
build-source-libs.sh was invoked with --source-libs-dir.
Finally, when switching to support individual package this becomes very
complex to support.
For all the above reason remove the option.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Adding a hook to pre-commit to enforce a consistent style and remove the
hook check-yaml which only checks if a document is parsable and so
become redundant.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
The schema at https://json.schemastore.org/gitea-issue-forms.json
doesn't like empty titles, so just remove the key to the same effect as
a zero length string.
Add document start markers where they are missing.
Use a max line length of 100 as discussed with Dunedan.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Respecting the format of the tooltips of the other panels, include
a short name in bold on the first line of the tooltip to facilitate
a quick understanding of the action, and below, in normal font, a
description with relevant details.
The description of the patrol action is rewritten to make it more
understandable.
Fixes#7016
- Silence a MSVC warning in vulkan.cpp, refs #6987
- Document the patching of gl.h for macOS, from r26094
- Fix shellcheck warnings in the generation script
Currently all files adhere to the same formatting, let's codify it so it
stays like this in the future.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
The new script merges existing scripts for downloading translations and
SPIR-V shaders, and also exports game binaries from the latest nightly
build into the git repo.
This allows contributors, especially artists, to obtain a working build
of the game without learning how to build the game for Windows, refs #1814.
The fontbuilder2 README file was already partially formatted with
Markdown, but didn't indicate that via its file extension. This commit
changes that and improves the formatting of the README itself.
This removes the remaining bashisms and changes the shebang.
Also remove command chaining in subshells as this allows for comments
to go where they belong and shellcheck directives to be more specific.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
This entirely reverts ee3318309b and removes the [CLEANBUILD] feature,
which needed to be used without omission to be efficient.
Instead, in case of build failure, the CI automatically starts a
non-incremental second build by running `make clean` (or the MSBuild
equivalent) before retrying the build.
This enables some ruff rules for docstrings and comments. The idea is to
not enforce the presence of docstrings, but to ensure they are properly
formatted if they're present.
For comments this adds checks that they don't contain code and verify
the formatting of comments with "TODO" tags.
As part of this, some commented out code which hasn't been touch in the
past 10 years gets removed as well.
The rules enabled enabled by this are:
- check formatting of existing docstrings (D200-)
- check comments for code (ERA)
- check formatting of TODO tags (TD001, TD004-)
Change all non posix constructs except for stacked pushd/popd for the
sake of reviewability.
The reminder will be done in a separate commit.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
This explicitly uses UTF-8 encoding when reading or writing files with
Python. This is necessary as the default locale varies between
operating systems.
This enables ruff rules which check for code which can be simplified to
improve readability.
The additionally rules getting enabled by this are:
- remove unnecessary nesting of if-statements (SIM102)
- use contextlib.suppress() for no-op exception handling (SIM105)
- use enumerate() for counting in loops (SIM113)
- use context managers for opening files (SIM115)
This should speed up installation of pre-commit as part of the Gitea
Action a bit, as it caches the Python packages required for it.
The cache functionality of actions/setup-python is unsuitable for this
use case, as we don't have a file with requirements we want to use as
key. Instead, we just want to cache whatever is downloaded via pip from
PyPI and keep it for further invocations. This commit achieves that by
using the same cache key for every workflow run. The cache is being
updated even if pre-commit fails so we always keep the the Python
packages used for installing pre-commit cached.
The Windows autobuilder contains two built versions of wxWidgets. One
corresponds to the oldest supported version of the library, and is used
for CI. However, the nightly build should use a recent version of the
library, compiled with the same toolset as the main game.
This commit adapts the nightly-build pipeline to use the rebuilt recent
copy of wxWidgets.
This enables some ruff rules to check for ambiguous and dead Python
code, which might cause unintended side-effects.
The enabled rules are:
- a bunch of rules related to shadowing of builtin structures (A)
- a bunch of rules checking for unused arguments (ARG)
- a rule checking for useless expressions (B018)
- a rule checking for unbound loop variables (B023)
- a rule checking redefined function parameters (PLR1704)
In all the builds using precompiled headers, an update to libraries will
crash the CI, as those headers will become outdated. It is then
necessary to force a full rebuild of the game by cleaning up the
workspaces.
This commit allows this CI behavior to be triggered by specifying
[CLEANBUILD] in the first line of the commit message.
This will constitute an opportunity to inform users that they need to
clean their workspaces when pulling the update.