Jump to content
  • 0

Version Numbering Issues


Question

Posted

Mod Organizer is doing a weird thing where the version number I type in isn't the number it displays. For example, 1.1.3a turns into 1.1.3alpha. 2.0b turns into 2.0beta. And when trying to enter versions in a date format, there's not enough room for characters in the box. You can't enter 12.12.2012d into the box because it won't accept the "d" at the end. You have to edit the meta.ini file directly instead.

Recommended Posts

  • 0
Posted

I think that the solution Tannin uses stems from the fact that the Nexus does not have a versioning standard.
As stated by Tannin some time ago:
“MO stores the version number from the file downloaded and compares it to the "global" version number of the mod. If they differ -> red. Therefore, if you manually set the version number to the "global" one, the version number will be green until the author changes that version number.
Nexus allows arbitrary values to be entered for mods and files, the mod version could be "0.1" and the file version "old", I will never be able to deduct what the author thinks implies "newer" from that so I won't try.â€

 

  • 0
Posted

That's a fairly good explanation as to why an "Update Available" alert might be inaccurate, but I'm not asking for MO to compare "old" and "0.1" and return "mod is up-to-date". I just want it to not change "old" to "0.0old".

  • 0
Posted

@BABACop

I don't know if you are a coder or not but have a look at this anyway. It's the source code for the version checking in MO.

You may or may not be able to understand it so I will give you a rough idea of what is going on.

 

Each element of the input version number is assigned to a Qstring. In this case it is a simply method of querying each Qstring to those listed on Nexus and display the result as either the latest or in need of an update.

Using numbers is easy to do this. 2 is obviously greater than 1 and 3 is greater than both of them.

 

Now if we were to try and add in all the possible variations of textual naming that may be used by authors, how is the code going to determine if 'old' is older than 'initial version'? Or what about 'Latest release' compared to 'Final version'?

 

The human mind is a fantastic thing, we can instantly see that 'Latest' is in fact latest! Designing working code that can do that is not a trivial matter. Have a look at Google's translation pages and see how the smallest variation can make a world of difference.

I fully understand your point of view, perhaps you though aren't fully aware of what is involved in these 'minor' code changes.

 

I truly hope your experience with MO, and also with the support offered, hasn't dampened your view of it. In my opinion you will be hard-pressed to find a better mod management tool. 

  • 0
Posted (edited)

Now if we were to try and add in all the possible variations of textual naming that may be used by authors, how is the code going to determine if 'old' is older than 'initial version'? Or what about 'Latest release' compared to 'Final version'?

Again, I don't want MO to try to compare "old" to "initial version" and determine which is newer. This is not a feature I need and I know perfectly well that it's not possible. All I want is "old" to not change to "0.0old" when I type it in. I'm sure it can't tell the difference between "0.0old" and "0.0initial release" any easier, so why mess around with the values?

 

In fact, why does MO even need to determine which is newer? Is it at all likely that the release version will somehow be older than the user's version? Unless the user is the modder, in which case I'm sure they'd have update alerts disabled for that mod, or a time traveler, in which case I'm sure they have more important things to do, no it's not. So why does MO even need to determine which is newer? Why doesn't it just check to see if they're the same? I'm sure it wouldn't end up 100% accurate either, but at least inaccurate update alerts can be turned off. Unlike 0.0old.

Edited by BAPACop
  • 0
Posted

I know it isn't a feature you want, but you are missing the point. To add in the ability YOU want to show text as you entered it is more than likely more effort than is required. Either it is a feature that performs checks of the version number or it isn't. You want it to just be a text label when it is much more than that.

You previously said you don't get mods from Nexus. That's fine. 99% of MO users do though and they use the feature as it is designed.

 

Why doesn't it just check to see if they're the same?

 

Did you not read what I said about the code? You are expecting code to just do something because you think it's a good idea. Software isn't developed like that, otherwise we would all be writing programs.

All I can say is: this is what MO does and this why it does it. If that doesn't suit your needs then I'm sorry.

 

I will say no more on this matter.

  • 0
Posted (edited)

I had a long response queued up, but I decided to shorten it to this.

You want it to just be a text label when it is much more than that.

There's clearly been a miscommunication somewhere, because this is not and has never been my position. Edited by BAPACop
  • 0
Posted

First, let's clear something up: 2.04.4 != a number ... it is alphanumeric and analogous to a.0d.d. Therefore, a.0d.d = a.0000d.d = a.d.d ... leading zeros (IMXP) are understood to be padding in alphanumeric sequential codes, so I think it is pretty standard to equate 2.04.4 to 2.4.4.

 

Second, I assume MO reports versions because it can --in turn-- because it uses them to drive its update system. It is one of several possible implementations and arguably works best. In addition to making it possible to test whether 'update1 > 'update2', this feature seems to opportunistically serve up something interesting, which I find useful.

 

The question would seem to be "why does MO 'correct' manual input in an annoying way akin to autocorrection-autoformating 'enhancements' that are on by default in Microsoft Office apps?", fe. The only answer I have that explains this is that it is opportunistic information delivery where the actual information serves as a component of the true intention for the behavior: the intended behavior of the update system.

 

Hence, there is no need to fix anything because this 'feature' is not broken; however, I might also argue that the user display and the functional driver could be separated at birth of the manual change. ... anyway, I don't think that this dead horse deserves any more beating, and MO enhancement requests can be submitted as described numerous times already on this thread.

  • 0
Posted

I'll reply to this once more because wth.

 

a) MO decides which version is older so that it can tell you "Your version is outdated", "your version is NEWER than that on Nexus" or "Your version is current."

 

b) Yes, this makes things complicated in the presence of completely borked version numbers but please let me assure you: MOs version numbering scheme is pretty good in comparison and it adheres to standards, it's the mod authors that don't.

 

c) You don't believe that MOs version parsing is good or that it's useful to have an order of version numbers? Then check out the changelog on Nexus and see it break for the most basic and established versioning scheme.

 

d) You may not like or want this functionality but I do and since I had to do the implementation I get to make the choice. You may not like it and you're welcome to argument against it but please also respect that I had my reasons and that I simply came to a different conclusion than you. A simple text field that can be compared for difference only would have been far far easier for me to implement but I was not satisfied with it.

 

e) version numbers that look like these: a.b.c.d indicate a specific versioning scheme which is one of the (or even the) most established versioning scheme there is. Companies like Microsoft, Adobe, Bethesda, ... use them (often internally). They are interpreted as four individual integral numbers.

2.04.4 means

major version = 2

minor version = 04 = 4

subminor version = 4

 

the minor version is NOT the decimal part of anything it is a separate integral number and therefore 04 is the same as 4.

 

If someone writes 2.04.4 and expects it to be interpreted as a single number with 2 decimal dots then he's obviously being silly.

f) a in a version number stands for alpha, b in a version number stands for beta. This is convention not my invention.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines, Privacy Policy, and Terms of Use.