Sponge Status Update 3rd August 2019


Greetings all! Once more we have an exciting round of news to report with further updates to 1.12 and a look at our development procedures for 1.14. Hear the latest news about Ore from our miners web developers and get ready for our big 5th Birthday Bash!

Developer Update

1.14 progress

While many have wondered and sat in silence asked about 1.14, we have good news and bad news…

Bad news first, 1.14’s performance has been questionable with major overhauls since 1.12 to 1.14, resulting in instability running servers. As our development team has experimented over the development cycle of 1.13 leading to 1.14 and post 1.14, we’re expecting to have some delays in calling for stability of SpongeForge and SpongeVanilla when those projects are updated, due to the nature of the instability from the official game. While this is not going to delay the development and update of both to 1.14.4, it will not be the same stability as 1.12.2. This instability is providing us enough delay as we’ve been anticipating more structural changes to the server to fix several bugs that have hit since 1.14’s release. That’s about it on the bad news…

Good news comes in threes: Code cleanups, Mixin Updates, and long term stability!

Implementation Policy: Mixins

With our massive codebase of an implementation, @Zidane and @gabizou have taken a fair amount of time to devise an implementation policy for all mixins in SpongeCommon and it’s subprojects. The key here with this new policy is that development can now be sliced and diced in ways where the API updates we will be performing from API 7 to 8, will only affect a subset of our Mixin classes, while the core implementation hooking and implementation support mixins could only slightly change as needed. As a result, SpongeCommon now has a new record of mixins being applied: 356 mixins for implementing SpongeAPI and 509 mixins supporting the implementation by adding hooks or bridge interfaces! Now, as with all major refactors that end up taking place, this has brought on some bugs as some bits were shifted between mixins, refactored, or otherwise removed entirely. Please do understand that while these bugs are being fixed, we do intend to bring it back to stability as of Sponge 7.1.6.

The nice bit about this implementation policy is that future contributors looking to add implementation of a new bit of API will only need to see one file difference, and not worry about specifically the hooks of implementation.

Mixin Updates

As it stands, Mumfrey has been working hard on ironing out several bits of the Mixin pipeline to support the new ModLauncher (which Forge has started using since 1.13) while still maintaining backwards compatibility, along with compatibility for the legacy LaunchWrapper. These updates have taken a fair bit longer as the feature set of Mixins needs to be maintained, but the overall plumbing had to be re-engineered to an extent. The good news is that we will be seeing a development branch of 0.8 available on GitHub soon, notably for the community at large to have their various features/fixes PRs to be updated and potentially getting more changes into the initial 0.8 release. We do appreciate the ongoing contribution and engagement from other members of the modding community who have provided valuable feedback and suggestions over the last few months.

Long Term Stability

With 1.14’s unstable performance, and the development going to improving the codebase, we’re still maintaining our stance that 1.12.2 will be our LTS version for the forseable future, at minimum until the end of this calendar year (2019). As previously mentioned, @gabizou has been hard at work to audit the codebase](https://github.com/SpongePowered/SpongeCommon/graphs/contributors?from=2019-01-01&to=2019-07-27&type=c) to allow for easier contributions to be made for both API additions, and bug fixes (most importantly, clarity of the codebase), and as mentioned in previous updates, the PhaseTracker has seen many improvements over the last several months, and more complicated bugs/incompatibilities with mods are slowly being rectified with the overall code audit. With the fallout of the code audit, it’s always back to bug fixing to re-attain stability prior to the code audit, so some new bugs have been introduced, and some old bugs have been squashed as a result. What this means is that we’ll be expecting to see a new 7.1.7 recommended version in the coming month(s), as overall functionality and/or stability is worked on.

Mod compatibility is always a game of cat and mouse,and as a result, some stances with attempting to provide compatibility for specific mods has been rendered too difficult to maintain, and as such, some mods are now deemed unsupported for compatibility reasons. Being that the mods that are rendered incompatible because of their design and operational changes to the game compared to what Sponge is attempting to do, it is not a focus of the development team to be chasing for ways to work around the hacks modifications that are being made for that specific mod. If community members do elect to propose changes, they would be very much welcomed, but as of right now, until other Forge Contract bugs are fixed, incompatible mod fixes will be left aside for now.

Ore Update

What happens when the Ore devs don’t do an update for 3 months? Ore 2.0.0 is what happens. What does it bring? We’ve updated and streamlined the project creation process, removing the requirement for signing plugins. The responsiveness of the site has also been substantially improved, paving the way for many more substantial features in the future. This update does bring with it two key updates:

The first is that Ore is bit by bit moving to a Vue frontend. At the moment that just means a bit less refreshing when searching for projects, but more will follow soon.

The second is the Ore API v2.This API is rebuilt to be easier to work with, both from within Ore, and from outside. While the API is still not final, you can check the current spec here: https://ore.stage.spongemc.org/api.

Feel free to come with feedback. We won’t know stuff is broken/stupid if no one tells us. You can also check out the current staging server here: https://ore.stage.spongemc.org

It’s been a while since we last visualised our development efforts, so be sure to take a look!

Spongie’s 5th Birthday Bash!

That’s right, we’re coming up on the fifth anniversary of the SpongePowered project and we’d love to celebrate this milestone with you Instead of our usual State of Sponge, we want to explore the worlds of Sponge! To that end we’d love to visit cool servers with our community and have some fun, if you’ve got an awesome server you’d like to show off be sure to get in touch with us so we can visit.

Unlike our usual State of Sponge, this will be a more informal affair, but we welcome questions and discussions with the community! Join us at 21:00 UTC on the 7th of September, or watch it on Twitch.






…I’ve seen the single dancing crab. Never seen the part with a hundred of them. :smile: :crab: :crab: :crab: :crab: