Page 1 of 1

New minetest protocol contract

PostPosted: Sun Mar 19, 2017 08:11
by nrz
Hello to our users, forkers and developers.

Recently we discussed about protocol versions end of life. This is important to have a such software development contract, because it permits to do some code cleanups after an expiration time, especially on legacy parts which are not needed and permits to continue evolution in the protocol without making code spaghettis with carbonara.

We have defined we will maintain protocol versions for two years. When releasing the next version of minetest we will increase our protocol to v24. This means minetest 0.4.11 will be the older supported version

This has two impacts:

* If you have a older client version you will not be able connect to 0.4.16 servers anymore.
* If you have a older server, 0.4.16 clients will not be able to connect anymore.

If you want to see which features are added since last minimum protocol bump, please look at the discussion on github: https://github.com/minetest/minetest/pull/5411 some of your users don't have them, and will not have it

Thanks for reading.

Re: New minetest protocol contract

PostPosted: Mon Mar 20, 2017 01:49
by Wuzzy
I'm OK with this. Thanks for this announcement, because announcements like these are important and appreciated.
But I'm only OK with it because it does not affect me, I can quickly grab the most recent version of Minetest. xD
But I still think 2 years is very fair.

Are there any download sites or software distributors (read: GNU/Linux package managers) which still ship version 0.4.10 or older? Because making sure that stone old versions don't stick around is important IMO.
If there really are such places left, I think some people need a kick in the butt. ;-)

Re: New minetest protocol contract

PostPosted: Mon Mar 20, 2017 07:58
by nrz
Package managers should be at least upgrading to 0.4.11 which is not a great deal for them. A game is not a standard package it cannot be stucked to a version for 5 years (hello Debian). Or at least the newest version should be in backports

Re: New minetest protocol contract

PostPosted: Mon Mar 20, 2017 08:07
by Linuxdirk
nrz wrote:We have defined we will maintain protocol versions for two years.

Sounds awesome! Maybe not only for protocol but for all of the APIs, too? This would speed up the improvement of Minetest a lot!

Re: New minetest protocol contract

PostPosted: Mon Mar 20, 2017 12:33
by rubenwardy
Linuxdirk wrote:Sounds awesome! Maybe not only for protocol but for all of the APIs, too? This would speed up the improvement of Minetest a lot!


Just checking - This is about dropping support, not maintaining support - before a few days ago we had support for 4/5 years (iirc)

Re: New minetest protocol contract

PostPosted: Mon Mar 20, 2017 12:46
by Linuxdirk
rubenwardy wrote:This is about dropping support, not maintaining support - before a few days ago we had support for 4/5 years (iirc)

Oh my god :( Sounds pretty much unmaintainable to me! Two years should be more than enough.

Re: New minetest protocol contract

PostPosted: Mon Mar 20, 2017 19:49
by nrz
two years is a good concensus to maintain code, minetest team evolves and some code parts needs refreshing, and are for somes, blocked by compatibility over all minetest life. 2 years is sufficient. Can you imagine these days playing a game non updated since 2 years just for compat ?

Re: New minetest protocol contract

PostPosted: Mon Mar 20, 2017 20:22
by nrz
to complete, since 3-4 years, many developers are moving to a more agile development, and that means use application contracts, it's contracts defining the protocols to interoperate, and add a End Of Life date. This was added by the microservice model for high availability infrastructures.

Re: New minetest protocol contract

PostPosted: Tue Mar 21, 2017 06:39
by Linuxdirk
nrz wrote:Can you imagine these days playing a game non updated since 2 years just for compat ?

I couldn't even stand playing a game that outdated!

Re: New minetest protocol contract

PostPosted: Tue Mar 21, 2017 07:01
by Nyarg
If I properly understand conversation stream, MT step to majority update, it is good news.
But:
nrz wrote:* If you have a older client version you will not be able connect to 0.4.16 servers anymore.
* If you have a older server, 0.4.16 clients will not be able to connect anymore.

That product behavior allowed while MT is beta, after release it point at serious system problem (in engineer terminology)

Re: New minetest protocol contract

PostPosted: Tue Mar 21, 2017 07:32
by Linuxdirk
Nyarg wrote:That product behavior allowed while MT is beta, after release it point at serious system problem (in engineer terminology)

If MT had some sort of release branches where you could backport compatibility to older versions: yes. Since MT does not have that it's kind of rolling release and thus backwards compatibility is only a nice-to-have feature that is subject to change.

Re: New minetest protocol contract

PostPosted: Tue Mar 21, 2017 07:51
by rubenwardy
Nyarg wrote:If I properly understand conversation stream, MT step to majority update, it is good news.
But:
nrz wrote:* If you have a older client version you will not be able connect to 0.4.16 servers anymore.
* If you have a older server, 0.4.16 clients will not be able to connect anymore.

That product behavior allowed while MT is beta, after release it point at serious system problem (in engineer terminology)



He means older than 0.4.11, which was released 2 years ago

Also, this is a game. Many other multiplayer games require you to use the latest version to play

Re: New minetest protocol contract

PostPosted: Tue Mar 21, 2017 08:37
by nrz
Sorry i wasn't clear, but yes, i talked about 0.4.11, not 0.4.15. The contract is to maintain older protocol versions for 2 years. At this moment there is no recycling needed for map or lua calls, but if there should we should have a similar contract (for example if we change compression algorithm)