If any part of the Paper updating process sounds interesting to you, be sure to check in with us on our live-streams, in which several team members and contributors will stream themselves working on this project in turn. However, be warned, these are still very early builds and there will be dragons. Once the rate of new issues slows down, it will be merged into the main branch and made our primary release such that everybody can download Paper 1.17 from our website. If you do run these builds, be sure to report any issues you encounter, especially with plugins and game mechanics. These builds will still have bugs and we recommend you only run these on disposable test servers. Once we get to the point where we feel we’ve tested our current progress enough, we will provide public test builds. Once all the immediately obvious bugs are fixed, we will likely open up a small server to have a few people help us test further to find more bugs. This begins a cycle of testing, finding bugs, and fixing. The final step is testing most of the time the server will crash instantly due to behavioural changes in the server. This will always fail on the first try as some minor mistakes will occur in the previous steps.
Once we finish updating the server, we then start to try to compile the server. This is by far the most time-consuming step, and will likely take multiple days of ‘round-the-clock work by the PaperMC team and its lovely contributors.
Additionally, during this process, we may find that some patches need to be dropped entirely because they are either unnecessary (such as bugs fixed upstream) or the code has changed enough to make the only viable option a careful rewrite later on.
This follows the same process of updating the API, however with major changes of both Mojang and Spigot code during major updates in mind, our patches often require manual work in resolving issues. Step 3 - Updating the serverĪs soon as the API has been updated, we will work on the server itself by updating the nearly 800 patches we make to the server implementation.
Most of the time, our various tools can deal with most of the changes and we are left to do the clean-up.
In the best-case scenario, each patch applies automatically, however in the worst-case, we need to do a tonne of manual work. Once we complete fixing the build system, our first task is to work on our 300+ API patches. Paper’s build system is prone to breakage at pretty much any major change from either Mojang or Spigot, and with this in mind, we will need to be thorough and analyze their changes (among which is likely the Java 16 bump). Upon Spigot’s 1.17 release, we first need to ensure the build system will remain functional.
Spigot has waited until the full major release for the previous two versions therefore, the 1.17 Spigot release is our first milestone. Step 0 - Blocked on Spigotīecause Paper is a fork of Spigot, we have to wait until Spigot releases their 1.17 builds before any work on our end can start. If you’d like to skip the reading and hop right into watching us do it live in the PaperMC voice channels, feel free to do so after the Spigot release. With that, we have a lot of work ahead of us - all of which will be laid out in the following paragraphs. Like with any other Minecraft release, we get increasing volumes of questions on when Paper will be available. Spam comments such as asking for an ETA will be removed and you may be blocked from the organisation. Once significant issues are fixed and no new significant issues come up for some amount of time (undecided), mark builds as stable and remove warnings about them being test buildsĪny Paper team member may change the status of these, and more in-depth or important updates besides the milestones may be entered in the comments.Release regular test builds and resolve other critical issues.Fix server crash issues and other major issues discovered before test builds are released.Finish remaining patches which were initially skipped.Fix compilation issues from previous steps.Rebase Server patches (almost 800), resolving conflicts, preliminarily remove patches we believe are unnecessary.Rebase API patches (over 300), resolving conflicts.Preliminarily, these are the points we will need to fulfill:
This acts as a tracker for all issues and progress for the update to Minecraft 1.17.