Original Post — Direct link

With the latest FFF announcing that in 2.0 stack inserters will be named bulk inserters and the new, stacking inserters will be stack inserters (which is good!) it makes sense to go ahead and change stack inserter to bulk inserter in 1.x

  • easy change, swapping the names shouldn’t require much dev time

  • adding the updated internal name will allow mods to switch over earlier (and it should be possible to allow both internal names to point to the current stack inserters, not breaking any mods)

-get players used to the change while it’s clear exactly what someone means by “stack inserter”, in 2.0 they might be using the outdated name to refer to a bulk inserter.

-bulk makes more sense than stack for these inserters anyway.

May as well bite the bullet now and get some confusion out of the way before 2.0 adds much more on top with all the new features

External link →
3 months ago - /u/kovarex - Direct link

Originally posted by Alfonse215

I agree with this. Except for this:

adding the updated internal name will allow mods to switch over earlier

That's the thing: should they actually change the internal name? Like, ever?

That would break a lot of mods, and it's not like there could be a period where the entity has two internal names as a grace period. Every mod that deals with stack inserters would instantly break with whatever version they change that internal name on. And it would be difficult (but not impossible) for individual mods to have their own version with a grace period, where they work with both the old name and the new name depending on which version of Factorio they're running on.

It would be better for them to keep the internal names the same forever. Yes, it's confusing for mod makers, but most Factorio players aren't mod makers and really don't care about the internal name. But they do care that a bunch of their favorite mods don't randomly break because of an update.

Programmers have to deal with hacks all the time. What's one more?

The internal name of the new inserter should probably be something like "real-stack-inserter".

You say "Programmers have to deal with hacks all the time. What's one more?"

I say: "Not on my watch"

Seriously, we alwyas keep internal names up to date with how it is called, because all the code, tests, lua code, etc. etc., it would be crazy.

Imagine you wrote a lua script, where you add a "stack-inserter" item to the player, just to be surprised, that it got bulk inserter instead ...

3 months ago - /u/kovarex - Direct link

Originally posted by BengiPrimeLOL

I don't know if Factorio actually uses it, but there's a system called symantic versioning that is often used and very useful in software, and even when it's not formally used, the fundamental principles are loosely adhered to. Simply, symver says you have 3 basic numbers in your versioning, XX.YY.ZZ (ie 1.2.73) that are defined as such, with possible implications for a game like factorio:

XX - Backward Incompatible Features. major changes _that break previous compatibility_. Changes like this would likely see mods break completely, saves may not carry over or require big conversions that may break some aspects of the save.

YY - New, Backward Compatible Features. minor changes or feature additions that do not break any backward compatibility. Mods would likely work, but mod makers may want to add bits to their mods to tie into new features. Save files would likely be safe.

ZZ - Minor bug fixes. Generally no new features, mods & saves would likely be unaffected.

Given this, changing something as fundamental as a name of an item would likely constitute a major update, and would not be allowed on a 1.X branch. If it were a purely cosmetic change, like they have a 'display name' that's just used for presenting it to the user but has no code implications, that might be a different story.

This is all just arbitrary speculation, I'm not saying Factorio actually does this. If you're interested in reading more on symver, there's a nice website here:
https://semver.org

Yes, TL;DR, we try to only break mods in major versions. And the change would need an internal name as well, and it needs to be done at the same time, so 2.0 it is.