Community Vote

pulls out Jumanji drums and chants 1.13…1.13…
Jumanji Drums - YouTube

As many of you know, we’ve had a lot of plans for breaking the API to keep it moving forward, and with 1.13’s development being a focused on improving usage and taking the necessary steps to maintain 1.12’s support within the Sponge community. As many plugin developers and sponge staff know, we’ve been planning on having API 8 for Minecraft 1.13, however, we’ve recently decided to make it a community decision whether API 8 is focused on Minecraft 1.12’s environment, possibly improving maintenance costs for the support of API 8 and Minecraft 1.13’s equivalent of SpongeAPI.

We have already made some changes for API 8 that are already on our bleeding branch:

To list a few of the API changes that we want to make for our next API version are:

All of these are independent of whether the API these are merged for are for Minecraft 1.12 or Minecraft 1.13.

One notable exception is the Command API changes. Our goal for API 8, if there is a consensus for it to be for Minecraft 1.12, is to make breaking, but easy to fix changes, so that plugin developers can quickly update their plugins to ensure a quick API 8 uptake. Commands is a major break, this is due to the fact that Minecraft 1.13 the base system for commands has undergone significant changes. Such changes will require significant rework, leading to the decision that the new command system will be for Minecraft 1.13, whatever the API revision that becomes.

  • API 8 for Minecraft 1.12
  • API 8 for Minecraft 1.13

0 voters

Of course, the results of this vote does not mean that the Sponge team will drop support for Minecraft 1.12, we still honor our promise to support the version for at the very least another year.

9 Likes

I just to clarify some questions we’ve had on Discord, but please note that anything I say here is said in a personal capacity, i.e. the way I see things:

The Sponge API version is meant to be independent of Minecraft version. While we’ve had API 3-4 for 1.8.x, we then had 5 for 1.10.2, 6 for 1.11.2 and 7 for 1.12.2, this is just the way the dice rolled.

My personal thoughts behind why API 8 for 1.12.2 might be a good idea is due to how much 1.13 changes for mods - I suspect that many modpacks will remain on 1.12.2 for a long time. Providing an updated API toolset for Sponge plugins that target that ecosystem that has some of the features we’ve developed already might enhance the experience for developers and server owners alike. On the flip side, a break mid Minecraft version may cause some confusion around the time of an API release, as some servers may wish to hold onto API 7 plugins that may not see an update for API 8.

This is an important discussion that affects both developers and server owners alike. Everyone’s opinion is valid. It boils down to a stable platform that will always take API 7 vs a one-time break for API changes that will support developers in (could be) creating more stable plugins in the long run, though potentially creating disruption in update while plugins update.

I want to spell out what might happen in both scenarios. There may be changes to these plans, as I said, this post is done in a personal capacity. Things may change from this. I do not endorse either option.


If it is decided that API 8 is going to be for 1.12

  • API 9 will target 1.13, not API 8. There are too many differences between 1.12 and 1.13 for there not to be a break. This means that there will be a break for 1.12.2, and again for 1.13. We cannot avoid the latter break.
  • API 8 (1.12.2) and API 9 (1.13.x) will be closer than API 7 and API 8 (1.13.x). There will still be breakages from 8 to 9, but potentially fewer.
  • We cannot give an estimate of how much will break between API 7 and 8, but we would look to ensure that any breaks are easy to fix, so that API 7 plugins can be ported to API 8 with minimal fuss.
  • No large breaks will be made, for example, the scheduled Command API changes will not land until 1.13.
  • An API break will afford us the opportunity to fix some issues cleanly, reducing the burden on maintenance.
  • Developers will get a better API for a version that will last for at least another year, some new features will be available that require breaks in the API potentially enabling new capabilities.
  • There may be a period where Sponge for 1.12.2 is switched to build on API 8 but some plugins are yet to catch up, some servers may be hesitant to update for a while dependent on how critical the plugins are.
  • Plugins written for API 7 may not work on API 8.
  • API 7.x would go out of support at some point when API 8 is released.
  • API 8 would be released later this year, it is not an imminent release.

If it is decided that API 8 is going to be for 1.13

  • 1.12 will remain on API 7.x long term.
  • API 8 will target 1.13.
  • Plugins written for API 7.0 will work for the entirety of the life of 1.12.2, no period where plugins need to catch up withing the MC 1.12.2 lifecycle.
  • Some features (and fixes) may not be backported due to the inability to break the API.
9 Likes

Making it aware that we will be coming to a decision by Friday, August 10th. As of current writing, the vote results are as follows:
200 votes total
138 votes for API 8 on Minecraft 1.13
62 votes for API 8 on Minecraft 1.12

As the toolchain is being updated, we’re already working on merging/improving some of these features to be merged into bleeding. Meanwhile, the current API 7 implementation branches are still working on bug fixes and performance improvements.

1 Like