Why does the Unity lts version keep coming out without updating the same version?
For example exist “2020.3.25 LTS”, and add “2020.3.26 LTS”.
I think there should be only one per version.
You think wrong. Having access to previous LTS versions is important in case of introduced bugs or performance regressions.
It’s actually STS. A “short time support” Someone at Unity just likes a joke.
But seriously,programmer119, your question has lots of merit. But it’s wise to remember that Unity is and always will be in Beta mode. The term LTS has no real meaning at all. But it’s still the best engine around at the moment.
No, it has exactly zero merit. No serious software updates under the same version number, it’s against every versioning rule in existence. And it is not random, versioning has its important purpose. You just need to recognize what version numbers mean.
2020.3 is the LTS.
.25 and .26 are different, contains different set of bugfixes. They need to be different so you can identify which version you have on your computer and what version Unity is offering right now. Also Hub needs it to identify if it can update your software or not.
Also you can look up, which version contain which bugfixes.
It’s really not rocket science.
So the guaranteed bugfix update for two years isn’t enough meaning?
Version numbers exist to differentiate between releases. A single number has limited practical use. For the most part only being helpful in branding and discussing the overall release. Once you need to start discussing the fine details it rapidly loses its value.
Just as an example Windows XP had three major releases. The third release (service pack two) was wildly different though to the point that it was practically a new OS. If someone had a problem one of the first things you had to do was to ask them if they had the second service pack because just asking if they were on XP wasn’t helpful.
I think the OP is referring to the (unusual) practice of the updated version not replacing the older one.
Most software does not do this. If I have windows XP, and I upgrade to SP1, I don’t have both XP and SP1 installed, I have SP1 and that’s it.
If I upgrade Photoshop 4 to Photoshop 4.1, I don’t now have two versions of Photoshop installed, I have only one, 4.1.
Unity is different in this regard. You don’t “upgrade” an old version of unity, you install an updated version alongside your existing version. It’s a valid question as to why that is, because it’s not the norm for software…
I try to understand this upgrade method. However, considering the meaning of LTS, it is not a pretty method and I think it will be a way to get tired from the perspective of distributing it. thanks for your answers.
What is there to understand? You use unity to build software and as a result, you cant just update and wipe out your previous version - everybody needs to first check the new version doesnt introduce new issues, break things that were previously fixed etc. So there is never a use case where you would want to just update and wipe out your previous version without first checking it alongside.
You can just uninstall the previous one, once you have upgraded your project and confirmed it is working. Thats really common practise in all of software development, not just unity.
When I heard that 2020.3.25 was set as LTS, I thought it was pretty to update the 2020.3.25 itself without releasing a minor version after 2020.3.25
Oh, and I’m not that serious about this topic. It was meaningful enough to know what other people think.
I can’t speak English, but I’m excited to be able to talk to various experts with the help of a translator.
That may be so but as I pointed out before it is not a very common practice in most other software.
The explanation (that you need to ensure your project still works with the new changes) makes perfect sense but people are being unnecessarily harsh to the OP here. Most software does not keep old versions when you “upgrade”, for example you do not install a new version of Excel, and then make sure it still opens your spreadsheets before deleting the old version. The upgrade for most software is “in-place” and the old version is nowhere to be found once you have upgraded.
So I am not sure why everyone is acting like OP is an idiot for asking why Unity is different in this regard. It’s a valid question. It does have a very reasonable answer but for someone who is used to consumer-level software packages they may not realize the reason.
It is not a common practice in most other software because most other software is used as an end product not as a foundation to create new applications. The foundation doesn’t have to be perfect but if it is error prone then it only serves to multiply the problems in the end product.
I’m not seeing that at all.
Telling someone their question has zero merit, sarcastically asking “what is there to understand?”.etc. I dunno, just seems a little harsh…
Windows != development software. Excel != development software. Photoshop != development software. Photoshop/excel/etc work in an environment that changes very little, and create end products that work outside themselves. (A unity project works only in unity.) Moreover, those products have importers/exporters built in that allow you open old files and export to old or alternate files. Unity is an IDE with a vast amount of libraries, it is not as simple as a .psd, or .xls, since what unity publishes runs by itself on a variety of hardware and platforms and those change constantly (and not at the same time).
Development tools have multiple deployment targets as well, but as they are usually platform specific, there is just a settings (or includes) rather than a whole engine. But since unity builds for several targets, several things must be maintained. And to take advantage of new/improved features on say, a new version of Android, updating and requiring everyone to update is pretty silly. On top of that, game development usually takes a while and spans target versions. Some games may want to build games for the latest hardware as their game is a few years from release. Where a live game with regular updates can’t use those features. Hence an older version is required.
It makes perfect sense to have multiple versions for a tool that targets multiple platforms/hardware, and has a growing feature set, some of which is based on those platforms/hardware. It is highly inaccurate to compare it to photoshop/excel/windows, it is not remotely the same category of software.
In fact, prior to the hub, we maintained multiple versions ourselves. While not overly complex, it was a pain and clunky. Having the hub handle that has streamlined the process.
It’s not a valid question because “software” is broad term that litterally encompases almost everything programmed. It would be like asking why Photoshop doesn’t have full game controller support, or why a cash register doesn’t have have support for VR, or the ability to update my phone. Excel can’t configure my router. “Software” are different things. Saying it’s versioning is “unusual” for software incorrect, unity is in a unique category of software. Development tools are actually collections of software and tools. Unity isn’t an application like photoshop, it is a collection of many things.
It is a valid question.
Unreal Engine does in-place upgrades.
Hell, so does Xcode and Visual Studio (across same-year release) and those are way more critical to software development than Unity as they ship with compilers and linkers.
Unity is an outlier.
Every update of unreal has a different version number. While you can replace current install with higher version, it WILL have a different version number.
The standard is that every release has a different version number. It is done this way so you can pinpoint which release introduces or fixes specific problem. And abandoning that version number is a rather insane thing to do when software development is involved.
Current approach allows you to use multiple versions at the same time, one for each project. So, hypothetically if you have 2021.2.5f1 and 2021.2.5f2, where 5f1 has a glitch in project A, but works with project B, while 5f2 fixes project B glitch, but introduces one that breaks project A you can install them both and use them both simultaneously.
Unreal engine has more brutal upgrade process, where it can simply break all your code because they deleted API you were using, and introduced a new API instead.
Rather than looking at “Software” you should be looking at “software libraries”. Because Unity is acting like a library in this case and is not a software akin to photoshop. It is a development tool, not a “consumer level product”.
For example, in javascript, there’s an “aframe” package. (apparently I can’t post a link to it? Oh well). This package has 32 versions available at the same time, if your project starts to depend on one, even if the new version is released, your project will be using the old one. It is the standard behavior in case of development tools and libraries.
The standard behavior which unfortunately has also often been a culprit when it comes to security issues…
The idea is that “new and shiny is less trustworthy than old battle-tested solution”.
Also, blindly updating can result in destruction of your codebase and security issues.
Here’s a recent story (google “faker js”, pretty much):
https://www.bleepingcomputer.com/news/security/dev-corrupts-npm-libs-colors-and-faker-breaking-thousands-of-apps/