Sponge Status Update 10th February 2019

Welcome to the first Sponge Status Update for 2019. The past couple of months may have seemed a little slow to the untrained eye, but the Sponge team has been hard at work not only on the 1.13 update, but also improving our services such as Ore so that we can better support the community moving forward.

With lots of Forge developers settling in on 1.12 we’re seeing Sponge put to use on all kinds of modded servers and with it plenty of bug reports. We’d like to remind everyone that 1.12 is going to remain in Long Term support for the foreseeable future so we really appreciate users bringing these issues to our attention so that we can keep improving the experience.

As many of you have noticed, the 1.13 update has been taking a significant amount of time to complete as a result of the significant changes that were made to both the base game and the simultaneous changes to Forge’s toolchains (more on that below). These changes have meant that in order to properly update Sponge for 1.13 approximately 150,000 lines of code need to be updated, in addition to the time spent waiting for the new toolchain to be built. While it would have been possible to rush out an update earlier by making a lot of quick fixes, we’ve decided to do this update properly so that our developers don’t have to maintain those hacks in future. Thankfully this is largely a one-time effort, for 1.14 and future releases we should have an easier time updating as a result of doing this update properly. We appreciate the Sponge Community’s patience while we continue the development process.

Developer Update

I’d like to preface development updates with a summary of the work needed to have gone into moving forward with Minecraft 1.13. Sponge initially started implementation development with ForgeGradle 2 in 2014, and that toolchain has been updated and hacked to bits to get various functionalities working (like getting SpongeCommon setup with a vanilla dependency, and then SpongeForge overriding that dependency only for SpongeForge) until some community members in the MCP/Forge circles rewrote ForgeGradle from the ground up to improve functionality and ease of use. This tool required several updates as well from the toolchain that it itself would use, including the folks at MCP providing improved patches to reduce future maintenance when performing upgrades between Minecraft versions. Likewise, the Forge team has rewritten their mod loading system to replace what is called ForgeModLoader with ModLauncher. This new mod launching system was designed with compatibility in mind to attempt to resolve all sorts of dependency issues that some administrators may be familiar with where renaming SpongeForge’s jar was needed before their server could start. With all of these changes, and Sponge’s toolchain relying heavily on these changes to be completed before our own tooling can be updated caused extensive delays. Fortunately, everyone’s patience is going to pay off as I am proud to announce that our first commit enabling a 1.13 workspace for Sponge development has been made! We’re very excited to get our hands dirty and ~rip apart~ update the API for all the underlying breaking changes from 1.13, including but not limited to: Extent API, Commands API, Data API, Registry API, and several others that are bound to be mentioned in future updates.

In related development news, we’ve added two new Core Developers recently: one already previously announced, @Cybermaxke, and one that a few people have noticed making bug fixes and recently, making the best attempts at fixing interactions in SpongeForge and SpongeVanilla: @Morpheus ! Morpheus is morphing into our dedicated PR manager as a new post to address the dev team’s lack of progress made at improving turnaround time on PRs, addressing issues, and decision making when it comes to feature addition and reviews. Our goal with Morph being PR manager is to provide a more streamlined access and swifter responses to PRs being updated, changed, edited, and merged.

It is the views of the team that future reviews and comments on PR’s being made to the API or implementations that are nitpicking (variable names, code style oddities, naming requests) while said PR is marked as WIP will be removed at the discretion of staff with the exception of approving reviews from staff mentioning nitpicking changes that would be nice to have for whomever merges the PR to make as a house cleaning. This means that while the team may stifle discussion about nitpicking for WIP PRs, it is our intention that PR’s being marked as status: ready to merge are likely to be merged regardless whether nitpicking comments are fixed or not. As a team, we are making the promise that nitpicking ourselves will not be a limiting factor in the merge worthiness of a PR.

On related notes: API issues, PRs, and implementation PRs that have been left to rot unfortunately forgotten for so long that the original author is no longer active, nor is the feature implemented for any up to date branches and has had no activity for the last year or more will be closed with a new label: resolution: wishful thinking. As you may have guessed, these PRs and feature requests have often times sat around for such a long time and no one of staff has had the chance to make an update, test, or review such issues/PRs that the maintenance costs of attempting to revive such issues or PRs exceeds our current development capacity. This is not to mean that we decline adding such features, it means that if anyone from the community were to decide to rekindle the PR with updated code that is testable, we will consider merging such a PR. Over the next few weeks, there will be a cleanup of outstanding issues/PRs that will be labeled as such, with a reminder that if someone were to update the PR, a new PR should be made, and Morph will be able to bring it to the attention of responsible parties and see about getting it merged sooner than later.

As for maintenance development of 1.12, while a majority of Core Developers are focusing on the massive 1.13 update, 1.12 is still LTS for this year. A new recommended build will be made soon as some bug fixes have been made after some hiatus from some developers.

System Overhaul

We are currently in the process of updating and moving our systems to ensure better reliability in future. Since we started in 2014 we’ve added a lot of new services and custom modifications to our software stacks. This has resulted in an increased maintenance workload for our sysadmins and a few stability issues for users. In order to reduce the maintenance workload and improve stability we have begun migrating the services to new instances and setting up fresh stacks. Of course this entails some downtime during the transition so please be patient while we work through our various web services.

Ore

Ore is almost ready for prime time! Over the next few months we will be deprecating the plugins category in the Forums and directing people to Ore as the primary resource for plugins. The Plugin Releases subforum will still remain open for several months before we disable new threads. Comments on existing threads will also be permitted for some time, as we don’t wish to restrict discussion or requests for help.

If you’d like to move your plugin page from the Forums over to Ore, hop on our Discord and ask our friendly Ore Team for help.

On a more somber note; @mbaxter has resigned from his position as Ore Community Lead. He’ll still be around in both spirit, discord, IRC, and cat gifs. @Grinch will be assuming the role and over the next few months will be working with his team and the community to see where we can improve Ore for everyone.

Plugin Competition

We have the winners for our Sponge Plugin Competition, we had a lot of interesting entries but in the end our judges really enjoyed playing around with these fun and interesting minigames. If you’re looking for a quick and easy way to add a little fun to your server, be sure to check out the victors below!

For those of you who won, @Grinch will be reaching out over the next few days to sort out your prizes, (he has a few left over from when he stole Christmas). For everyone else who submitted a plugin but didn’t make it through to the top three, we had a blast playing through your games, we’re looking forward to your submissions for our next comp!
​