-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Switch to SemVer #6073
Comments
because we are only using semvar in theory. |
There will be 0.5 soon with some major changes. |
I actually agree. An outsider would look at this as an incomplete project, because we don't have a 1.0.0 and the README literally says "This game is not finished". The problem is that on the inside, Minetest has both:
So we get people saying that the game isn't complete, that it is, and that the game will never truly be complete all at the same time. |
We don't use semvar at all, it only looks like it. What we're using is basically this: 0.major.minor So we try to keep compatibility between minors updates to a major version (eg, 0.4.15 -> 0.4.16), I'd much prefer if we started using semvar, however |
Will the first thing stay 0 forever? |
i also want to use semvar as 0.4.16-dev is for releasing 0.4.17 which is absolutely not logical |
|
Minetest never used SemVer. Note that not every version with 3 numbers separated by periods is a SemVer. In most of the cases, this is just a coincidence. Only a very few software projects are actually using SemVer, and those which do so state this explicitly. Also, this has been discussed before: I am in favor of MT adopting SemVer from 0.5.0 on. What I like about SemVer is that it makes breaking changes (from 1.0.0 on) very visible, so this is a good push to consider breaking compability to be of serious business.
1.0.0 usually signals “completion” in the sense of that it is reasonably polished, is fully playable (and enjoyable) and tested well. What it does NOT mean it is the final version ever. But this is just a convention. Also, there is no limit on updates after 1.0.0, which makes this “just” a milestone. I think 1.0.0 could be considered a major milestone at which point the core APIs are complete, no longer in flux, core features are done, bugs are fixed and breaking backwards-compability (no matter if worlds or Lua code) is considerd to be very serious business. I think having such a milestone is critically important. Please remember that Minetest is an engine! If you are not even planning to eventually stabilize the APIs, it's not a good engine.
This looks a bit like cheating to me as it elegantly hides the fact that Minetest is still in alpha stage. Any version larger than 0 is usually considered feature complete.
This is completely irrelevant to MT development. |
You can easily read the SemVer rules on http://semver.org/, but here I write down some implications for Minetest if SemVer will be adopted:
|
a program is never complete. World of warcraft is currently in 7.2.0 version, each major version is complete version with many features and has breakages. If minetest cannot be finished zero has no sense in our version scheme except symbolic. For the semver we must use it yes. |
1 similar comment
a program is never complete. World of warcraft is currently in 7.2.0 version, each major version is complete version with many features and has breakages. If minetest cannot be finished zero has no sense in our version scheme except symbolic. For the semver we must use it yes. |
What you have heard is the message from nostalgia freaks. With every Minecraft version, there are complaints, just saying that Minecraft 1.0.0 was complained about is taking it out of context. And besides that, take my personal experience: I started playing Minecraft when 1.4.5 was out, and I still play it to this very day. </offtopic> |
But I must admit that Mojangs relöease and development philosophy was awesome! They did not use SemVer but they released bugfix versions figuratively (and sometimes literally) every other day. They were super open about the project's status, they listened to the players, they implemented suggestions by players on Twitter, they had a regular release cycle for weekly builds, etc. (I wish MT devs would be at least half as open and communicative as the Mojang team was before the MICROS~1 disaster.) Unfortunately Microsoft stepped in and ruined it completely. To SemVer: Use it or not. But stick to it. Using arbitrary strings as versions is fine, too. But make it at least somewhat consistent and use tags for the versions in the Git repository! |
@dsohler please keep in mind that Minecraft had paid employees and lots of them, whereas we have volunteers, and only a handful of them. There is only so much that can be accomplished with a small volunteer team. |
@NathanSalapat yes, that is correct. I just like to remember the glorious times of Minecraft 😄 |
Take your time with the next version, pretty nice stuff here! |
Hmm, this issue is now open for quite some time, but no decision on the actual question whether to switch to SemVer has been made. If you are not willing to change the versioning scheme, please just say so and close this issue. I don't think it makes sense to keep this issue open forever. I would of course welcome a switch to SemVer (if done seriously), but it is not terribly important and not the end of the world if the current versioning just stays like it is now. |
@Wuzzy2 Honestly, I don't consider this game complete at all. Sure, the engine is pretty good right now, but there are things I find could be more graphically pleasing or some things that the engine still doesn't do well yet, such as client-side sound. As for MTG, that's definitely nowhere near being a creative sandbox or an enjoyable game. For now, I actually think the Versioning is fine, it's more the slow development pace that I can't stand. (Which isn't really a problem that can be solved without more people collaborating.) |
The in-development version issue, going from 0.4.16-dev to 0.4.17, is changed now to the correct 0.4.17-dev. |
I think right now is an excellent time to drop the leading '0.' and move to major-minor-patch.
Any support? |
i prefer the 5.0.0 as it's the 5th major MT release. A software is never complete. Look at grep, ls and other tools, they seems complete but they are patched like any other software. |
I agree. Shall we vote on it? I suggest doing alternative vote on options: 5.0.0, 2.0.0, 1.0.0, 0.5.0.
This is coincidentally in order of my preferences |
@paramat I think it will be a better option than "0.x.y". But there's still several issues with this decision, for example we still don't have any mobs, nor the UI is finished by any means. I feel that there still will be many people who is opposed to this versioning scheme switch. @rubenwardy Hmm... Actually, I'll go with the first option. "1.0.0" is something, what will lead people to think that this version is a feature-complete release. "2.0.0" makes almost no sense. So, my vote goes for "5.0.0". |
@Iniquitatis read my comment. World of Warcraft 1.0.0 has no PvP but it have in 1.4. |
I think MTG not having mobs shouldn't have anything to do with such a decision. MTG is just one game, even if it happens to be the only current official one (Content DB is going to give other games more visibility now anyway). The engine certainly can support mobs either way, and shouldn't have to base decisions about versioning on the state of a single game that uses it. I'd prefer to drop the zero and see 5.0.0. |
@nerzhul Community reaction is something that should be considered. "1.0.0", I think, will lead to more questions and negativity than "5.0.0". Though, I might be wrong. (And I don't think that PvP is mandatory to MMORPG genre. :P) |
Yeah, releasing > 0. just means we have interversion support (which we aim for anyway) |
Yes mobs are a game thing, the engine supports mobs :) The UI has technically been finished and functional since MT 0.3, just not very pretty and formspecs are not good to work with. I don't think the community will mind much at all, most know MTE has been post semver 1.0.0 since MT 0.3. If they don't they need to learn that :) The perception that MT is 'beta' and incomplete/not fully functional is annoying and is best corrected. 5.0.0 creates a logical and undramatic continuity from 0.4. Anything else (like 2.0.0) is too dramatic a versioning change and creates expectations of 'completemess' (or even 'completeness'). |
Good point, this should be removed.
This is the mistake of interpreting personal disatisfaction with some aspects as meaning MTE is 'in beta' and 'pre-release'. It has been fully functional since MT 0.3 ("the engine is pretty good right now"). It will never be 'finished' or 'complete' as there will always be more to do, and will always be lacking in the opinions of some people. |
PR #7440 |
@paramat Sorry, I might be wrong, but I still don't see an API for mobs anywhere (in the wiki, codebase, etc.), which means that potential (sub)game developers cannot fully rely on this part of the core engine. |
entities are not mobs. We need really a mob API. I think it's a good candidate for a 5.1.0 version, 5.0.0 has sufficient features, now we need to polish remaining points |
Yes we don't have a specificly designed mob API :) But various general APIs exist to make mobs completely possible so i consider mobs well supported by MTE. |
Support stated for '5.0.0': paramat, rubenwardy, Ezhh, nerzhul @lhofhansl @ShadowNinja @celeron55 ? |
The first digit doesn't seem to be changing anytime soon. If it's going to stay '0' all the time, it might as well be dropped. :) |
I'm no core dev, but I say just go for it. 5.0.0. |
@paramat yes we have good mods, which are a good basic for a powerful core engine API :) |
Looking at updated #6073 (comment) i suggest this is officially decided as |
You still have failed to specify what to do with Note that a version of form However, SemVer has an alternative to
|
See https://semver.org/ for the spec. So i oppose strict semver. If semver has to be strict then i think we should just use our own major.minor.patch scheme "that is similar in some ways to semver". I'm not sure what the thread author means by using semver, strict or not? |
The core devs are expressing their support for '5.0.0' not strict semver. My comment above #6073 (comment) asking for opinions is about dropping the leading 0, not about semver. |
Actually, it is support for semver too however it doesn't need to be as strict as wuzzy says. As long as major, minor, and patch are used correctly the interversion code doesn't really matter too much. We already have a commit hash in the version name given in-game anyway, which is the same. M.M.P-dev is just a convenient way of referring to the development branch. |
Edited my comment above as i misunderstood minor incrementing. |
You are always free to “steal” certain aspects of SemVer without following it religiously. But then just don't claim you are following SemVer unless you really commit to it. |
See #7449 |
I added the version bump PR, the strictness of the version management doesn't depend on this version specifically but for patch releases & minor non breaking releases |
I've been following this project for a long time, and I saw one bad tendency, presented in many aspects: retrograde development model.
I thought, MT is using Semantic Versioning? Maybe, I'm wrong, but let's look in Semantic Versioning Specs, item 4:
(http://semver.org/#spec-item-4)
Here goes the main question: why the project leads are so afraid to break backwards compatibility (taking into account we're at 0.x)? Sure, there are many mods based on "stable releases", but isn't it the time to move forward, especially at this development stage?
(And I'm sorry for another "holywar" thread.)
The text was updated successfully, but these errors were encountered: