-
Notifications
You must be signed in to change notification settings - Fork 399
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Version Number Semantics - Replace 'major' with date-month? #4548
Comments
I'd probably vote against this as I don't think year-month really gains us much and just causes the version number to be longer and tougher to read. |
Do you have an alternative suggestion @ron-murhammer ? This is not a yes/no vote but a problem to solve with desired outcome. Dating to year/month is new data that we are not getting otherwise, it's somewhat useful to ballpark when a version was created. I'm thinking dev builds can replace the build number with 'SHA' to create a valuable triplet of info. Thinking about automatic user-uploaded bug-reports, the date can give us a ready reference to how old a version is. It is a choice to drop the digit altogether.. Keeping this eternal 1 around is not particularly helpful. "no" is not an answer to the problem here. |
I'm generally ok with the leading 1 and there is always the chance we would push to truly make a v2.x if say we did a massive UI overhaul and listed it on steam or something. Otherwise I'd be open to just dropping it if the majority of devs feel having just 1 version number + build is better. Its about a wash for me. |
It's easy to get used to it.. Agree that is the likely case for a v2, thinking ahead, hard to imagine what or when we would see a v3 or v4. Eventually I'd like to see the project closer to a continuous release model with auto-updates being relatively transparent and pretty frequent. We could agree instead on a medium/long-term release cadence. EG: beginning of every 3rd month we cut a 'latest' release. This idea is borrowing from Ubuntu versioning and gives the date additional meaning. |
@DanVanAtta As long as we could imagine what would happen on a major version change the current version model seems sufficient IMO. |
It would be much easier to accept change in this area if we could get backward compatible save games. Otherwise it just seems all too difficult. |
@RoiEXLab no disagreement current is sufficient, my suggestion is that it is actually excessive.
I think we can suggest reasons to go to a v2 or v3, if we can find a definition of what the number means so we objectively know when to change it, that would be great. In the meantime I'm leaning to us dropping it, or changing it to represent something else.
I thought Version.java was behind a serialization proxy, in theory that proxy would have the same effect. Serializing the as a string would be a good move IMO, but it's a bit independent of if we change how we define version number.
Serialization proxy should help, beyond that, save game compatibility is already broken so no difference if we change version number this release. |
An idea:
We can use this flow chart to know which version to increment: From a users point of view:
Update Added definition from users POV |
Seems reasonable to me.
If I'm hearing right, y'all are thinking about a major, backwards
compatibility breaking upgrade at some point, relatively soon(?), so
there'd be a rationale for the leading digit in this scheme.
Regards,
Thomas Leavitt
…On Fri, Jan 11, 2019 at 9:34 PM Dan Van Atta ***@***.***> wrote:
An idea:
major.minor.patch.build
- *major*
- maps from previous game cannot be loaded
- save games from previous version cannot be played
- *minor*:
- network connections to previous version do not work
- *patch*
- import bug fix(es) available
- significant new feature is available
- *build*:
- travis build-id
We can use this flow chart to know which version to increment:
[image: version-flow]
<https://user-images.githubusercontent.com/12397753/51069660-64d83e00-15e8-11e9-8961-4c9c3d393308.png>
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#4548 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AEPTgXWt3XLh2sf2s0MuUk7zlupOHqthks5vCXPMgaJpZM4Z4xmv>
.
--
Thomas Leavitt
Internet enabled since 1990
|
Thinking on this a bit more, there are some really solid benefits to: #4548 (comment) For users
compatibility testing automation We could at long last automate compatibility testing. To explain how that would work:
Checking network would be similar with two differences:
To get that up and running we'd need to install the travis piece first to start generating the baseline content. Once that is in place we'd add a test that downloads the files and loads them. |
@DanVanAtta |
@RoiEXLab the current system is without meaning/definitions. Should we be on 2.x? What does a 1.11 vs a 2.0 mean?
Please note:
We do not use version number for dependency management. Hence why it does not quite make sense and misses the audience. The audience does not really care if an API is compatible or not if they can still play the game: https://semver.org/#if-even-the-tiniest-backwards-incompatible-changes-to-the-public-api-require-a-major-version-bump-wont-i-end-up-at-version-4200-very-rapidly If we followed that proposal, could we automatically check compatibility as part of PR builds? What would it look like? A link is not super-helpful sorry, please define examples of when and what would change numbers specifically in this project. We need to be concrete about it please. |
Sorry if I wasn't clear enough: I was only suggesting to go with the syntax exclusively. Without any semver meaning of any kind, so we could in theory use a standard parser instead of writing our own for example. |
So instead of 1.2.3.12345 we'd have |
Ah, thank you for the clarification. The |
The problem with definition of XML syntax updates = major version bump is that it is already violated by version 1.9. We only tried once or twice to put out 1.9.0.1 or greater so I'm not sure that the idea of 1.2.3+12345 would see actual use? I don't really feel that major.minor.build is sufficiently broken to be worried about it. |
If the version bump is already violated, are things not pretty broken? If no update, what does our major version mean? You don't have to view major version bump as XML syntax updates as it can go for save games, which could involve delegates. Another way to define it from a users perspective:
|
Latest suggestion on table is these definitions: #4548 (comment) with this format:
|
@simon33-2 even if you have doubts on utility, does the proposed update make sense to you? @ssoloff @ron-murhammer kindly weigh in, any thoughts on this idea for version number definition: |
@DanVanAtta If we went with 1.2.3+12345, I'm still unclear on when we would move on the "3" number. If it's open to interpretation then how will it not repeat 1.9.0.0 when the last digit was never actually moved on? Which begs the question, what's the point of any change? |
'3' is the patch update to indicate notable and compatible game revisions. TBD if we agree on the big picture before we give that a more specific definition. 1.9.0.0 had a number of problems, in part previously the version numbers were moving at the final digit and it was by agreement we would start increment the '9' and use the '.0' and chop off the last '.0'. Because we were going to remove the last '0' value, why change it?
|
@simon33-2 I don't think I answered your question directly regrettably. I still think having 3 numbers is a more meaningful way to go. For example, we are now encouraging users to upgrade to a newer version of 1.9, the third number of your example would indicate that. For example:
vs:
In the second, the third number means there are new features, something new to pick up for a user that is still compatible with version 1.2. Perhaps it's worth noting that some code changes that change the build number are not user facing at all, like refactoring to clean up or that is in prep of other changes. I think in practice we'd change the 3rd number when we think it's worthwhile for a user to upgrade to a new version. |
Topic is resurrected in: #4875 |
Summarizing a decision point in: #4346
context and example
Current version number has 3 numbers, example:
Note:
Problem to solve
1
in front is not very meaningful, not clear when it should be changed and what meaningful value it provides over the 'minor' number. It seems to be, just-another-number, clutter.Acceptance Criteria/To resolve:
Should have a reasonable meaning and objective definition of when we would increment the major version, eg:
1
to2
. Alternatively we can choose to drop it or replace it.My Suggestion
Relace the
1
with current year-month and use only 'minor' for compatibility checks. EG:The text was updated successfully, but these errors were encountered: