Merge branch 'efroemling:main' into main

This commit is contained in:
Loup 2024-12-24 15:15:21 +05:30 committed by GitHub
commit 5d2b363cc9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 60 additions and 50 deletions

48
.efrocachemap generated
View File

@ -4103,22 +4103,22 @@
"build/assets/windows/Win32/ucrtbased.dll": "bfd1180c269d3950b76f35a63655e9e1",
"build/assets/windows/Win32/vc_redist.x86.exe": "15a5f1f876503885adbdf5b3989b3718",
"build/assets/windows/Win32/vcruntime140d.dll": "865b2af4d1e26a1a8073c89acb06e599",
"build/prefab/full/linux_arm64_gui/debug/ballisticakit": "7b3d63941d9fa6824cd495a76a2b22e8",
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "f156725c4d4225f98862ef005401c0ee",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "a3347cdc1a4f0bfad79645d1a4684f50",
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "9ba8100133ce9fe51cf04b8f43c458b6",
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "bc9e2a7fa797d8e1defc4baa4b7cbc4f",
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "8d1654b2e246359a24d2675d108213ce",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "e4a5ff44ae13ab883b338e8d67ef4a4e",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "e0271f9b10935bda462768bdd741171f",
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "0e1d189b5770b5e3be4af2d774110b96",
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "0a8dc7ec29d7b2d8adad0584bea36a77",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "63107e2b4e759aa760840a4a6b25cf97",
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "c44a8a9a4d39b7071bbb3699388e72d1",
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "b300b1ac073743dd181f89ae2a6116a1",
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "9c3c4c0890fcd2f911db4812b1feb64c",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "ad3861231c0d809f71380b6c1f0fae66",
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "4cfa78ebc61d065974d4b92183f97b20",
"build/prefab/full/linux_arm64_gui/debug/ballisticakit": "e22300fab655f96dae4021fa82cf5130",
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "a585418907ebcd55788fc7522293055d",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "58e5c912b710cb61600f3ad82efd17e1",
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "867fc8d0171facc2791323b4a2fc46fc",
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "d2f9014578a6d5eca3c345b7c9470812",
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "56d41454f04299cfa455aba882028cc1",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "21a9ef40c5cd663a29dc8c24c2ff0f95",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "29e757036b87bef6ce6d68203bda9efb",
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "66dde4c6865cfc5b8de8369b92c4a103",
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "55f347328de6f3e2c8f2dc9749b57436",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "0d1dbc0d04f264ceddb3ad6803105bd9",
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "12e891f298f604be7592b7c7ed5b8479",
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "30cb8ee5ebd69d98a3bd625774d19bf0",
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "e788895a7c94af2cb7817c02e061c429",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "92a3afc186b9031c7ff91ce2a6800ce7",
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "7e947dea1b10297b441ffc829943f437",
"build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "c8c1f174ed35992eb71bf1ff22787f4e",
"build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "67e1e5286f3fe64c9935e0e22d3fe443",
"build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "c8c1f174ed35992eb71bf1ff22787f4e",
@ -4131,14 +4131,14 @@
"build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "1c2d42d75e8f975514b2e30f5602516d",
"build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "b39713b9f3a9102fefff1f6d62a9fd82",
"build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "1c2d42d75e8f975514b2e30f5602516d",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "d20558dc79b1f464b1f5da827bd78e79",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "5bca0252f3d7e608b9f541197d944baa",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "4702a62d35c9cd754246f34b421a8b67",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "222878dda88f0277c3a2c0f4cc53c3dd",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "8de8c0b23fc58cf5e2647ea3ce27d7e6",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "6a2e4a3c09ca4b5fad3025428cc96f3e",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "82eba4f4dcbe6d5fc135dd52b1ae0c65",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "b4f58ebad5e593c9f1000ea6e3408ec5",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "20ffab975711f6865ea4627a1e5ed377",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "06124d291e394169ff2a50bef10f832d",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "8d9d7fe4ab396118ef3ef2721372c9cf",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "18890dfa2a926a787d46f00a974eae95",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "d597aae4c2924f031d5514386ec84a63",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "04ab6918264677f49f3add66cdc722e8",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "2a4f8529288c1e8e584f8196085b840b",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "02da45dd942ae7703304750f2f6c05c1",
"src/assets/ba_data/python/babase/_mgen/__init__.py": "f885fed7f2ed98ff2ba271f9dbe3391c",
"src/assets/ba_data/python/babase/_mgen/enums.py": "794d258d59fd17a61752843a9a0551ad",
"src/ballistica/base/mgen/pyembed/binding_base.inc": "06042d31df0ff9af96b99477162e2a91",

View File

@ -1,4 +1,4 @@
### 1.7.37 (build 22142, api 9, 2024-12-21)
### 1.7.37 (build 22143, api 9, 2024-12-22)
- Bumping api version to 9. As you'll see below, there's some UI changes that
will require a bit of work for any UI mods to adapt to. If your mods don't
touch UI stuff at all you can simply bump your api version and call it a day.

View File

@ -6,7 +6,7 @@ mypy==1.14.0
pbxproj==4.2.1
pdoc==15.0.1
pur==7.3.3
pylint==3.3.2
pylint==3.3.3
pylsp-mypy==0.6.9
pytest==8.3.4
python-daemon==3.1.2

View File

@ -44,8 +44,13 @@ class LanguageSubsystem(AppSubsystem):
(which may differ from locale if the user sets a language, etc.)
"""
env = _babase.env()
assert isinstance(env['locale'], str)
return env['locale']
locale = env.get('locale')
if not isinstance(locale, str):
logging.warning(
'Seem to be running in a dummy env; returning en_US locale.'
)
locale = 'en_US'
return locale
@property
def language(self) -> str:

View File

@ -53,7 +53,7 @@ if TYPE_CHECKING:
# Build number and version of the ballistica binary we expect to be
# using.
TARGET_BALLISTICA_BUILD = 22142
TARGET_BALLISTICA_BUILD = 22143
TARGET_BALLISTICA_VERSION = '1.7.37'

View File

@ -39,7 +39,7 @@ auto main(int argc, char** argv) -> int {
namespace ballistica {
// These are set automatically via script; don't modify them here.
const int kEngineBuildNumber = 22142;
const int kEngineBuildNumber = 22143;
const char* kEngineVersion = "1.7.37";
const int kEngineApiVersion = 9;

View File

@ -455,6 +455,7 @@ def _dirty_dep_check(
return curstate
# Ok; there's no current state for this file.
#
# First lets immediately mark it as clean so if a dependency of ours
# queries it we won't loop infinitely. (If we're actually dirty that
# will be reflected properly once we're done).
@ -494,7 +495,8 @@ def _dirty_dep_check(
dirty = True
break
# Cache and return our dirty state..
# Cache and return our dirty state.
#
# Note: for fast mode we limit to recursion==0 so we only write when
# the file itself is being directly visited.
if recursion == 0:
@ -526,9 +528,9 @@ def _run_pylint(
if result != 0:
raise CleanError(f'Pylint failed for {result} file(s).')
# Sanity check: when the linter fails we should always be failing too.
# If not, it means we're probably missing something and incorrectly
# marking a failed file as clean.
# Sanity check: when the linter fails we should always be
# failing too. If not, it means we're probably missing something
# and incorrectly marking a failed file as clean.
if run.linter.msg_status != 0 and result == 0:
raise RuntimeError(
'Pylint linter returned non-zero result'
@ -562,8 +564,8 @@ def _apply_pylint_run_to_cache(
from efrotools.project import getprojectconfig
# First off, build a map of dirtyfiles to module names
# (and the corresponding reverse map).
# First off, build a map of dirtyfiles to module names (and the
# corresponding reverse map).
paths_to_names: dict[str, str] = {}
names_to_paths: dict[str, str] = {}
for fname in allfiles:
@ -581,17 +583,19 @@ def _apply_pylint_run_to_cache(
names_to_paths[val] = key
# If there's any cyclic-import errors, just mark all deps as dirty;
# don't want to add the logic to figure out which ones the cycles cover
# since they all seems to appear as errors for the last file in the list.
# don't want to add the logic to figure out which ones the cycles
# cover since they all seems to appear as errors for the last file
# in the list.
cycles: int = run.linter.stats.by_msg.get('cyclic-import', 0)
have_dep_cycles: bool = cycles > 0
if have_dep_cycles:
print(f'Found {cycles} cycle-errors; keeping all dirty files dirty.')
# Update dependencies for what we just ran.
# A run leaves us with a map of modules to a list of the modules that
# imports them. We want the opposite though: for each of our modules
# we want a list of the modules it imports.
#
# A run leaves us with a map of modules to a list of the modules
# that imports them. We want the opposite though: for each of our
# modules we want a list of the modules it imports.
reversedeps = {}
# Make sure these are all proper module names; no foo.bar.__init__ stuff.
@ -614,10 +618,10 @@ def _apply_pylint_run_to_cache(
# Add a few that this package itself triggers.
ignored_untracked_deps |= {'pylint.lint', 'astroid.modutils', 'astroid'}
# EW; as of Python 3.9, suddenly I'm seeing system modules showing up
# here where I wasn't before. I wonder what changed. Anyway, explicitly
# suppressing them here but should come up with a more robust system
# as I feel this will get annoying fast.
# EW; as of Python 3.9, suddenly I'm seeing system modules showing
# up here where I wasn't before. I wonder what changed. Anyway,
# explicitly suppressing them here but should come up with a more
# robust system as I feel this will get annoying fast.
ignored_untracked_deps |= {
're',
'importlib',
@ -682,6 +686,7 @@ def _apply_pylint_run_to_cache(
}
# Special case:
#
# Ignore generated dummy-modules (we don't directly check those anymore
# so they'll be listed as external).
if os.path.exists('build/dummymodules'):
@ -719,17 +724,17 @@ def _apply_pylint_run_to_cache(
depsval = [names_to_paths[dep] for dep in deps[fmod]]
cache.entries[fname]['deps'] = depsval
# Let's print a list of modules with no detected deps so we can make sure
# this is behaving.
# Let's print a list of modules with no detected deps so we can make
# sure this is behaving.
if no_deps_modules:
if bool(False):
print(
'NOTE: no dependencies found for:', ', '.join(no_deps_modules)
)
# Ok, now go through all dirtyfiles involved in this run.
# Mark them as either errored or clean depending on whether there's
# error info for them in the run stats.
# Ok, now go through all dirtyfiles involved in this run. Mark them
# as either errored or clean depending on whether there's error info
# for them in the run stats.
# Once again need to convert any foo.bar.__init__ to foo.bar.
stats_by_module: dict[str, Any] = {