Time Nick Message 05:14 kyle56 is there a way for client mods to alter the main menu lua? like add new tabs with custom menus or something? 05:18 [MatrxMT] no, the main menu is a third sandbox separate from the CSM and server Lua environments. You have to ship custom `builtin` code to change the main menu 05:49 kyle56_has_conne @Blockhead256 ah ok. thx 07:57 [MatrxMT] no you don't, there is a "main menu script" setting which you can point to your own menu 07:58 [MatrxMT] you could probaly leace builtin as is 07:58 [MatrxMT] leave* 08:43 gry hi qqe ? 09:03 [MatrxMT] wow, I did not realise it, but this has been a feature since formspec was first used for the main menu 09:49 [MatrxMT] https://forum.luanti.org/viewtopic.php?p=445936#p445936 10:37 [MatrxMT] funny im working on one 11:09 repetitivestrain my two cents respecting https://github.com/luanti-org/luanti/issues/16240: i do not understand what measures currently exist to facilitate interfacing games and mods with arbitrary custom map generators 11:10 repetitivestrain with my map generator, for instance, engine decorations and ores are not placed, and not only are built-in biomes not generated, but also the built in two-coordinate temperature/humidity system cannot encompass my biome system at all 11:11 repetitivestrain and i expect the same to be true of all Lua map generators, on which account this proposal is pretty premature 11:12 repetitivestrain in my estimation games should simply be afforded the capacity to override the main menu and decide which of their own map generators to present to the users 11:13 repetitivestrain (not to mention that any attempt by mods to alter terrain in on_generated is apt to be reverted almost immediately by the post-generation pass) 11:37 MTDiscord I'm not fond of the idea of the engine forcing a "compatibility layer" onto games either. 11:38 MTDiscord Ultimately these are two conflicting goals: Better mod / game interoperability versus creative freedom for game developers. In my opinion we should prioritize the latter. 13:25 MinetestBot luatic: Dec-16 14:50 UTC I was able to craft copper using technic:coal_alloy_furnace. The fact that this is not discoverable using the crafting guide is an horrible user experience. It looks like that has been noted: https://github.com/minetest-mods/technic/issues/585. Thank you again! 13:31 Oblomov hello all, a questione: my son has started playing some luanti games, but he would like to modify one specific texture 13:31 MTDiscord that's the most aggressive "thank you again" I've seen 13:32 Oblomov I know how to create texture packs, but if the intent is to override only a couple of images, is it still necessary to copy all the other over? or is it possible to tell luanti to “fall back” to the official/default ones when missing from the texture pack? 13:33 MTDiscord @Oblomov lol I was about to recommend making a texture pack 13:34 MTDiscord and no it's not necessary to copy other textures over, I've made a texture pack as a text to change only 1 image 13:34 Oblomov damotrix: that's the path I want to teach him, but my understanding is that this needs overrides for everything? or am I mistaken? 13:34 Oblomov oh ok 13:34 Oblomov *phew* 13:34 MTDiscord nope, doesn't need overrides for everything :D 13:34 Oblomov I've only ever seen “complete” packs, hence the question. thanks 8-) 13:34 MTDiscord that'd be super annoying if a mod added a new texture tbf 13:34 MTDiscord yeah 13:35 Oblomov makes sense 13:35 Oblomov I think the docs could be a bit more explicit on this, since the howtos I've seen start from the assumption that you want to replace everything 13:35 MTDiscord true 13:36 Oblomov if I get some time, after tutoring my kid I'll see if there's something I can do about the docs 13:37 [MatrxMT] doc/texture_packs.md doesn't imply that every texture has to be in a pack, that must be a prior assumption you're working with. How would a texture pack even work with mods if that were the case? 13:38 [MatrxMT] I guess you can look at writing it into the docs so that it removes that line of thinking explicity 13:39 [MatrxMT] you might not have seen it, but my joke texture pack only has one texture https://content.luanti.org/packages/Blockhead/baby_sun/ 14:03 Oblomov OK my son is very happy with his new texture. thanks all. 14:04 Oblomov but yeah, I was thrown off by the docs suggesting you copied all the originals over 14:04 [MatrxMT] that would just be to have all the filenames in place more easily 14:16 MTDiscord what docs specifically are you refering to? 14:42 Oblomov wsor4035: https://docs.luanti.org/for-creators/creating-texture-packs/ 14:42 Oblomov there's to be said that https://docs.luanti.org/for-players/texture-packs/ does specify that individual files can be overridden instead 14:44 MTDiscord if you wouldnt mind making an issue saying that the for-players one should link to for-creators to aboiud duplicate info, and also mentioning the copying comment, would appreciate it 14:44 Oblomov the for-players does link to the for-creators 14:45 MTDiscord i mean that the for-players shouldnt have any creating information, just send them striaght to the other one, avoid duplicate/potentially confusing info 14:47 MTDiscord hmm, not sure why for-creators calls out Below is a brief overview of the texture structure as of version 5.1 - nothing changed before that..... i think? there is the ability to nest media (or something) that came in a later version 14:50 MTDiscord at any rate, it should say why that version 14:50 Oblomov wsor4035: hm actually the for-players having brief instructions on how to override individual textures isn't such a bad idea 14:51 Oblomov although possibly the information could be more balanced. I'll think about it a little bit 14:52 MTDiscord think of it as code, do you write duplicate functions are slight variations everywhere? or centralize it in once place for ease of maintainability 14:55 MTDiscord @rollerozxa did you per chance write the for-creators article? it orginally came from the wiki, but it does sorta somewhat seem like your writing, trying to figure out why 5.1 14:57 MTDiscord hmm I don't think so, I might have touched the page a bit on the original wiki but not much more than that, I remember it being weird and in need of a more encompassing rewrite which I never ended up doing 14:59 MTDiscord ah, well thanks 14:59 MTDiscord i guess ill have a poke around tonight to see if i can figure out why 5.1 and when nesting or whatever im thinking of became a thing 15:05 MTDiscord why it's that version is probably just because it was originally written then 15:05 MTDiscord subdirs in media folders became a thing in 5.4 I think? but I don't know if it might have been supported prior to that for texture packs which do things a bit independently from the server media loading 15:32 ltuyen hello from the luanti player again! 16:50 ltuyen I don’t think so. 16:53 bracket what license does luanti builtin have? The one used for the engine itself too? 16:54 sfan5 yes 16:57 bracket I hate that licenses are so long D: 16:57 MTDiscord not all are 17:29 jonadab Share-alike licenses pretty much have to be excessively verbose, in order to accomplish the inherently complicated thing they're trying to accomplish. That's also why they're pretty consistently mutually incompatible with one another. 17:29 jonadab Permissive licenses can be shorter. 17:40 bracket the LGPL says that I may modify the code in anyway and use it in anyway except to cause harm as long as I make it open source or some conditions when its propetary 17:40 bracket is that correct 17:41 [MatrxMT] except to cause harm? sounds like the hippocratic license 17:41 [MatrxMT] that had better not be an AI summary 17:54 MTDiscord not a lawyer, not legal advise, but the lgpl basically is 1. doesnt infect your project AS LONG AS you dynamically link to it 2. have to release any changes/modifications to it 3. do whatever you want with it 17:55 MTDiscord re 1, you can make your project whatever license rather than lgpl or higher. I.E. you can have a MIT project, or propraitary project, etc and use a lgpl piece of code (assuming its dynamically linked to) 17:58 jonadab Yeah, the LGPL is intended principally for libraries (especially important system libraries like libc, or widget sets) that you want arbitrary software to be able to link to, but the library itself to be share-alike. 17:59 jonadab Bit of a special case, and probably not a license you need to think about too much, unless you are writing libraries that will be used by other software written by other people. 17:59 [MatrxMT] Luanti itself is LGPL, and putting your mod under it means it doesn't have the "viral" effect on the whole project that normal GPL would 18:00 jonadab Oh, the engine is LGPL? Ok, I somehow was not aware of that. 18:00 [MatrxMT] even Luanti has libraries as well 18:00 jonadab That does make it more relevant here. 18:00 jonadab Considerably more relevant. 18:01 MTDiscord libraries if you drink the gpl flavored koolaid anyways 18:01 jonadab But modules written in lua would presumably not be much impacted by the license of the engine, unless they ship with it or something. 18:02 jonadab Does your Perl script need to care what license the perl interpreter uses? No. 18:20 bracket Blockhead: I was just assuming a licence wouldn't allow you do to illegal stuff 18:23 MTDiscord Licenses grant you permission to do things otherwise reserved by copyright, sometimes in exchange for some restrictions you have to follow that are relevant to the author and their rights or what they want to accomplish with the software. 18:23 MTDiscord The fact that it's illegal for you to do things that are against other laws is irrelevant to copyright. 18:24 [MatrxMT] it's certainly not like 007 where we can give people licences to kill 18:24 MTDiscord A license can only grant you permission to do things that are reserved by copyright. It cannot grant you permission to do things that you are disallowed by other law. It cannot impose other restrictions on you, other than restrictions you agree to apply yourself in exchange for grant of permissions for things covered. 18:26 MTDiscord A license can't grant you permission to kill. A license also can't take away your right to, say, post videos online. It CAN require you to waive your right to do so as a condition for one of the permissions it CAN grant you, and it can revoke those grants of permission if you perform the action you've promised not to do. 18:27 MTDiscord IIRC there are licenses out there with "do no evil" clauses where you would lose permission if you did evil. Thoese licenses are bullshit, of course, because evil can't be legally defined anyway. They're even worse than non-commercial licenses. 18:34 ireallyhateirc copyleft licenses were designed to effectively cancel copyright but were not and shouldn't be a form of fighting 18:39 jonadab "In order to use this software, you must agree that Michigan is bad and their football team sucks." Heheheh. 18:40 jonadab Although proprietary licenses often _try_ to levy all kinds of restrictions that aren't necessarily legally enforceable. 18:41 jonadab Which is one of the reasons they always have one of those "if any part of this is invalid then the rest of it still applies" clauses. 18:42 ireallyhateirc as for crayons licenses (non-copyleft) then it's pretty much coding in your free time so someone can put it to their proprietary product and sell for money 18:43 jonadab Eh, depends. Really active projects seem to do ok with permissive licenses. OpenSSH for example. 18:44 ireallyhateirc depends on the project's nature and willingness of downstream to contribute and/or donate to the project 18:44 jonadab (It's not worth anybody's time to maintain a proprietary patch-set for a very active project, because upstream changes would cause you merge nightmares every five minutes. And if you don't stay up to date with upstream, you quickly become irrelevant.) 18:45 jonadab But yes, it depends on the nature of the project. 18:46 MTDiscord "must agree that Michigan is bad and their football team sucks" ... that's actually a very easy requirement to meet. It only requires you to agree, doesn't require you to publicize this agreement anywhere, and only requires you to agree once and doesn't disallow you from rescinding the agreement. Also leaves a ton of room open for "sucks", i.e. "is the best team but not as good as they could be" could be justifiable. Basically a 18:46 MTDiscord do-nothing clause. 18:46 MTDiscord As for crayon licenses, we disallow them all on CDB, copyleft or not. 18:47 ireallyhateirc WTFPL ? 18:48 ireallyhateirc a permission to use this software is hereby granted for anyone owning a dog 18:48 MTDiscord WTFPL is pseudo-crayon 18:48 bgstack15 I dislike the "permissive" licenses because they permit developers to take away rights from the users. 18:49 MTDiscord It's basically only allowed due to "grandfathering" and the amount of stuff under it from a certain era of the project. I don't remember whether steps have been taken to disallow it outright, but it's always been heavily discouraged on CDB. 18:49 ireallyhateirc can't you just relicense WTFPL to something else? 18:50 ireallyhateirc WTFPL seems to implicitly allow relicensing lol 18:50 MTDiscord in theory, maybe 18:50 MTDiscord that "implicitly" part is problematic 18:50 ireallyhateirc the court would have to define "do what the f you want" 18:50 MTDiscord if it were just the swearing then we wouldn't have so much trouble with it 18:51 MTDiscord I've suggested at one point that the WTFPL disallows me from using a piece of software for work purposes if I'm not interested in the project. 18:51 ireallyhateirc and I doubt the copyright holder cares 18:52 MTDiscord Something like ISC doesn't require you to WANT to use the software for a particular purpose, you can do it just because you need to. 18:53 ireallyhateirc I agree that the wording is dumb but it seems that I can relicense the software if I want to 18:54 ireallyhateirc but whether or not the author needs to be credited is ambiguous 18:54 ireallyhateirc probably yes to avoid plagiarism, but do you have to preserve the license document? 18:55 mmuller just curious, how does content db enforce licensing? Is it automated, audited or something else? 18:55 MTDiscord Permissive licensing means "I created this software because I wanted the software to exist. I get value from having it and using it. If you do too, that's great, but that's your personal business and I won't pry." Copyleft licensing means "I'm part of a social movement, and if you want access to these cool features, you need to be part of the movement too. We're trying to destroy the evil commercial software world by fighting fire with 18:55 MTDiscord fire. Join us and we will provide torches and pitchforks." 18:56 MTDiscord CDB enforces licensing by a combination of manual review and community feedback. 18:56 mmuller cool. 18:57 MTDiscord Editors attempt to validate licensing and rights, and detect certain violations, before approval. If anything slips through the cracks (we've even seen some slip into MTG itself) then things are reported by the community and handled after that; authors generally have a short grace period (like a day or something) to correct any issues or else the package needs to be promptly removed from access. 19:02 MTDiscord FOSS is, as a general umbrella, about software granting individual liberty. Permissive software approaches individualistically: each individual grants the necessary liberties to each other individual. Copyleft approaches it collectivistically: you get your rights from the collective, and make your contributions to it, as long as you uphold its values. 19:16 bgstack15 Here's one of those acerbic rants about why the permissive licenses are not good according to this one dude: https://lukesmith.xyz/articles/why-i-use-the-gpl-and-not-cuck-licenses/ 19:16 bgstack15 I realize not everybody is interested in Luke Smith's perspectives in general. I'm not verse in all of his opinions, but I agree with this one. 19:16 bgstack15 *versed 19:20 MTDiscord lol, "cuck" licenses ... that really makes it a pretty scathing criticism of the kind of people who would use copyleft licenses, rather than permissive ones 😆 19:20 MTDiscord What a title 19:22 MTDiscord I've seen a lot of people use the "jeolosy" argument, i.e. "I hate the idea that somebody else is profiting from work I did" to justify copyleft. Other people benefiting from work I did is literally the reason why I license my work at all. 19:23 bgstack15 You say that, but do you carry the burden of all those people pestering you for support, like the cUrl guy? 19:25 * cheapie peeks in, sees licensing talk again 19:25 cheapie This is why I just pick a license that's not possible to violate in the first place for my stuff, easier than figuring out what I want to allow 19:25 cheapie (not possible to violate as in there isn't anything it prohibits) 19:25 MTDiscord Heh, that's the nice thing about permissive licensing: I don't have to feel bad just ignoring the pestering. I'm not part of a crusade, I don't have fellow acolytes I have to politick with. I just write code. 19:26 cheapie It's also like warr1024 said, I write them because I want them to exist and I don't really care too much what else happens 19:26 MTDiscord cheapie: ❤️ 19:27 MTDiscord you writing software without caring whether/how I use it also helps lighten the implied reciprocal burden for me 😄 19:27 * cheapie nods, has run into that a bit with asset licensing 19:28 cheapie Most of the assets I use these days are ones I make myself, but at least for celevator I did use a few CC0 sounds from elsewhere 19:28 cheapie (I actually ship a list of them with attribution, despite there not being a requirement for that) 19:29 MTDiscord I used to like permissive licensing, but lately I'm leaning more toward "zero" (attribution-optional) ones. Attribution requirements are actually probably unnecessary for what I want anyway. I would need to prove my authorship of software to be able to enforce attribution requirements anyway, and being able to prove that I did the work is the main value I ever wanted from it anyway. 19:30 cheapie Same, I used to use a custom BSDish license for my Luacontroller programs but moved to "zero"-style licenses for those a few years ago too 19:30 MTDiscord Attribution requirements might actually be redundant, because claiming that I didn't write software is effectively defamation anyway, and that's orthogonal to copyright. 19:31 cheapie Every so often something mildly annoying does happen (like there's a fork of one of my mods up on ContentDB that doesn't mention me at all) but that's probably not something I would bother doing anything about even if I /had/ chosen a license that required attribution 19:31 MTDiscord So I'd rather remove the burden of worrying "is this form of attribution legally sufficient". Nah, just don't contradict me if I point out what I did, and that's sufficient. 19:33 MTDiscord CDB actually requires attribution independent of license terms. We need to know the true origin of things in order to validate the licenses to begin with. Even if the original author waived right to attribution we can't know that if we don't know the original author, work, and terms. 19:33 cheapie I think they might not have realized the original author was me in the first place, judging by the description 19:34 cheapie The package in question is https://content.luanti.org/packages/spinning-cubes/firealarm/ 19:34 cheapie It's a fork of https://cheapiesystems.com/git/firealarm/ 19:35 cheapie If you want to push for attribution for ContentDB policy reasons that's up to you, my license doesn't require it 19:35 jonadab Yeah, my real preference is to just place most of the code I write into the public domain, but then Europeans always say garbage like "you can't do that, it's illegal", so in practice I tend to end up using licenses like CC0, saves arguments. 19:35 MTDiscord If you see stuff like that, you should probably report it. It's fine to point out that the license doesn't require attribution, but all parties that are involved (including the author, CDB staff, and all downstream users) deserve to know the pedigree of works they're using, and we should take steps to make sure that information ends up somewhere it can be used. 19:36 bgstack15 Some jurisdictions (not sure which) don't have the concept of "public domain," which is why CC0 exists, indeed. 19:36 cheapie I did informally mention it to a different ContentDB staff member outside of here (just like a "heh, look at this one") but I'm not sure he ever saw. I didn't see reason to actually push the report button. 19:36 jonadab bgstack15: People say that, but nobody can ever name such a jurisdiction. 19:36 bgstack15 Good thing I know my jurisdiction and which license to use (GPL-3.0-only) 19:36 cheapie jonadab: Yeah, I've heard that from a few people - I usually use The Unlicense which seems to say about the same things 19:37 MTDiscord I dislike the CC0 now somewhat because of the whole "public domain, but if that doesn't work, here's a fallback license that's basically the same thing." It seems like an unnecessary complication, and it kind of hurts portability into/out of public-domain-recognizing jurisdictions ... so I just prefer to use 0BSD or something that skips to the "fallback" license case and makes things concrete from the start. 19:37 MTDiscord i saw it, at 3am, and forgot to look at it once it was a more sane hour 19:37 MTDiscord License warr ||you must now laugh|| 19:38 jonadab Philosophically, it doesn't make any sense for a jurisdiction to exist that doesn't have a concept of public domain, because that would imply they have no access to any written work that's older than copyright law, which is only plausible in a sci-fi or fantasy setting, not in the real world. 19:39 MTDiscord anyways, in response, - in package approval, i did comment on it needing a license file and attribution, maybe they stripped it out in a new release or some jazz? or i screwed up in approving it 19:39 cheapie It does have a license file (renamed from the name I had given it but I think the content is the same) 19:40 MTDiscord I think when people say "public domain doesn't exist" I don't think they necessarily mean "there are certain places where 'public domain' is a meaningless term", I think the mean that the impact of that term on specific rights varies. IIRC in places in the EU certain moral rights cannot be waived or transferred (in order to prevent employers from coercing creative workers from selling those rights away) whereas in other places like the USA 19:40 MTDiscord you can sell practically any right you have to a work. If you can't waive certain rights you get under (C) then you effectively can't fully "public domain" a thing, you will always retain some control over certain aspects of it. 19:40 cheapie With it being an older mod I had originally called the license file COPYING as I did back before ContentDB decided it /must/ be called LICENSE 19:40 MTDiscord and for licenses that dont require attribution, we require it so we can actually check stuff 19:41 MTDiscord CDB editors may get packages where all information pointing to the possibility of it being a fork may be removed, and this removal may be allowed by law (due to zero licensing) but is still disallowed by CDB rules. We might have no way to know ahead of time, but community reports could help. 19:41 cheapie Yeah, I get the point, I'll report that sort of thing if I see it again 19:42 MTDiscord The "copying" filename is a GNU/FSF thing and should probably only ever be used for their own licenses. 19:43 MTDiscord Yep, put the link/license on CC0 so people can find the thing 19:43 MTDiscord also, ive said it before, and ill say it again, if you want your game to be approved faster, and its of the soup variety, use submodules 19:43 * cheapie briefly ponders submitting a package with the same license text present under 20 different file names :P 19:43 MTDiscord and its better for maintainability 19:44 bracket what exactly is a submodule? mods that rely on each other 19:44 bracket ? 19:44 cheapie (but nah, I just use LICENSE now since it's what ContentDB wants, I don't have any strong feelings towards one name or another) 19:44 MTDiscord wouldnt really care cheapie 19:44 MTDiscord cheapie: if we distributed packages as tar.gz, I'd say don't do it because it's stupid. But we distribute them as zip, which doesn't have cross-file compression, so don't do it because it's stupid AND bloaty. 19:44 MTDiscord bracket: use your search engine of choice and look up git submodule 19:44 bracket K 19:45 MTDiscord git submodules are a controversial git feature that is a big pain in the ass, possibly almost as much of a pain in the ass as every other thing people do to work around them, or because they don't know about them. 19:46 MTDiscord git submodules are terrible, just the least terrible as compared to anything else you can do 19:46 MTDiscord pretty much 19:46 bracket ah nice 19:46 cheapie I like submodules for the one use case of maintaining a repository with all of the mods for a given server, other than that they're kinda meh 19:46 MTDiscord remember when luanti had submodules at home? now that was dumb af 19:46 MTDiscord there was a time when we wanted to include irrlicht inside luanti engine as a submodule, but we hated submodules, so we reinvented them instead, and instead of using the git submodule command, you had to do some weird stuff with a text file and some scripts 😆 19:46 MTDiscord No I don't actually 19:46 MTDiscord warr: 🥷 19:47 MTDiscord Ohhhhhh 19:47 MTDiscord you referenced it, I explained it, we are not the same 19:47 MTDiscord I am lagging lol 19:47 MTDiscord the text file didnt even exist till like one or two version before irrmt got put in the engine 19:47 MTDiscord iirc anyways 19:48 cheapie On a mostly-unrelated note, I was looking through some of the celevator documentation, sometime I should actually note somewhere that 16seg.xcf is the source for all of the textures/celevator_pi_.png files 19:48 MTDiscord hmmm, so before it, what did we do to build the engine? You Just Had To Know? 19:48 bracket i just now noticed there is warr and wsor 19:48 SpaceManiac people are sleeping on git-subtree 19:48 MTDiscord no relation 19:48 MTDiscord now that is where my memory falters, i think you build it from buildbot or something? it was rather cursed 19:49 MTDiscord git subtree is actually teribble in my opinon 19:49 cheapie I do remember the IrrlichtMt repo but I don't remember having to do anything special to make it work, I just remember it as an "install this instead of Irrlicht" thing 19:49 MTDiscord Why doesn't C++ have a package manager? 19:49 MTDiscord Welp, this was the wrong place to ask that question I think 19:49 MTDiscord git subtree sounds cool see you have everything in a clone, but its way easier to fuck it all up 19:50 cheapie jordan4ibanez: Because your system probably has one 19:50 MTDiscord and also negates any speed benefit in cdb approval 19:50 MTDiscord I remember that the irrlichtmt repo had to be cloned into a specific place inside the MT repo, and you had to have the correct corresponding version, the tag of which was in a text file somewhere in the docs. So it was possible to build it from a script but kinda a pain in the ass. 19:50 MTDiscord you could also build it out of tree? its own package and link luanti to that 19:51 SpaceManiac git subtrees only require the "git subtree pull"er to know how to use it correctly; git submodules require everyone who contributes to or even clones the repo to know how to use submodules correctly 19:51 MTDiscord spacemaniac: its not obvious its a subtree, so its very easy for people to make changes and commits to them where screws over the whole thing 19:52 MTDiscord the only people in luanti that use it notably is mineclonia, at least last i checked 19:52 MTDiscord seems to work for them 19:52 SpaceManiac "screws over" meaning merge conflicts on next pull I suppose? 19:52 MTDiscord yeah, vs a submodule you fuck it up write then and there and can trash it all and reclone 😛 19:53 SpaceManiac in a pro environment I regularly had coworkers accidentally rolling back the submodule because they don't understand when to run and when NOT to run "git submodule update" 19:53 MTDiscord The biggest problem I have with submodules is their dependence on 3rd party hosted repos to remain available. 19:54 MTDiscord also, havent checked, does dependabot (or whatever bot) even support subtrees? thats like half the reason i use submodules 19:54 MTDiscord Other than that, you don't necessarily have to know or think about them as a casual user as long as you do the correct versions of the incantations to clone repos. 19:54 MTDiscord warr: yeah, but no different than depend on a third party mod, etc 19:54 MTDiscord (i.e. keep backups) 19:54 MTDiscord As for having coworkers screw up a git repo, submodules have never been a prerequisite to that; I've seen people invent all sorts of ways to lose work that I'd have never even thought of. 19:55 SpaceManiac it's not the only way, but the submodule mistake was particularly repetitive 19:56 MTDiscord wsor: if git submodules offered a way to specify a cache somewhere (like everything else in git, they include their own verification, so even 3rd party caches are usable) I'd be a lot more comfortable with them 19:57 MTDiscord i mean, once you have a clone of your project anywhere, you have a backup of them 19:57 MTDiscord My favorite way to lose work (both personally, and that I've seen other people do) is to go too long between commits, realize you want to undo the work in one file, and accidentally use a too-aggressive reset command and lose it all. 19:57 MTDiscord IIRC you have a "shallow" backup of just that one revision. It'd be nice to be able to expand that to the full history. 19:57 MTDiscord i personally like git stash since i threat as a trash can, that has a recycle bin on the odd chance i screw something up 19:57 MTDiscord *treat 19:58 SpaceManiac git submodules are the right choice in some situations, like if you control both repos and the upstream is also meant to stand independently, and you want the downstream repo to always point to a specific real version of the upstream 19:58 MTDiscord stash is basically like a branch that you can't (or at least it's not obvious how) push to a server. I use it for small half-assed stuff. Anything more signficant and I'd tend to just create a topic branch, and actually push it. 19:59 SpaceManiac I find subtrees are way easier to work with for the case where you're depending on some third-party repo (e.g. C++ library) that you may or may not be patching 19:59 MTDiscord yeah, but for trash cases, i dont really care about it at all, so should never need to push it somewhere 19:59 MTDiscord git submodules are probably the right choice in more situations than not, given that you've got 2 projects that shouldn't be maintained in a single tree to begin iwth. 19:59 MTDiscord well, if it's REALLY trash, then just undo it all. If you're stashing it, it must have some value. 20:00 MTDiscord If it has value, I want to be sure I don't lose access to it until that value-having attribute changes. 20:00 MTDiscord isnt git undo per file and no way of getting it back? 20:02 MTDiscord you can use "git checkout" to undo a single file. If you do that, any changes you HAD are toast, unless you stashed it away in some way. If you git reset --hard, same for every file. 20:04 MTDiscord I've actually kinda wished that git had "microcommits" that it could get from editor undo buffers, and would be "collasped" away by default, but if you wanted you could expand them and reach versions between commits. We have tags for coarse changes, commits for finer ones ... and the finer we can push the limit, the less risk of irrevocably losing work. 20:09 sfan5 one could argue that squashing is not the way git is intended to be used 20:09 sfan5 the way linux recommends to make commits results in much more commits but also sort of what you want 20:12 MTDiscord I sort of feel like "squashing" should be implemented as a display filter. Like flagging commits as especially significant, and allowing you the option to roll up smaller contributing commits when you view them in the log, and such. 20:12 MTDiscord time for infinite commit nesting 20:12 MTDiscord Personally I hate any workflow that involves destroying or collapsing history information outside of extreme circumstances like repo corruption or something. 20:13 sfan5 by the linux model I don't think you will have many "especially significant" commits 20:14 MTDiscord There are only a handful of numbers in computing: 0, 1, 2, and omega. If you want to have more levels than a dichotomy, you should just allow arbitrarily many of them and let people implement their own workflows. 20:14 sfan5 for example if you implement a big feature you have a 4 refactors, 6 commits doing prepration by adding some parameters or something and then one final commit that connects everything together at the final place 20:14 MTDiscord A project that doesn't need commits to be especially significant is sort of the ideal :-) 20:14 sfan5 you could say that the last one is especially siginificant. but it might as well be just 5 LOC changes. 20:14 ireallyhateirc related but unrelated, I will probably have to move Blender files from my repo to git LFS 20:15 MTDiscord oof, daaaamn, how big are they? 20:15 ireallyhateirc 44MB for one character 20:15 MTDiscord oh 20:16 MTDiscord I wouldn't call that NEARLY big enough to LFS 20:16 ireallyhateirc contains stuff like clothing and multiple versions of stuff but I consider that to be the "source code" 20:16 MTDiscord git starts to struggle a bit when files are getting into the GB range, but you'd have to have some kind of crazy-weak machine to have a hard time with 44MB 20:16 ireallyhateirc it's not really about me wanting to use LFS badly, it's more that git hosting has limits on git and git LFS data 20:16 MTDiscord yeah, blend files are absolutely source code 20:17 ireallyhateirc I think codeberg has somethign 200-500MB git storage and 1GB LFS ? 20:17 MTDiscord ah, if you're dealing with a 3rd party host imposing limitations, 🤷 may not be much you can do about that I guess. 20:17 ireallyhateirc well both codeberg and gitgud say I can request more storage if needed 20:18 MTDiscord LFS is like an inverse-submodule: taking code that logically should be in-tree and hosting it externally. It's kinda like the worst of both worlds. 20:18 ireallyhateirc that's probably not necessary for ordinary projects, but a game which ships all Blend files is going to get fat at some point 20:19 MTDiscord NodeCore's largest bland file is only about 900kb (only about as big as the distribution package of the entire game itself) so not that big by blend standards, I think. 20:19 ireallyhateirc my models are quite high-poly for Luanti standards 20:20 MTDiscord The CDB distribution is an "optimized" version for download time, and it doesn't include some of the media source that's not necessary for running it. Users are expected to have access to the git repo if they want the full source. 20:25 * cheapie giggles just a bit at "bland file" 20:26 ireallyhateirc hmmm no one said "bland" 20:28 cheapie [15:19:10] NodeCore's largest bland file 20:31 MTDiscord it was a typo, but you're free to derive entertainment from it 20:40 ireallyhateirc at least it wasn't a bald file 20:40 MTDiscord It actually is. It's a player model, and the player's hair is defined by the texture, not the model.