Tentative Velocity 1.0.0 Release Date and Afterwards

Hello everyone! Things are really moving fast here, especially with (yes) the tenth birthday of Minecraft. We have some very exciting news for everyone.

Recent Changes

First, we’ll start off with the most recent changes to Velocity for late April up until now (late May):

  • The text dependency was bumped to 3.0.0. This was a backwards-incompatible change but needed to be done before release for full support of 1.14 components. This will be the last breaking change before the final 1.0.0 release unless there is a serious issue in the next few weeks (see below for the proposed release date).
  • Velocity now has a /glist command controlled by the permission velocity.command.glist.
  • Velocity’s plugin message handling logic has been refactored, fixing a number of issues with plugins like WDLCompanion and similar.
  • As a consequence of the above, legacy plugin channel identifiers are now rewritten by Velocity for 1.13+ clients.

Velocity 1.0.0 and Afterwards

This is the main event you’ve been waiting for!

Provided that there are no major last minute issues (or a Minecraft update which intervenes), we will be releasing Velocity 1.0.0 on Wednesday, June 12th. This marks a major milestone and we are excited to bring this release to you.

Our goal with Velocity 1.0.0 was to provide a floor of functionality and stability. As a result, while Velocity is not fully-featured, it is a complete proxy suite that has been battle-tested for almost ten months. The primary sponsor of the Velocity project, Mineteria, has been running Velocity since mid-November 2018 with great success. Other people have been running Velocity with larger player counts with success as well.

Once Velocity 1.0.0 is released, we will continue to support and improve on the Velocity 1.x.x series and will concurrently begin development of Velocity 2.0.0, which is planned to add new features, improve the internal design, and fix rough edges in the API. We already have many ideas for improvements to the Velocity API through our own experience, and hope to gather input as we continue to learn how to best meet the needs of our users and plugin developers.

Versioning Policy

I am also taking this time to announce the Velocity project’s official versioning scheme. Most Minecraft server software is based on the version of Minecraft they are based off. However, this isn’t the case for Velocity as Velocity supports many different versions of Minecraft, from Minecraft 1.8 to 1.14.1.

We have adopted Semantic Versioning with some changes to fit the unique needs of the Velocity project:

  • Protocol version updates are not considered to be a minor release, but rather a patch release. We want to be able to cut releases quickly for our users without having to worry about potential API changes,
    • What this means: You can easily update to a new patch release of Velocity that supports a new protocol version, and do not have to worry about your plugins not working.
  • The stability of internal implementation details are only loosely guaranteed in patch releases.
    • That is, if a plugin such as ViaVersion works with Velocity 1.0.0, then it will very likely work in Velocity 1.0.1, but it will break in Velocity 1.1.0 or Velocity 2.0.0.
    • A plugin not reliant on internal implementation details such as BungeeQuack will work equally well under 1.0.0, 1.0.1, or 1.1.0, but will break under 2.0.0.
    • Our “loose guarantee” means that we will not intentionally break the internal stability of implementation-specific APIs unless they are required to effectively support a new protocol version or apply a bug fix that does not affect API stability.
    • We are adopting this policy primarily to provide more certainty on the stability of our internal changes.
    • What this means: Moving up a patch release will not break your plugins, even those that require knowledge of internal proxy implementation details. However, it isn’t required for us to preserve internal implementation API stability between minor releases or major releases.

More formal policies will be discussed with stakeholders and will be released as time goes on. This project has largely been led by me and I want to establish procedures as I plan to hand the project to the greater community once we grow large enough.