tmedwards / tweego

Tweego is a free (gratis and libre) command line compiler for Twine/Twee story formats, written in Go.
https://www.motoslave.net/tweego
BSD 2-Clause "Simplified" License
124 stars 23 forks source link

Let me force compile even when Tweego thinks I shouldn't. #44

Open ChapelR opened 2 years ago

ChapelR commented 2 years ago

Is your feature request related to a problem? Please describe. I'm often making content with just a few passages for testing purposes, or compiling cookbook examples.

Having to add IFIDs to this content is a bit annoying and not necessary for this use case. It'd be nice if you could use a flag to just force Tweego to compile in spite of whatever issues it finds.

Describe the solution you'd like. Something like a --force flag that, when added, ignores certain errors that would otherwise prevent Tweego from compiling. Things like not having an IFID, or not having a starting passage. Obviously some errors can't just be ignored, but for those that can.

Describe alternatives you've considered. N/A

Additional context. N/A

tmedwards commented 2 years ago

An option to ignore errors will be used, and I don't mean just for your use case. This does not seem like a good idea. They're errors, as opposed to warnings, for a reason.

As to your two specific complaints. I'll admit, they may be inconvenient if you just want to bash something together quickly. The, literally, few seconds it takes to address them, however, doesn't seem all that onerous to me—and, yes, I deal with them too. Especially when the alternative is allowing developers to publish files with no IFID or starting passage.

IFID: Developers, cargo cultists or otherwise, publishing games with missing IFIDs is not something that anyone should want to see.

Starting passage: WAT?

ChapelR commented 2 years ago

My point with the start passage is to let the story format shit itself, if I for some reason want to compile without a valid starting passage. There's technically no reason why Tweego can't compile without a start passage. That one is less useful, though, and not needing the IFID is the main one.

I personally think at least the IFID should be a warning. I am aware of the benefits but I think that could be sensibly downgraded to a warning, or Tweego could warn and then insert the IFID it generates into the compiled project for the user instead of blocking the compile.

It's not that arduous, I agree, and its not a hill I'd die on, but I think the enforcing of IFIDs is not always a good thing in Twine. It makes things like example and template projects difficult, it's of questionable value to the average user/player, and there are cases in which an IFID doesn't make sense (like the aforementioned templates or examples, or just test projects) and there's no option for a user to determine that. In Twine 2 since the process is automatic you can at least ignore it, and users who don't know what IFIDs even are or whether they need them are never confronted with them.

Also, yeah I get that stuff will be misused, but I do think Tweego is intended to be for power users. If a file is technically possible to compile, even if Tweego doesn't think it will work, I feel like a way for me to compile anyway should exist. Like Tweego doesn't prevent compiling on duplicate passages, and I get that is classed as a warning and not an error, but I don't think the IFID thing is the end of the world. Worst case scenario isn't that bad. IFID-less games exist: people still use Twine 1.

And the starting passage thing, yeah most projects aren't gonna run in the first place, so allowing users to force the compile isn't that big a deal. There's plenty of issues Tweego won't catch that will prevent a game from running and its not like games with bad JS crashing the game engine are being uploaded left and right.

There is benefit in compiler warnings and errors, obviously, and the generic behavior maybe should be to not compile, I'm not suggesting you go nuts or anything. Just saying it would be nice to have the option.