Files
lutris/Makefile
ItsAllAboutTheCode 860c369a53 Updating the mypy Python version check to be 3.10
Both the github workflow action and the Makefile was updated to target Python 3.10.
This is to make sure that when locally running `make check`, it matches the result of the workflow.
2026-02-17 18:21:53 -08:00

139 lines
3.3 KiB
Makefile

VERSION=`grep "__version__" lutris/__init__.py | cut -d" " -f 3 | sed 's|"\(.*\)"|\1|'`
GITBRANCH ?= master
# Default GPG key ID to use for package signing.
PPA_GPG_KEY_ID ?= 82D96E430A1F1C0F0502747E37B90EDD4E3EFAE4
PYTHON:=$(shell which python3)
PIP:=$(PYTHON) -m pip
all:
export GITBRANCH=master
debuild
debclean
unsigned:
export GITBRANCH=master
debuild -i -us -uc -b
debclean
# Build process for GitHub runners.
# Requires two environment variables related to package signing.
# PPA_GPG_KEY_ID
# Key ID used to sign the .deb package files.
# PPA_GPG_PASSPHRASE
# Decrypts the private key associated with GPG_KEY_ID.
#
# When running from a GitHub workflow. The above environment variables
# are passed in from .github/scripts/build-ubuntu.sh and that script
# receives those variables from the .github/workflows/publish-lutris-ppa.yml
# which receives them from the repository secrets.
github-ppa:
export GITBRANCH=master
# Automating builds for different Ubuntu codenames manipulates the
# version string, and so that lintian check is suppressed. Also note
# that all parameters after "--lintian-opts" are passed to lintian
# so that _must_ be the last parameter.
echo "y" | debuild -S \
-k"${PPA_GPG_KEY_ID}" \
-p"gpg --batch --passphrase ${PPA_GPG_PASSPHRASE} --pinentry-mode loopback" \
--lintian-opts --suppress-tags malformed-debian-changelog-version
build-deps-ubuntu:
sudo apt install devscripts debhelper dh-python meson
build:
gbp buildpackage --git-debian-branch=${GITBRANCH}
clean:
debclean
build-source: clean
gbp buildpackage -S --git-debian-branch=${GITBRANCH}
mkdir build
mv ../lutris_${VERSION}* build
release: build-source upload upload-ppa
test:
rm tests/fixtures/pga.db -f
nose2
cover:
rm tests/fixtures/pga.db -f
rm tests/coverage/ -rf
nose2 --with-coverage --cover-package=lutris --cover-html --cover-html-dir=tests/coverage
pgp-renew:
osc signkey --extend home:strycore
osc rebuildpac home:strycore --all
changelog-add:
EDITOR=vim dch -i
changelog-edit:
EDITOR=vim dch -e
upload:
scp build/lutris_${VERSION}.tar.xz anaheim:~/volumes/releases/
upload-ppa:
dput ppa:lutris-team/lutris build/lutris_${VERSION}*_source.changes
upload-staging:
dput --force ppa:lutris-team/lutris-staging build/lutris_${VERSION}*_source.changes
snap:
snapcraft clean lutris -s pull
snapcraft
req-python:
pip3 install PyYAML lxml requests Pillow setproctitle python-magic distro dbus-python types-requests \
types-PyYAML evdev PyGObject pypresence protobuf moddb
dev:
pip3 install ruff==0.12.1 mypy==1.16.1 mypy-baseline nose2
pip3 install pygobject-stubs --no-cache-dir --config-settings=config=Gtk3,Gdk3,Soup2
# ============
# Style checks
# ============
style:
ruff format . --check
format:
ruff check --select I --fix
ruff format .
# ===============
# Static analysis
# ===============
check: ruff_lint mypy syntax-compat po-check
ruff_lint:
ruff check .
syntax-compat:
python3 -m compileall -q lutris/
po-check:
@for f in po/*.po; do msgfmt --check "$$f" -o /dev/null; done
mypy:
mypy . --python-version 3.10 --install-types --non-interactive 2>&1 | mypy-baseline filter
mypy-reset-baseline: # Add new typing errors to mypy. Use sparingly.
mypy . --python-version 3.10--install-types --non-interactive 2>&1 | mypy-baseline sync
# =============
# Abbreviations
# =============
sc: style check
styles: style
checks: check