Dev Log

From Minetest Developer Wiki
Jump to: navigation, search

You are encouraged to add stuff here always when something is discussed a lot, something nontrivial is decided or something complicated is made.

Do not add unresolved issues or questions here though - unresolved issues belong in [Github]. To-Do items should go on the TODO list.

If the [IRC log] is clear enough, just link it under a new topic. Add newer stuff to the bottom of this page, adding a new first level header for each month.



Lua mainmenu localization design

[IRC log]

We concluded that my suggestion was worth trying: "how'd it work if the gettext() function itself in lua was an actual API function, only in main menu code, that'd call gettext" "on server it'd do something else". The localization template would be updated by running gettext on the lua file as if it was a C header file. (needs testing whether it will actually work; otherwise a custom parser/preprocessor must be made) --Celeron55 (talk) 12:11, 2 August 2013 (MSK)

Version mess with proller resolved

Proller added some weather stuff, including 1) a new nodebox type NODEBOX_LEVELED, and 2) new data to mapblocks that is only sent over network, not written on disk.

1) Nodebox

NODEBOX_LEVELED was implemented by simply serializing the nodebox data like NODEBOX_FIXED is. This caused old clients to not know that the data exists in the node definition after the nodebox type, and continued to reading the selection box at wrong point in the data.

This was (or will be) fixed by checking the protocol version in use, and if it is version 21 or older, as used by 0.4.7, never sending NODEBOX_LEVELED, thus keeping old clients happy.

2) Map serialization format

Additional fields were added to MapBlock, to be sent over network but not serialized on disk, by adding an else branch to if(disk) in MapBlock::serialize(). With this, the map serialization format was incremented from 25 to 26. This lead to older versions of minetest not being able to read the saved map on disk, while it, in fact, did not differ *at all* from format 25. Between clients and servers, it worked well, because they negotiate the format in use. However, you can't negotiate a format with a file.

As for on-disk saves, this was (or will be) fixed by reverting to saving maps in format 25, but supporting reading maps of format 26, that happened to be saved in that format. Version 26 will never be used for anything actual, but rather when something new is added to the map format, version 27 will be used. To allow transferring the additional data with MapBlocks without messing up the file format, MapBlock::serializeNetworkSpecific() is added, the data of which is appended after the MapBlock in the TOCLIENT_BLOCKDATA packet. --Celeron55 (talk) 00:08, 2 August 2013 (MSK)

It was also discussed that in the future, a key-value based serialization format could be taken into use for more implicit cross-version compatibility, like [msgpack] or [celeron55's] [try] [at something like that]


Milestone rules

[IRC log]

By the end of September, the 0.4.8 milestone on github had accumulated a ton of issues and pull requests that were in no way required for the release, rendering the milestone useless. To fix this, three decisions were made:

  • Before adding an issue or pull request to a milestone, the dev must add a comment on github shortly stating
    • that and
    • why

the issue was added to the milestone. Also state the name of the milestone.

  • Agreement by another dev is not required. (Two devs agreeing on a pull request? Just merge it, dangit.)
  • The previous 0.4.8 milestone was cleared in order to start fresh. Backup
Personal tools