In some parts of the world, it is still the 30th and still technically November. As such we have kept our promise of releasing the Sponge API during November!
We’re at the sunset of November, but don’t worry, Sponge is as strong as ever. In fact, this past November we contributed more code to the API than October and September, combined. See this pretty Github contributions graph:
And we’ve completed all PRs and issues in our 1.0 github milestone:
API 1.0 Release
The API is almost in a finalized state, as you can see from the contributions winding down. Over the past few weeks major additions have been made to the API, such as entities, events, text, as well as other important APIs to help developers make their plugins.
In light of that fact, we have decided to release 1.0 and declare the all current API to be ‘stable’. This means that most interfaces and methods won’t change as we consider them complete; however, there may still be some slight changes and fixes for plugin developers to adapt to.
We’ve also released Javadocs in a temporary location on github pages: http://spongepowered.github.io/SpongeAPI/.
In order for server administrators to use the amazing plugins the community creates there needs to be server software to run those plugins with. Sponge, the implementation for the Sponge API, is being worked on as well, and will be released as soon as possible. This part of the development process is more complicated and was put on hold until the API was more finalized and Forge for 1.8 was released as both of those things are dependencies for the implementation. However, now that we have a stable API release and Forge 1.8 we are able to start working on the Sponge implementation and we will be sure to give out a timeline.
Rolling Releases
Some parts of the API that were deemed “non-essential” have been moved back to the 1.1 release or further. This includes NBT, inventory, permissions, chat channels, and databasing. This is because we have adapted a “rolling release” model due to our rather unique situation.
In a nutshell, developing some parts of the API without having a stable implementation or testing ground is near-impossible. However, we don’t want to delay release of the API either because that delays plugin developers from using the API and giving feedback. A rolling release solves both of these problems. By making releases less stable and more incremental, we are able to make more of them, more rapidly, as we receive suggestions and discover problems when doing the implementation.
After several rolling releases(we project up to v1.5 or further) the server API will be declared stable in its entirety. Plugin developers can expect these features to change or be added before then:
- Events
- Inventory
- NBT
- Permissions
- Simple database support
What does this mean for Sponge plugins?
Developers can start making Sponge plugins now if they want to. The current API will not change too drastically from this point on. As mentioned previously, some non-essential features have been pushed back until the v1.1 release and further, we believe that the v1.0 release should 80% of everything a developer requires to build a plugin.
Please see the Plugin Workspace Guide to learn how to set up a workspace for developing plugins. This will be moved to the documentation once that is up.
Forge Status
As many of you know, Minecraft Forge for 1.8 has been released in a beta state(do not be confused, however, because FML 1.8 was released in September). This is good news for Sponge, as it allows us to power on with the implementation. With the API in a stable state, work on the Forge implementation can begin. Due to Forge being in a Beta state and the Implementation being in an Alpha state, we strongly recommend that you do not attempt to run Sponge in a production environment until we officially release a “Beta” version of Sponge due to instabilities with both projects at the current time.