diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 00059617..77868c1c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,18 @@ -syntax: +variables: + GIT_SUBMODULE_STRATEGY: recursive + +stages: + - check + +code-quality: + image: registry.gitlab.com/craigbarnes/dockerfiles/lua-testing + interruptible: true + stage: check + retry: + max: 2 + when: + - runner_system_failure + - stuck_or_timeout_failure script: - - git submodule init - - git submodule sync - - git submodule update - - luac5.1 -s -p mods/*/*.lua + - luarocks install luacheck + - luacheck mods diff --git a/.gitmodules b/.gitmodules index 8f939c3b..fc6e0c6c 100755 --- a/.gitmodules +++ b/.gitmodules @@ -1,67 +1,67 @@ [submodule "mods/illuna"] path = mods/illuna - url = https://git.tchncs.de/Illuna-Minetest/illuna.git + url = ../../Illuna-Minetest/illuna.git [submodule "mods/wine"] path = mods/wine url = https://notabug.org/TenPlus1/wine [submodule "mods/death_messages"] path = mods/death_messages - url = https://git.tchncs.de/Illuna-Minetest/death_messages.git + url = ../../Illuna-Minetest/death_messages.git [submodule "mods/worldedit"] path = mods/worldedit url = https://github.com/Uberi/Minetest-WorldEdit [submodule "mods/xdecor"] path = mods/xdecor - url = https://git.tchncs.de/Illuna-Minetest/xdecor.git + url = ../../Illuna-Minetest/xdecor.git [submodule "mods/wardrobe"] path = mods/wardrobe - url = https://git.tchncs.de/Illuna-Minetest/wardrobe.git + url = ../../Illuna-Minetest/wardrobe.git [submodule "mods/ctravelnet"] path = mods/ctravelnet - url = https://git.tchncs.de/Illuna-Minetest/ctravelnet.git + url = ../../Illuna-Minetest/ctravelnet.git [submodule "mods/cottages"] path = mods/cottages - url = https://git.tchncs.de/Illuna-Minetest/cottages.git/ + url = ../../Illuna-Minetest/cottages.git/ [submodule "mods/bows"] path = mods/bows - url = https://git.tchncs.de/Illuna-Minetest/bows + url = ../../Illuna-Minetest/bows branch = master [submodule "mods/pkarcs"] path = mods/pkarcs - url = https://git.tchncs.de/Illuna-Minetest/pkarcs + url = ../../Illuna-Minetest/pkarcs [submodule "mods/columnia"] path = mods/columnia - url = https://git.tchncs.de/Illuna-Minetest/columnia + url = ../../Illuna-Minetest/columnia [submodule "mods/homedecor_modpack"] path = mods/homedecor_modpack - url = https://git.tchncs.de/Illuna-Minetest/homedecor_modpack + url = ../../Illuna-Minetest/homedecor_modpack [submodule "mods/magical_potion"] path = mods/magical_potion - url = https://git.tchncs.de/Illuna-Minetest/magical_potion + url = ../../Illuna-Minetest/magical_potion [submodule "mods/mtfoods"] path = mods/mtfoods url = https://github.com/Philipbenr/mtfoods [submodule "mods/mtcandy"] path = mods/mtcandy - url = https://git.tchncs.de/Illuna-Minetest/mtcandy + url = ../../Illuna-Minetest/mtcandy [submodule "mods/teleport_potion"] path = mods/teleport_potion - url = https://git.tchncs.de/Illuna-Minetest/teleport_potion + url = ../../Illuna-Minetest/teleport_potion [submodule "mods/halloween_mobs"] path = mods/halloween_mobs - url = https://git.tchncs.de/Illuna-Minetest/halloween_mobs + url = ../../Illuna-Minetest/halloween_mobs [submodule "mods/ethereal"] path = mods/ethereal - url = https://git.tchncs.de/Illuna-Minetest/ethereal + url = ../../Illuna-Minetest/ethereal [submodule "mods/technic"] path = mods/technic - url = https://git.tchncs.de/Illuna-Minetest/technic + url = ../../Illuna-Minetest/technic [submodule "mods/markers"] path = mods/markers url = https://github.com/Sokomine/markers [submodule "mods/golems"] path = mods/golems - url = https://git.tchncs.de/Illuna-Minetest/golems + url = ../../Illuna-Minetest/golems [submodule "mods/princess"] path = mods/princess url = https://github.com/pithydon/princess @@ -76,7 +76,7 @@ url = https://github.com/minetest-mods/character_creator [submodule "mods/illuna_ethereal"] path = mods/illuna_ethereal - url = https://git.tchncs.de/Illuna-Minetest/illuna_ethereal + url = ../../Illuna-Minetest/illuna_ethereal [submodule "mods/bacon"] path = mods/bacon url = https://github.com/mootpoint/bacon @@ -85,19 +85,19 @@ url = https://github.com/duane-r/geomoria [submodule "mods/integral"] path = mods/integral - url = https://git.tchncs.de/Illuna-Minetest/integral + url = ../../Illuna-Minetest/integral [submodule "mods/illuna_extras"] path = mods/illuna_extras - url = https://git.tchncs.de/Illuna-Minetest/illuna_extras + url = ../../Illuna-Minetest/illuna_extras [submodule "mods/underworlds"] path = mods/underworlds - url = https://git.tchncs.de/Illuna-Minetest/underworlds + url = ../../Illuna-Minetest/underworlds [submodule "mods/caverealms"] path = mods/caverealms - url = https://git.tchncs.de/Illuna-Minetest/caverealms + url = ../../Illuna-Minetest/caverealms [submodule "mods/fun_caves"] path = mods/fun_caves - url = https://git.tchncs.de/Illuna-Minetest/fun_caves + url = ../../Illuna-Minetest/fun_caves [submodule "mods/hopper"] path = mods/hopper url = https://github.com/minetest-mods/hopper @@ -121,7 +121,7 @@ url = https://github.com/minetest-mods/torches [submodule "mods/steel"] path = mods/steel - url = https://git.tchncs.de/Illuna-Minetest/steel + url = ../../Illuna-Minetest/steel [submodule "mods/replacer"] path = mods/replacer url = https://github.com/Sokomine/replacer @@ -133,13 +133,13 @@ url = https://github.com/SmallJoker/names_per_ip [submodule "mods/mobs_more_monsters"] path = mods/mobs_more_monsters - url = https://git.tchncs.de/Illuna-Minetest/mobs_more_monsters + url = ../../Illuna-Minetest/mobs_more_monsters [submodule "mods/moreores"] path = mods/moreores - url = https://git.tchncs.de/Illuna-Minetest/moreores + url = ../../Illuna-Minetest/moreores [submodule "mods/wiki"] path = mods/wiki - url = https://git.tchncs.de/Illuna-Minetest/wiki + url = ../../Illuna-Minetest/wiki [submodule "mods/mg_villages"] path = mods/mg_villages url = https://github.com/Sokomine/mg_villages @@ -148,7 +148,7 @@ url = https://github.com/Sokomine/handle_schematics [submodule "mods/unified_inventory"] path = mods/unified_inventory - url = https://git.tchncs.de/Illuna-Minetest/unified_inventory + url = ../../Illuna-Minetest/unified_inventory [submodule "modpacks/mydoors"] path = modpacks/mydoors url = https://github.com/minetest-mods/mydoors @@ -157,55 +157,55 @@ url = https://github.com/SmallJoker/sneak_glitch [submodule "mods/mycastle"] path = mods/mycastle - url = https://git.tchncs.de/Illuna-Minetest/mycastle + url = ../../Illuna-Minetest/mycastle [submodule "mods/mesecons"] path = mods/mesecons - url = https://git.tchncs.de/Illuna-Minetest/mesecons + url = ../../Illuna-Minetest/mesecons [submodule "mods/other_worlds"] path = mods/other_worlds - url = https://git.tchncs.de/Illuna-Minetest/other_worlds + url = ../../Illuna-Minetest/other_worlds [submodule "mods/loud_walking"] path = mods/loud_walking - url = https://git.tchncs.de/Illuna-Minetest/loud_walking + url = ../../Illuna-Minetest/loud_walking [submodule "mods/playerskins"] path = mods/playerskins - url = https://git.tchncs.de/Illuna-Minetest/playerskins + url = ../../Illuna-Minetest/playerskins [submodule "mods/dmobs"] path = mods/dmobs - url = https://git.tchncs.de/Illuna-Minetest/dmobs + url = ../../Illuna-Minetest/dmobs [submodule "mods/mobs_animal"] path = mods/mobs_animal - url = https://git.tchncs.de/Illuna-Minetest/mobs_animal + url = ../../Illuna-Minetest/mobs_animal [submodule "mods/mobs_monster"] path = mods/mobs_monster - url = https://git.tchncs.de/Illuna-Minetest/mobs_monster + url = ../../Illuna-Minetest/mobs_monster [submodule "mods/mobs_redo"] path = mods/mobs_redo - url = https://git.tchncs.de/Illuna-Minetest/mobs_redo + url = ../../Illuna-Minetest/mobs_redo [submodule "mods/basic_robot"] path = mods/basic_robot - url = https://git.tchncs.de/Illuna-Minetest/basic_robot + url = ../../Illuna-Minetest/basic_robot [submodule "mods/irc"] path = mods/irc - url = https://git.tchncs.de/Illuna-Minetest/irc + url = ../../Illuna-Minetest/irc [submodule "mods/playereffects"] path = mods/playereffects - url = https://git.tchncs.de/Illuna-Minetest/playereffects + url = ../../Illuna-Minetest/playereffects [submodule "mods/chat3"] path = mods/chat3 - url = https://git.tchncs.de/Illuna-Minetest/chat3 + url = ../../Illuna-Minetest/chat3 [submodule "mods/protector"] path = mods/protector - url = https://git.tchncs.de/Illuna-Minetest/protector + url = ../../Illuna-Minetest/protector [submodule "mods/illuna_costumes"] path = mods/illuna_costumes - url = https://git.tchncs.de/Illuna-Minetest/illuna_costumes + url = ../../Illuna-Minetest/illuna_costumes [submodule "mods/areas"] path = mods/areas - url = https://git.tchncs.de/Illuna-Minetest/areas + url = ../../Illuna-Minetest/areas [submodule "mods/3d_armor"] path = mods/3d_armor - url = https://git.tchncs.de/Illuna-Minetest/3d_armor + url = ../../Illuna-Minetest/3d_armor [submodule "mods/technic_armor"] path = mods/technic_armor url = https://github.com/stujones11/technic_armor @@ -217,34 +217,34 @@ url = https://github.com/minetest-mods/player_monoids [submodule "mods/mob_horse"] path = mods/mob_horse - url = https://git.tchncs.de/Illuna-Minetest/mob_horse + url = ../../Illuna-Minetest/mob_horse [submodule "mods/matrix"] path = mods/matrix url = https://github.com/entuland/lua-matrix [submodule "mods/rhotator"] path = mods/rhotator - url = https://git.tchncs.de/Illuna-Minetest/rhotator + url = ../../Illuna-Minetest/rhotator [submodule "mods/pipeworks"] path = mods/pipeworks url = https://gitlab.com/VanessaE/pipeworks [submodule "mods/sea"] path = mods/sea - url = https://git.tchncs.de/Illuna-Minetest/minetest-mod-sea + url = ../../Illuna-Minetest/minetest-mod-sea [submodule "mods/xban2"] path = mods/xban2 url = https://github.com/minetest-mods/xban2 [submodule "mods/chakram"] path = mods/chakram - url = https://git.tchncs.de/Illuna-Minetest/chakram + url = ../../Illuna-Minetest/chakram [submodule "mods/hangglider"] path = mods/hangglider - url = https://git.tchncs.de/Illuna-Minetest/minetest-hangglider + url = ../../Illuna-Minetest/minetest-hangglider [submodule "mods/hangglider_regular"] path = mods/hangglider_regular - url = https://git.tchncs.de/Illuna-Minetest/minetest-hangglider-regular + url = ../../Illuna-Minetest/minetest-hangglider-regular [submodule "mods/illuna_events"] path = mods/illuna_events - url = https://git.tchncs.de/Illuna-Minetest/illuna_events.git + url = ../../Illuna-Minetest/illuna_events.git [submodule "mods/eventkeys"] path = mods/eventkeys url = https://github.com/auouymous/eventkeys @@ -274,13 +274,13 @@ url = https://gitlab.com/VanessaE/biome_lib [submodule "mods/bitchange"] path = mods/bitchange - url = https://git.tchncs.de/Illuna-Minetest/bitchange + url = ../../Illuna-Minetest/bitchange [submodule "mods/bridges"] path = mods/bridges url = https://github.com/Sokomine/bridges [submodule "mods/christmas_craft"] path = mods/christmas_craft - url = https://git.tchncs.de/Illuna-Minetest/christmas_craft + url = ../../Illuna-Minetest/christmas_craft [submodule "mods/maptools"] path = mods/maptools url = https://github.com/calinou/maptools @@ -292,10 +292,10 @@ url = https://github.com/Sokomine/mobf_trader [submodule "mods/spawners"] path = mods/spawners - url = https://git.tchncs.de/Illuna-Minetest/spawners + url = ../../Illuna-Minetest/spawners [submodule "mods/skybox"] path = mods/skybox - url = https://git.tchncs.de/Illuna-Minetest/skybox + url = ../../Illuna-Minetest/skybox [submodule "mods/moreglass"] path = mods/moreglass url = ssh://git@git.tchncs.de:2241/Illuna-Minetest/moreglass.git diff --git a/.luacheckrc b/.luacheckrc index 2be56e80..72c7582f 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -1,27 +1,60 @@ -unused_args = false -allow_defined_top = true +ignore = { + -- list taken from https://stackoverflow.com/questions/49158143/how-to-ignore-luacheck-warnings/49160695#56618022 as + -- all the third party mods would be hard to manage otherwise -read_globals = { - "DIR_DELIM", - "minetest", - "dump", - "vector", - "VoxelManip", "VoxelArea", - "PseudoRandom", "PcgRandom", - "ItemStack", - "Settings", - "unpack", - -- Silence errors about custom table methods. - table = { fields = { "copy", "indexof" } }, - -- Silence warnings about accessing undefined fields of global 'math' - math = { fields = { "sign" } } + --"011", -- A syntax error. + --"021", -- An invalid inline option. + "022", -- An unpaired inline push directive. + "023", -- An unpaired inline pop directive. + "111", -- Setting an undefined global variable. + "112", -- Mutating an undefined global variable. + "113", -- Accessing an undefined global variable. + "121", -- Setting a read-only global variable. + "122", -- Setting a read-only field of a global variable. + "131", -- Unused implicitly defined global variable. + "142", -- Setting an undefined field of a global variable. + "143", -- Accessing an undefined field of a global variable. + "211", -- Unused local variable. + "212", -- Unused argument. + "213", -- Unused loop variable. + "221", -- Local variable is accessed but never set. + "231", -- Local variable is set but never accessed. + "232", -- An argument is set but never accessed. + "233", -- Loop variable is set but never accessed. + "241", -- Local variable is mutated but never accessed. + "311", -- Value assigned to a local variable is unused. + "312", -- Value of an argument is unused. + "313", -- Value of a loop variable is unused. + "314", -- Value of a field in a table literal is unused. + "321", -- Accessing uninitialized local variable. + "331", -- Value assigned to a local variable is mutated but never accessed. + "341", -- Mutating uninitialized local variable. + "411", -- Redefining a local variable. + "412", -- Redefining an argument. + "413", -- Redefining a loop variable. + "421", -- Shadowing a local variable. + "422", -- Shadowing an argument. + "423", -- Shadowing a loop variable. + "431", -- Shadowing an upvalue. + "432", -- Shadowing an upvalue argument. + "433", -- Shadowing an upvalue loop variable. + "511", -- Unreachable code. + "512", -- Loop can be executed at most once. + "521", -- Unused label. + "531", -- Left-hand side of an assignment is too short. + "532", -- Left-hand side of an assignment is too long. + "541", -- An empty do end block. + "542", -- An empty if branch. + "551", -- An empty statement. + "561", -- Cyclomatic complexity of a function is too high. + "571", -- A numeric for loop goes from #(expr) down to 1 or less without negative step. + "611", -- A line consists of nothing but whitespace. + "612", -- A line contains trailing whitespace. + "613", -- Trailing whitespace in a string. + "614", -- Trailing whitespace in a comment. + "621", -- Inconsistent indentation (SPACE followed by TAB). + "631", -- Line is too long. } --- Overwrites minetest.handle_node_drops -files["mods/creative/init.lua"].globals = { "minetest" } --- Overwrites minetest.calculate_knockback -files["mods/player_api/api.lua"].globals = { "minetest" } --- Don't report on legacy definitions of globals. -files["mods/default/legacy.lua"].global = false