Time Nick Message 03:00 erle_sleepy Jonathon, thanks for pointing to https://git.minetest.land/MineClone2/MineClone2/commit/9d9e21301271da166248a2356b81e0225d738fde – MineClone2 is still broken (both contentdb and git master), but i was able to figure out the missing dependency. do you have a ticket or a PR for  the commit at 03:00 erle_sleepy https://git.minetest.land/MineClone2/MineClone2/commit/9d9e21301271da166248a2356b81e0225d738fde ? 03:07 erle_sleepy https://irc.minetest.net/minetest-dev/2021-11-22#i_5900227 or minetest.after(0, dofile) provided you dont run into any of the minetest silently failing issues 03:08 erle_sleepy can anyone tell me about minetest.after silently failing? 03:09 MTDiscord no idea, i think krock summited that as a git patch and it got merged in. was forums or irc, dont recall 03:09 MTDiscord at least i recall him talking about it 03:09 MTDiscord minetest.after doesnt silently faily 03:09 MTDiscord . s/fail/faily 03:12 erle_sleepy Jonathon what i do not understand about https://git.minetest.land/MineClone2/MineClone2/commit/9d9e21301271da166248a2356b81e0225d738fde is that it says “pull/1847/head” but the actual PR 1847 is something entirely different: https://git.minetest.land/MineClone2/MineClone2/pulls/1847 03:12 erle_sleepy i could find no PR that actually matches the commit 03:13 erle_sleepy Jonathon, what did you mean with “provided you dont run into any of the minetest silently failing issues” then? 03:13 erle_sleepy Jonathon i really want a solution to relying on the leading underscore, bc it is bound to break eventually 03:14 MTDiscord there is a lot of things minetest just silently fails and keeps running on either normally or when functions are called in specific instances 03:14 erle_sleepy yeah ok but if that code silently failing on mod loading time, would it be different? 03:14 erle_sleepy or is it that during runtime silently failing is more common? 03:15 erle_sleepy than during load time 03:15 MTDiscord most of the issues i have seen are runtime related 03:18 erle_sleepy Jonathon do you know other mods than _mcl_autogroup who have the requirement to run really late? 03:18 erle_sleepy granted, this is a not well formed inquiry 03:18 erle_sleepy it is impossible for two mods to be “the last one” 03:21 MTDiscord yes 03:21 MTDiscord ultimately the problem with load last is what i posted in dev irc 03:21 MTDiscord SX — Today at 9:12 PM just seen too many mods use that and it really makes it hard to override things or determine loading order, it is worst tool for this. on_mods_loaded is good. wsor — Today at 9:13 PM its great till you run into 5 mods using it, and mod 2 really needs to actually be after mod 5 03:21 MTDiscord . idk any good way to figure that out 03:22 erle_sleepy well inside mineclone2 or mineclonia it is fine 03:22 MTDiscord well, at this point in time, since im fcused on other things 03:23 erle_sleepy thx Jonathon, i will try to use minetest.after then i guess if the current solution breaks. 03:24 erle_sleepy _mcl_autogroups is a horrible hack, but i think it needs to have access to all nodes and/or all tools that all mods registered, that is why it wants to come last 03:24 erle_sleepy and given that other mods can add tools or nodes, there we have the problem 03:24 MTDiscord ....insert facepalm 03:24 erle_sleepy ? 03:24 erle_sleepy i didn't write it 03:24 MTDiscord for what you want to do from my brief look register_on_mods_loaded is best 03:25 erle_sleepy ok thx 03:25 MTDiscord not minetest.after(0, func) hack 03:25 erle_sleepy i use the minetest.after(0, func) thing for ingame startup self-tests, do you think that is a horrible idea? 03:27 erle_sleepy like, i put code in there that would crash the game, so it immediately crashes if a bugfix stops working 03:27 MTDiscord thats fine since i assume you want to run them on startup, there might be cases where you want minetest.after(1, func) but its per case basis 03:27 erle_sleepy what is the difference between 0 and 1 at this point? is something not yet done at 0 that is done at 1 that i should know about? 03:29 erle_sleepy Jonathon the only reason i can think of rn why register_on_mods_loaded was not used is that it is a 5.0.0 thing ig 03:29 MTDiscord it depends on how the code you are testing is structured 03:30 MTDiscord lol, your just repeating what i said 03:31 erle_sleepy ? 03:32 erle_sleepy the code i am testing does not do anything using minetest.after(0, func) 03:32 erle_sleepy but i will keep it in mind 03:35 erle_sleepy Jonathon the issue i have with fully accepting the “it's a pre 5.0.0 thing” is that _mcl_autogroup was rewritten 8 months ago https://git.minetest.land/MineClone2/MineClone2/pulls/1285 – i need to do more research 03:41 MTDiscord Also minetest.after(0, fn) executes after loading is complete, minetest.register_on_mods_loaded executes before loading is completed 03:42 erle_sleepy yes i realized that when i wrote the self tests 03:42 MTDiscord Basically minetest.after for things that are supposed to be runtime and minetest.register_on_mods_loaded for things that are supposed to be initialization 03:42 erle_sleepy SX i need access to the world in my test cases, so minetest.after is the only thing that works 03:42 erle_sleepy any earlier and no actual world exists ig? 03:43 MTDiscord Yes, for that it is exactly correct thing to run single shot globalstep 03:43 MTDiscord (it is same as globalstep, just shortcut for single shot and delayed) 03:44 erle_sleepy are you aware of other mods than mineclonia that do tests at runtime? 03:45 erle_sleepy (i am not) 03:45 MTDiscord I'm only running mineunit.... can't tell :) 03:45 MTDiscord But for minetest after and how it is globalstep see https://github.com/minetest/minetest/blob/master/builtin/common/after.lua 03:46 erle_sleepy he, very funny thx 03:50 erle_sleepy SX how would i write a test case that tests if the engine crashes in specific circumstances in mineunit anyway? 03:51 erle_sleepy i can't exactly check the results of the operation that might crash in lua, can i? 03:51 erle_sleepy i mean, not if it crashes 03:54 MTDiscord mineunit is really still both barebones, some incorrect behavior, heavy development and so on but if you're interested take a look at technic mod tests here: https://github.com/mt-mods/technic/tree/master/technic/spec 03:55 MTDiscord Also (already outdated) readable list of things it does for technic https://github.com/mt-mods/technic/pull/208#issuecomment-946919098 03:55 erle_sleepy thx 03:55 erle_sleepy ok, so “does not crash” is on the list, i am looking! 03:56 MTDiscord oh yes you can test for expected crash too, some tests do that. simply catch errors (pcall and friends under the hood) 03:58 MTDiscord also mineunit is simply built on to of busted so basic stuff works without mineunit using just busted (which is more for actual unittesting and mineunit for testing things more like running actual world in minetest) 03:59 erle_sleepy SX i do know too little, how woulda pcall deal with a segfault? 04:00 MTDiscord oh, if it is engine crash then no. you cannot do that without catching it in c++ and that's bit cursed thing to do... 04:01 erle_sleepy ah, i guess i will keep executing code like that as well 04:01 MTDiscord (your program state is messed up bad by then and recovering from segfault is not simple thing to do) 04:01 erle_sleepy i do not want to recover 04:02 erle_sleepy SX what API version of minetest is mineunit targeting btw? 04:04 MTDiscord random version... I've started working on actual engine version selection but probably takes some time to finish that thing. also like said it is NOT working exactly like minetest engine for most parts even while it can run technic stuff and somewhat advtrains standalone 04:04 erle_sleepy it's pretty cool! 04:06 MTDiscord there's github app to get github workflows easily if wanted, luarocks provides scm dev package 04:07 erle_sleepy i am not going to rely on microsoft for my virtual legos ^^ 04:07 MTDiscord (also just added $ mineunit --demo which installs simple demo tests in current mod directory, should give idea) 04:08 erle_sleepy may years ago i was banned from github in error, but not just normally, i was hellbanned. i could see my account, other people could not, during work! 04:08 MTDiscord well github app is just shortcut for github users, other platform users can add similar workflow 04:09 erle_sleepy they fixed it, but i found this so malicious that this is their way to ban people that i have not put private projects on there since 04:09 erle_sleepy (i did not even get any good reason, only that an automated system did it, lol) 04:11 erle_sleepy SX regarding interesting mineunit specs, do you know any test cases for dupes? 04:11 erle_sleepy (where the test case tests that you can not dupe) 04:12 erle_sleepy i have not been able to come with one up myself so far 04:13 MTDiscord dupe what? overwrite lua variables for example? or items in game? 04:13 erle_sleepy items in game 04:14 erle_sleepy as a player, i want them ofc. but as a game developer i do not. 04:14 erle_sleepy and once fixed, it would be good to regression test them. 04:16 MTDiscord well when you're testing things you have to think about what you're exactly testing. usually duplication is because of some complex operation / combination of things, you can test those but instead of allowing and testing all possible combinations you should just test that your interface handles correct data correctly and incorrect data correctly. 04:16 erle_sleepy SX the technic mineunit stuff looks amazing thank you for showing it to me 04:17 erle_sleepy hmm ok you are right. dupes, like many bugs, are at the boundaries of systems. 04:19 erle_sleepy i wish someone had made a test case for this so i knew what was wrong: https://github.com/minetest-mods/moreblocks/commit/f8a7d66403b4b1e2d87eeb4249a9be3edb906861#diff-0fc67bb5079c5d1a67ba1a0a697d0dbcf77ef1324c4e1264c59f0a593ea72ca5 04:19 MTDiscord many go forward by adding test when bug is found and then fixing code in a way that test passes 04:19 erle_sleepy yes i have seen that at work. test driven development. 04:20 erle_sleepy sadly most amateur devs i know think it is a waste of time since they “know” their code is correct. 04:20 erle_sleepy in the same way that ppl “know” that bedrock can not be broken. ;) 04:20 erle_sleepy i.e. a simple, obvious & wrong idea 04:21 erle_sleepy SX sadly most of the really interesting bugs i know are engine bugs, but mineunit would help immensely whenever i need a test world. 04:22 erle_sleepy like when mcl2 broke minecarts 04:22 erle_sleepy good mineunit testing would have figured it out i guess 04:23 MTDiscord good if you find some use for it, btw luarocks scm dev package is always tip of master branch. I've tried to keep it in working order with all things using it but behavior might change. 04:24 erle_sleepy well for minecarts when we fixed it in mineclonia i actully made a rail testing world 04:24 erle_sleepy actually 04:24 erle_sleepy which made it very tedious to test 04:25 erle_sleepy i mean players rely on stuff like minecart teleportation 04:26 MTDiscord mineunit probably cannot replace play testing ever but for me it has been helpful when doing large modifications / additions / refactoring to ensure that API stays compatible and certain behavior wont change, tetsing all that in game would take hours every session and when you find typo you'll start over... 04:26 erle_sleepy i.e. the mechanic where you can tp a minecart from one track to another using a curse mesecons machine 04:26 erle_sleepy cursed 04:27 erle_sleepy it can be used to switch tracks 04:27 MTDiscord sounds kinda fun :) 04:28 erle_sleepy “ensure that API stays compatible” is something that i wish to do too 04:28 erle_sleepy and yes, tests enable fearless refactoring 04:29 erle_sleepy SX the sad thing about stuff like minecart tp is that often devs are like “that was undocumented, we remove it” 04:30 erle_sleepy even when it is a useful mechanic 04:31 erle_sleepy mcl2 removed lavakelp for example in a refactoring 04:34 MTDiscord well, that happens. then if it too many ppl think it is bad fork happens. but I guess I'm leaving now, good luck with testing o/ 04:36 erle_sleepy i go sleep 04:36 erle_sleepy SX thanks again mineunit looks awesome 11:02 Miniontoby1 Hey guys 11:03 Miniontoby1 https://pastebin.com/QLvwGhCP 11:03 Miniontoby1 Please help ^ 11:15 * Miniontoby1 found https://forum.minetest.net/viewtopic.php?t=19712 and will see if it fixes my problem 11:16 Miniontoby1 (didnt fix my problem) 11:18 Miniontoby1 is github.com also for you guys down? 11:25 MTDiscord have you appended minetest.get_modpath() to the dofile filepath string? 11:27 Miniontoby1 nope 11:27 Miniontoby1 now added it 11:30 Miniontoby1 thanks 11:32 Miniontoby1 It works 11:34 MTDiscord yay 14:19 Big_Caballito howdy! 14:19 Big_Caballito howre things here? 14:19 Big_Caballito ive been super busy, so im not keeping up on anything lol 14:21 MTDiscord decent 14:22 Big_Caballito whens the next version coming out? 14:22 Big_Caballito and when did we move away from freenode? 14:22 MTDiscord nobody knows when 5.5.0 is coming out 14:22 MTDiscord soon, hopefully 14:23 Big_Caballito hopefully lol 14:27 sfan5 when did we move away from freenode? <- in May, like everyone else 14:29 Big_Caballito idk why i didnt hear about that lmao 17:27 MinetestBot 02[git] 04ExeVirus -> 03minetest/minetest: Allow for Game-Specific Menu Music (#11241) 1352bfbf6 https://git.io/J1bZH (152021-11-22T17:26:46Z) 17:29 MinetestBot 02[git] 04sfan5 -> 03minetest/minetest: Add backwards-compatible behaviour if too few CAO textures specified 13206e131 https://git.io/J1bnZ (152021-11-22T17:27:49Z) 20:46 definitelya oh nice, game jam! 20:55 GreenXenith definitelya beat me to the punch, but Im still gonna announce it myself anyway :P 20:55 definitelya :o go for it! 20:56 GreenXenith Hey all! We are holding a 3-week Minetest GAME JAM starting December 1st! The idea is to get more small, self-contained experiences into the Minetest game collection. You might even win some money. More details at https://forum.minetest.net/viewtopic.php?t=27512 or https://www.reddit.com/r/Minetest/comments/qzvd3o!